以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]统计筛选出入库的物料数量SQL语句 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=70832) |
-- 作者:loongtai -- 发布时间:2015/6/29 22:17:00 -- [求助]统计筛选出入库的物料数量SQL语句 物料出入库表分主表和明细表,主表有出入库编号,转入仓,转出仓 三列,明细表有出入库编号,物料编号,出入库数量三列。 如何用sql语句筛选出每种物料剩余的数量(入库数量-出库数量)? 类似下面的效果 这样方便在进行出库操作时,能知道每种物料还有多少可以领用。
[此贴子已经被作者于2015/6/29 22:20:37编辑过]
|
-- 作者:大红袍 -- 发布时间:2015/6/29 22:35:00 -- select 物料编号, sum(入库)-sum(出库) as 库存 f rom {出入库明细表} group by 物料编号 |
-- 作者:loongtai -- 发布时间:2015/6/30 8:14:00 -- 回复:(大红袍)select 物料编号, sum(入库)-sum(出库... 这个好像不行,因为出入库明细表里的数量列是不分出库和入库数量的,判断物料是进入或出去哪个库,是看主表的转入仓或转出仓的,对于转入仓,这个数量对应的是入库,同时相对转出仓,这个数量对应的则是出库。不知说清楚了没? |
-- 作者:大红袍 -- 发布时间:2015/6/30 9:30:00 -- select 物料全编号, (sum(iif(转出仓 is null,数量,0)) - sum(iif(转入仓 is null,数量,0))) as 库存 f rom (select * f rom {主表} a inner join {明细} b on a.物料操作编号 = b.物料操作编号) group by 物料全编号 |
-- 作者:大红袍 -- 发布时间:2015/6/30 9:30:00 -- 再不行,请上传具体例子 |
-- 作者:loongtai -- 发布时间:2015/6/30 10:33:00 -- 统计要求,按物料全编号和到货编号两项统计,即相同物料全编号且相同到货编号进行数量统计 |
-- 作者:大红袍 -- 发布时间:2015/6/30 10:38:00 -- select 物料全编号, 到货编号, (sum(iif(转出仓 is null,数量,0)) - sum(iif(转入仓 is null,数量,0))) as 库存 f rom (select * f rom {物料出入库主表} a inner join {物料操作明细表} b on a.物料操作编号 = b.物料操作编号) group by 物料全编号,到货编号 |
-- 作者:loongtai -- 发布时间:2015/6/30 10:59:00 -- 在给的例子里运行正常,怎么到自己的项目里就不正常了? |
-- 作者:大红袍 -- 发布时间:2015/6/30 11:05:00 -- sqlServer数据库就改一下iif改成case when
参考语法 http://blog.sina.com.cn/s/blog_61fbf8d10100lian.html
|
-- 作者:loongtai -- 发布时间:2015/6/30 14:42:00 -- 参照你给的帮助,试写了下,还是没得到想要的结果。 |