注册 登录
编程论坛 SQL Server论坛

求sql 语句!

webchen 发布于 2008-07-28 16:22, 1086 次点击
table A(入库表)
 商品ID         数量            日期
 111             20               2008-7-5
 111             25               2008-7-5
 112             20               2008-7-6
table B(出库表)
商品ID         数量            日期
111             20            2008-7-5
111             5             2008-7-6
112             10            2008-7-6
要得到表
商品ID         入库数量       出库数量       库存           日期
111              20+25          20           25             2008-7-5
111               0             5            25-5           2008 -7-6
如何写
3 回复
#2
xinzheng2008-07-29 15:58
select a.商品id,sum(a.数量) as 入库数量,sum(b.数量) as 出库数量,(sum(a.数量)-sum(b.数量)) as 库存,a.日期 from 入库表 a,出库表 b where a.商品id=b.商品id group by a.商品id,a.日期 order by a.商品id,a.日期


没验证,不知道对不对

[[it] 本帖最后由 xinzheng 于 2008-7-29 15:59 编辑 [/it]]
#3
erudition2008-07-30 10:02
当然不对了,两表的ID都不是唯一的,所以联表后会出现重复的记录。
应该让两表的ID与日期成联合主键时再连接:select A.商品ID,入库数量=A.数量,出库数量=B.数量,库存=A.数量-B.数量,A.日期  
from
(select 商品ID,日期,数量=sum(数量) from 入库表 group by 商品ID,日期) A, (select 商品ID,日期,数量=sum(数量) from 出库表 group by 商品ID,日期) B where A.商品ID=B.商品ID and A.日期=B.日期
#4
hbutwzc2008-07-30 11:58
select a.商品id  as 商品ID,sum(a.数量) as 入库数量,sum(b.数量) as 出库数量,sum(a.数量)-sum(b.数量))as 库存,a.日期 as 日期 from ((select*from A group by 商品ID)as a  right join(select*from B group by 商品ID) as b on a.商品id=b.商品id and a.日期=b.日期 )order by 日期
1