回 帖 发 新 帖 刷新版面

主题:查询两个表的sum

早上看了个贴,下午想看答案来者,结果找不到了,只好我再问一下:

两个表:A,B,如下,求表c(其实求个查询结果如表c)

我想用两个查询
"出库数量"=(select sum(b.出库数量) from b where b.产品代码=a.产品代码  group by b.产品代码)

"入库数量"=...结果不能连接,不知道如何处理?






题:表A入库情况
产品代码   产品名称  入库数量
1001          aaa           10
1002          bbb           3
1003          ccc           5
1001          aaa           6

表B出库情况
产品代码   产品名称  出库数量
1001          aaa           5
1002          bbb           1
1003          ccc            0

c表显示查询结果:
产品代码   产品名称  入库数量   出库数量  库存

1001          aaa           16         5        11
1002          ................................






回复列表 (共5个回复)

沙发

select c.产品代码,c.产品名称,c.入库数量 ,d.出库数量,(c.入库数量-d.出库数量) as 库存 from

(
select a.产品代码,a.产品名称,sum(a.入库数量) 入库数量 from A  a group by a.产品代码,a.产品名称
) c  ,

(
select b.产品代码,b.产品名称 ,sum(b.出库数量) 出库数量 from B  b  group by b.产品代码,b.产品名称
) d  where c.产品代码=d.产品代码

板凳

好强啊!!
能帮我解释一下吗?

(select a.产品代码,a.产品名称,sum(a.入库数量) 入库数量 from A  a group by a.产品代码,a.产品名称
) c  ,


select b.产品代码,b.产品名称 ,sum(b.出库数量) 出库数量 from B  b  group by b.产品代码,b.产品名称
) d

是两个子查询,c,d是做什么成分的?别名??
是不是相当于:"c"=(select a.产品代码,a.产品名称,sum(a.入库数量) 入库数量 from A  a group by a.产品代码,a.产品名称
)


遇到需要多个子查询返回的时候是不是都可以象这样 :

子查询 a,
子查询 b,
子查询 c,....
where a.no=b.no=c.no=.....




3 楼

再有个问题就是假如表B就两条记录,是0的出库数量不在表中,又该如何写?上面的查询?

表A入库情况
产品代码   产品名称  入库数量
1001          aaa           10
1002          bbb           3
1003          ccc           5
1001          aaa           6


表B出库情况
产品代码   产品名称  出库数量
1001          aaa           5
1002          bbb           1


c表显示查询结果:
产品代码   产品名称  入库数量   出库数量  库存

1001          aaa           16         5        11
1002          ................................
1003          ccc            6          null    6

4 楼

c,d是子查询的别名!a,b是表的别名!
select c.产品代码,c.产品名称,c.入库数量 ,d.出库数量,(c.入库数量-isnull(d.出库数量,0)) as 出库数量 from
(select a.产品代码,a.产品名称,sum(a.入库数量) 入库数量 from A  a group by a.产品代码,a.产品名称
) c  left join

(
select b.产品代码,b.产品名称 ,sum(b.出库数量) 出库数量 from B  b  group by b.产品代码,b.产品名称
) d
on c.产品代码=d.产品代码

5 楼

没有INNER JOIN 这样行吗,两个不同的TABLE[em3]

我来回复

您尚未登录,请登录后再回复。点此登录或注册