貌似懂了
SELECT A.月,A.名称,A.入库,A.出库,SUM(B.入库)-SUM(B.出库) AS 期初 FROM [数据$]A
left join
[数据$]B
on A.名称=B.名称 AND A.月>B.月
GROUP BY A.月,A.名称,A.入库,A.出库
这部分是左连接累计期初,本来用where
SELECT A.月,A.名称,A.入库,A.出库,SUM(B.入库)-SUM(B.出库) AS 期初 FROM [数据$]A,
[数据$]B
where A.名称=B.名称 AND A.月>B.月
GROUP BY A.月,A.名称,A.入库,A.出库
两者差别就在首月
这样一来就相当于构成了一个新表,只需再添加一个库存字段就行
select *,iif(isnull(期初),0,期初)+入库-出库 as 库存 from (SELECT A.月,A.名称,A.入库,A.出库,SUM(B.入库)-SUM(B.出库) AS 期初 FROM [数据$]A
left join
[数据$]B
on A.名称=B.名称 AND A.月>B.月
GROUP BY A.月,A.名称,A.入库,A.出库)
这样一步步理解过来,sql真难学!
|