很难的SQL语句 实现的业务比较复杂 ( 积分: 0 )

  • 主题发起人 主题发起人 yingmao2001
  • 开始时间 开始时间
Y

yingmao2001

Unregistered / Unconfirmed
GUEST, unregistred user!
具体业务是这样的 这个sql真的很难实现 我的数据库是 MSSQLSERVER
部门 领料金额 部门 报废金额 合计 (注:合计是把每行的领料金额 + 报废金额)
A 100 A 200 300
——————————————————
B 200 ?即使报废金额为空,也要有合计的金额,我实现不了
——————————————————
C 100 ?即使领料金额为空,也要有合计的金额,我实现不了
——————————————————
整个数据框架就是上面的那样 说明:部门,领料总金 在newtable1表中
部门,报废总金 在newtable2 表中
我的sql语句是这样的
SELECT newtable1.dept,newtable1.draw_money,newtable2.dept,newtable2.destroy_money,(newtable1.draw_money+newtable2.destroy_money) AS sum_money FROM newtable1
FULL OUTER JOIN newtable2 ON newtable1.dept = newtable2.dept2 ';
大家要救救我啊 ! 真的难啊
 
具体业务是这样的 这个sql真的很难实现 我的数据库是 MSSQLSERVER
部门 领料金额 部门 报废金额 合计 (注:合计是把每行的领料金额 + 报废金额)
A 100 A 200 300
——————————————————
B 200 ?即使报废金额为空,也要有合计的金额,我实现不了
——————————————————
C 100 ?即使领料金额为空,也要有合计的金额,我实现不了
——————————————————
整个数据框架就是上面的那样 说明:部门,领料总金 在newtable1表中
部门,报废总金 在newtable2 表中
我的sql语句是这样的
SELECT newtable1.dept,newtable1.draw_money,newtable2.dept,newtable2.destroy_money,(newtable1.draw_money+newtable2.destroy_money) AS sum_money FROM newtable1
FULL OUTER JOIN newtable2 ON newtable1.dept = newtable2.dept2 ';
大家要救救我啊 ! 真的难啊
 
这个1分都没有~~`
 
借一个临时表,可以用游标来处理;
我曾做个两个BOM的相互比较,模式和你的差不多;
 
--先用下面的试试
SELECT newtable1.dept,newtable1.draw_money,newtable2.dept,newtable2.destroy_money,(ISNULL(newtable1.draw_money,0)+ISNULL(newtable2.destroy_money,0)) AS sum_money FROM newtable1
FULL OUTER JOIN newtable2 ON newtable1.dept = newtable2.dept
--记得以后问问题要给分
 
楼上的可以实现了,我来顶下
 
SELECT E1.Dept 部门, E1.Draw_Money 领料金额,E2.Destroy_Money 报废金额 ,
(isnull(E1.Draw_Money,0)+isnull(E2.Destroy_Money,0)) 合计
FROM NewTable1 E1 LEFT OUTER JOIN NewTable2 E2 ON E1.Dept=E2.Dept
 
SELECT E1.Dept 部门, E1.Draw_Money 领料金额,E2.Destroy_Money 报废金额 ,
(isnull(E1.Draw_Money,0)+isnull(E2.Destroy_Money,0)) 合计
FROM NewTable1 E1 FULL OUTER JOIN NewTable2 E2 ON E1.Dept=E2.Dept
 
后退
顶部