日期:2014-05-17  浏览次数:20486 次

SQL 写法 请教
这里有3个表

库存表

商品编号   商品名称  商品货号  数量
100001     A10001    A01       8
100002     A10002    A02       8
100003     A10002    B01       5
100004     A10003    A07       10
100005     A10003    B06       5

库存表内商品编号没有重复的信息

进货退货表

商品编号   商品名称  商品货号  数量  供货商  类型
100001     A10001    A01       5     G1001   进货
100002     A10002    A02       5     G1001   进货
100003     A10002    B01       5     G1002   进货
100004     A10003    A07       5     G1002   进货
100005     A10003    B06       10    G1002   进货
100001     A10001    A01       5     G1005   进货
100002     A10002    A02       5     G1005   进货
100003     A10002    B01       5     G1005   进货
100004     A10003    A07       5     G1005   进货
100005     A10003    B06       5     G1005   退货

进货退货表有重复的商品编号

销售表

商品编号   商品名称  商品货号  数量
100001     A10001    A01       2
100002     A10002    A02       2
100003     A10002    B01       5


查询 进、退、销、存

SELECT="A.商品编号,A.商品名称,A.商品货号,A.数量,SUM(B.数量),SUM(C.数量),SUM(D.数量),E.供货商"
FROM 库存表 A,进货退货表 B,进货退货表 C,销售表 D,进货退货表 E
WHERE

B.商品编号=A.商品编号
C.商品编号=A.商品编号
D.商品编号=A.商品编号
E.商品编号=A.商品编号

group by
A.商品编号,A.商品名称,A.商品货号,A.数量,E.供货商

正确语句该如何写,请教大侠!

SQL语句

------解决方案--------------------
不是跟这个类似吗

http://bbs.csdn.net/topics/390374393
------解决方案--------------------
 Join 改成 Left Join ,然后在数量那里 加上一个判断 isnull(数量,0) as 数量 这样就行了。
------解决方案--------------------
SELECT A.商品编号,A.商品名称 as 商品名称,A.商品货号 as 商品货号,B.进货量