Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

ACCESS查询的问题

冒险小子  发表于:2012-08-19 17:32:19  
复制

我要查询9-1号仓库d有哪些物品在,如果用WHERE<=#2012-09-01#,然后用MAX求最近转库的日期,这样的话,有些已经转库出去的物品也会被查询出来,求解决,求真相

 

Top
心态哥 发表于:2012-08-19 21:42:32
不明白真正意图

dbaseIIIer 发表于:2012-08-20 01:33:15

意图很清晰的,就是要获得 9月1日,仓库D 有什么物品。

 

不过,你的信息里面根本没有物品的 出库,入库,转库 等的交易信息,

怎么帮你算呀?



dbaseIIIer 发表于:2012-08-20 01:44:38

好像我又看懂了,你这个物品 是没有 出入库数量的!

 

所以如果你要知道到 9月1日结束 有什么物品和数量的话,就是

 

select  转库物品, Sum(IIF( 转入仓库='d',1,-1)) as 库存数量

from 表

where 转库日期 <= #2011/9/1# and 转入仓库='d' and 来自仓库='d'

group by  转库物品

having Sum(IIF( 转入仓库='d',1,-1))<>0

 

如果你确定没有记录是 d库 转 d库 的话,如果不确定的话,就用下面的:

 

select 转库物品, Sum(IIF( 转入仓库='d',1,0)-IIF( 来自仓库='d',1,0)) as 库存数量

from 表

where 转库日期 <= #2011/9/1# and 转入仓库='d' and 来自仓库='d'

group by 转库物品

having Sum(IIF( 转入仓库='d',1,-1))<>0

 

 

如果有负数的库存的话,或者超于1的库存的话,你就自己查查什么原因了! 跟这个查询方法没关系的!



dbaseIIIer 发表于:2012-08-20 01:46:37

下面的 having 拷错了,应该是这样的

 

 

select 转库物品, Sum(IIF( 转入仓库='d',1,0)-IIF( 来自仓库='d',1,0)) as 库存数量

from 表

where 转库日期 <= #2011/9/1# and 转入仓库='d' and 来自仓库='d'

group by 转库物品

having Sum(IIF( 转入仓库='d',1,0)-IIF( 来自仓库='d',1,0)) <>0



杨海协 发表于:2012-08-20 17:26:44

老鸟们厉害。。菜鸟路过。



dbaseIIIer 发表于:2012-08-21 04:36:31

虽然已经结帖了,可是还是要告诉大家这里错了!

 

所以如果你要知道到 9月1日结束 有什么物品和数量的话,就是

 

select  转库物品, Sum(IIF( 转入仓库='d',1,-1)) as 库存数量

from 表

where 转库日期 <= #2011/9/1# and 转入仓库='d' and 来自仓库='d'      《--- 这里 的 and 要改作 or

group by  转库物品

having Sum(IIF( 转入仓库='d',1,-1))<>0

 

如果你确定没有记录是 d库 转 d库 的话,如果不确定的话,就用下面的:

 

select 转库物品, Sum(IIF( 转入仓库='d',1,0)-IIF( 来自仓库='d',1,0)) as 库存数量

from 表

where 转库日期 <= #2011/9/1# and 转入仓库='d' and 来自仓库='d'         《--- 这里 的 and 要改作 or

group by 转库物品

having Sum(IIF( 转入仓库='d',1,0)-IIF( 来自仓库='d',1,0)) <>0



总记录:6篇  页次:1/1 9 1 :