SqlServer 2000 多表统计(100)

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

_yzy_

Unregistered / Unconfirmed
GUEST, unregistred user!
商品表-----------------------------------商品ID 商品名称0001 商品A0002 商品B0003 商品C分店表------------------------------------分店ID 分店名称0001 分店A0002 分店B0003 分店C0004 分店D报损表------------------------------------商品ID 分店ID 报损数量 报损金额0001 0001 30 1000001 0001 10 40 0001 0002 20 700002 0001 10 35销售表------------------------------------商品ID 分店ID 销售数量 销售金额0001 0001 8 800001 0002 7 400001 0002 2 100002 0001 15 1500003 0004 10 40求用SQL求以下结果:------------------------------------------------------------------ 商品名称 分店名称 报损数量 报损金额 销售数量 销售金额商品A 分店A 40 140 8 80商品A 分店B 20 70 9 50商品B 分店A 10 35 15 150商品C 分店D 0 0 10 40就是求每个分店的商品报损总数,报损总额及销售总数和销售总金额
 
Select X.*, B.商品名称, C.分店名称From (Select 商品ID, 分店ID, Sum(报损数量) 报损数量, sum(报损金额) 报损金额, Sum(销售数量) 销售数量, sum(销售金额) 销售金额 From (Select 商品ID, 分店ID, 报损数量, 报损金额, 0 as 销售数量, 0 as 销售金额 from 报损表 union all select 商品ID, 分店ID, 0, 0, 销售数量 销售金额 from 销售表 ) A Group by 商品ID, 分店ID ) X, 商品表 B, 分店表 CWhere X.商品ID=B.商品ID AND X.分店ID=C.分店ID
 
TO: znxia你的语句无法通过,为了使语句更清晰,麻烦把SUM之后的列名改成如下:Sum(报损数量) 报损数 这样更好区分
 
你用的什么数据库,提示什么错误?如果你看懂了上面sql语句的意思,语法上即使有些错误,你也可以更改的啊,我总不能在自己机器上把这4个表创建出来,再写出一点错误也没有的语句吧?access:Select X.*, B.商品名称, C.分店名称From (Select 商品ID, 分店ID, Sum(报损数量) AS 报损数, sum(报损金额) AS 报损额, Sum(销售数量) AS 销售数, sum(销售金额) AS 销售额 From (Select 商品ID, 分店ID, 报损数量, 报损金额, 0 as 销售数量, 0 as 销售金额 from 报损表 union all select 商品ID, 分店ID, 0, 0, 销售数量 销售金额 from 销售表 ) A Group by 商品ID, 分店ID ) X, 商品表 B, 分店表 CWhere X.商品ID=B.商品ID AND X.分店ID=C.分店ID
 
TO:znxia数据库SQLServer 2000的
 
刚才少了一个逗号:Select X.*, B.商品名称, C.分店名称From (Select 商品ID, 分店ID, Sum(报损数量) AS 报损数, sum(报损金额) AS 报损额, Sum(销售数量) AS 销售数, sum(销售金额) AS 销售额 From (Select 商品ID, 分店ID, 报损数量, 报损金额, 0 as 销售数量, 0 as 销售金额 from 报损表 union all select 商品ID, 分店ID, 0, 0, 销售数量, 销售金额 //刚才销售数量后面少了一个, from 销售表 ) A Group by 商品ID, 分店ID ) X, 商品表 B, 分店表 CWhere X.商品ID=B.商品ID AND X.分店ID=C.分店ID
 
接受答案了.
 
后退
顶部