高分求一SQL语句的写法,详情请进,应使用变量

davidj 2007-12-26 03:23:09
--select distinct g.fparent
Select e.fname , company.fdisplayname_l2,g.fname_l2 ,
case when g.fnumber='1001'then d1.f17
when g.fnumber='1001'then d1.f17
when g.fnumber='1002'then d1.f18
when g.fnumber='1003'then d1.f19
when g.fnumber='1004'then d1.f20
when g.fnumber='1005'then d1.f21
when g.fnumber='1006'then d1.f22
when g.fnumber='1007'then d1.f23
when g.fnumber='1008'then d1.f24
when g.fnumber='1009'then d1.f17
when g.fnumber='1010'then d1.f18
when g.fnumber='1011'then d1.f19
when g.fnumber='1012'then d1.f20
when g.fnumber='1012'then d1.f21
when g.fnumber='1013'then d1.f22
end as Famount
From T_Csl_ItemData H,
T_Csl_ItemDataEntry D,
T_Csl_ItemDataEntry001 D1,
T_Org_BaseUnit Company,
T_Bd_Currency Cy,
T_Csl_CslReport e,
T_CSL_TempletItemList f,
t_csl_rptitem g
where H.FID=D.FItemDataID
and D.FID=D1.FID
and H.FCompanyID=company.Fid
and H.FCurrencyID=Cy.Fid
and h.freportid=e.fid
and e.ftemplateid=f.ftemplateid
and f.fitemnumber=g.fnumber
and e.fname ='资产负债表'
--and D.FDataElement=2 --本期发生数
--and D.FValueType=1 --金额
...全文
139 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
f0310 2007-12-30
  • 打赏
  • 举报
回复

Select e.fname , company.fdisplayname_l2,g.fname_l2 ,
R.col3 as Famount
From T_Csl_ItemData H,
T_Csl_ItemDataEntry D,
T_Csl_ItemDataEntry001 D1,
T_Org_BaseUnit Company,
T_Bd_Currency Cy,
T_Csl_CslReport e,
T_CSL_TempletItemList f,
t_csl_rptitem g,
R
where R.col1 = g.fnumber
...
f0310 2007-12-30
  • 打赏
  • 举报
回复
假设那个关系对应表是R,列名为col1,col2,col3,col4。
Select e.fname , company.fdisplayname_l2,g.fname_l2 ,
d1.col3 as Famount
From T_Csl_ItemData H,
T_Csl_ItemDataEntry D,
T_Csl_ItemDataEntry001 D1,
T_Org_BaseUnit Company,
T_Bd_Currency Cy,
T_Csl_CslReport e,
T_CSL_TempletItemList f,
t_csl_rptitem g,
R
where d1.col1 = g.fnumber
...
zhangjian_2015 2007-12-30
  • 打赏
  • 举报
回复
没有看明白你写的,,,对不起帮不上你!!我对财务不是很明
dawugui 2007-12-29
  • 打赏
  • 举报
回复
这肯定得用动态SQL,不同的值对应的是不同列,这个设计者可以自动离职了.
dawugui 2007-12-29
  • 打赏
  • 举报
回复
这肯定得用动态SQL,不用的值对应的是不同列,这个设计者可以自动离职了.
aochant 2007-12-29
  • 打赏
  • 举报
回复
你把 CASE中的对应关系表 也一起查不就行了不就行了不就行了不就行了不就行了不就行了
mantisXF 2007-12-26
  • 打赏
  • 举报
回复
哈哈,如果g.fnumber的值是固定的,那么就是你上面的写法;如果值不是固定的,那么就要写存储过程动态SQL了 ...

可以参考下面这篇帖子,对你应该有帮助的. try it ..

http://topic.csdn.net/u/20071225/22/32c53bad-f6f5-47d2-90ea-16c0daa8eefb.html


Good luck to u!
davidj 2007-12-26
  • 打赏
  • 举报
回复
问题出在语句中的CASE语句,其实,CASE中的对应关系有一个表来记录的如下
1001 货币资金 F17 资产负债表
1002 短期投资 F18 资产负债表
1003 应收票据 F20 资产负债表
1004 应收股利 F21 资产负债表
1005 应收利息 F22 资产负债表
1006 应收帐款 F23 资产负债表
1007 减:坏帐准备 F24 资产负债表
1008 应收帐款净额 F25 资产负债表
如果这个表以后增加一个
1009 其他应收款 F26 资产负债表
这时我就得手工的更改上面的语句了,请高手指点,如何写这个SQL语句,不使用CASE.应使用什么小弟不明.多谢

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧