Office中国论坛/Access中国论坛

标题: 如何实现各类商品库存实时查询提取? [打印本页]

作者: zylf    时间: 2006-8-24 00:37
标题: 如何实现各类商品库存实时查询提取?



如何实现各类商品库存实时查询提取?

  
   日期          商品名称            进/销        库存


   2005-12-1     百事可乐           5            5

  2005-12-1    矿泉水               2            2

  2005-12-1    百事可乐           -2            3

  2005-12-1    矿泉水              -1            1

  2005-12-2    百事可乐          -1            2

  2005-12-2    矿泉水               5            6

  2005-12-2    矿泉水              -4            2

  2005-12-2    百事可乐            4            6

  2005-12-2    百事可乐           -1           5


在上表中,希望查询提取出百事可乐=5;矿泉水=2的现在库存。

各位大师们,能帮帮我吗?

见附件:[attach]19953[/attach]


[此贴子已经被作者于2006-8-23 16:39:23编辑过]


作者: wwwwa    时间: 2006-8-24 00:52
try:

select * from (
SELECT a.编号,a.日期,a.商品名称,a.进销,sum(b.进销) as 库存
FROM Table1 a
left join table1 b on a.商品名称=b.商品名称 and a.编号>=b.编号
group by a.编号,a.日期,a.商品名称,a.进销)
where (商品名称='百事可乐' and 进销=5) or (商品名称='矿泉水' and 进销=2)

作者: zylf    时间: 2006-8-24 01:22
标题: 请原谅我没说清楚问题。
谢谢老师的回答,因为我没说表达清楚问题,您没理解我的意思。

      我的本意是:不论动态的库存是多少,查询能将当时各种商品的余数(即累加到最后的数量)记录提取出来。比如当我在12-3又进了1箱百事可乐、销了2箱矿泉水后,查询能动态地提取出 百事可乐=6;矿泉水=0。


[此贴子已经被作者于2006-8-23 17:27:03编辑过]


作者: wwwwa    时间: 2006-8-24 17:18
你的意思是否是最后一次库存?如是:

SELECT a.*
FROM [SELECT a.编号,a.日期,a.商品名称,a.进销,sum(b.进销) as 库存
FROM Table1 a
left join table1 b on a.商品名称=b.商品名称 and a.编号>=b.编号
group by a.编号,a.日期,a.商品名称,a.进销]. AS a INNER JOIN (select 商品名称,max(编号) as ma from Table1 group by 商品名称) AS b ON (a.编号=b.ma) AND (a.商品名称=b.商品名称);

作者: andymark    时间: 2006-8-24 18:45
单纯查询最后库存下面的也可以

SELECT Table1.商品名称, Sum(Table1.进销) AS 库存
FROM Table1
GROUP BY Table1.商品名称




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3