以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 库存计算,求帮助 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=116201) |
-- 作者:q1156741089 -- 发布时间:2018/3/21 10:37:00 -- 库存计算,求帮助 以下内容为程序代码: 这条语句有一个BUG,就是只入库的情况下 ,无法计算。求帮助 ,怎么解决?
1 """upd ate c set c.库存数量 = a.累计入库-b.累计出库 f rom (Se lect 物资名称, sum(数量) As 累计入库 f rom 物资明细 whe re 明细分类 = \'入库\' group by 物资名称) a, (Se lect 物资名称, sum(数量) As 累计出库 f rom 物资明细 wh ere 明细分类 = \'出库\' group by 物资名称) b,库存物资 c where a.物资名称=c.物资名称 And " & _"b.物资名称=c.物资名称 """" |
-- 作者:有点甜 -- 发布时间:2018/3/21 11:47:00 -- set c.库存数量 = a.累计入库-b.累计出库
改成
set c.库存数量 = isnull(a.累计入库, 0)-isnull(b.累计出库, 0) |
-- 作者:q1156741089 -- 发布时间:2018/3/21 13:22:00 -- 试了几次没有用呢? |
-- 作者:有点甜 -- 发布时间:2018/3/21 15:15:00 -- 试试
update c set set c.库存数量 = isnull(a.累计入库, 0)-isnull(b.累计出库, 0) from (Select 物资名称, sum(数量) As 累计入库 from 物资明细 where 明细分类 = \'入库\' group by 物资名称) a, (Select 物资名称, sum(数量) As 累计出库 from 物资明细 where 明细分类 = \'出库\' group by 物资名称) b,库存物资 c where (a.物资名称=c.物资名称 or a.物资名称 is null) And (b.物资名称=c.物资名称 or b.物质名称 is null) |
-- 作者:q1156741089 -- 发布时间:2018/3/21 15:31:00 -- 谢谢 行了 。。。 我刚刚试了一下 这种方法 “case when isnull(列名) then 0 end” 也没有弄出来 |
-- 作者:q1156741089 -- 发布时间:2018/3/21 15:43:00 -- 原来是要在where 加个空值判断 |