以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  请教下两段SQL语句  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=48400)

--  作者:rjh4078
--  发布时间:2014/3/28 9:58:00
--  请教下两段SQL语句

我写了两段SQL语句

第一个:select Distinct 产品编号,产品名称,isnull(期初库存,0) as 期初库存,isnull((select sum(本次入库数量) from {生产入库单明细} b where a.产品编号=b.产品编号),0) as 累计入库 ,isnull((select sum(本次发货数量) from {销售发货单明细} b where a.产品编号=b.产品编号 ),0) as 累计出库,期初库存+累计入库-累计出库 as 可用库存 from {产品资料} a

执行的时候提示 列 累计入库 累计出库 无效

 

 

改成第二个:

 

select Distinct 产品编号,产品名称,isnull(期初库存,0) as 期初库存,isnull((select sum(本次入库数量) from {生产入库单明细} b where a.产品编号=b.产品编号),0) as 累计入库 ,isnull((select sum(本次发货数量) from {销售发货单明细} b where a.产品编号=b.产品编号 ),0) as 累计出库,isnull(期初库存,0)+isnull((select sum(本次入库数量) from {生产入库单明细} b where a.产品编号=b.产品编号),0)-isnull((select sum(本次发货数量) from {销售发货单明细} b where a.产品编号=b.产品编号 ),0) as 可用库存 from {产品资料} a

 

这个执行没有问题

我平时FILL的时候 都是直接用第一种方法中的(期初库存+累计入库-累计出库 as 可用库存)这种写法 没有发现问题啊 比较了下不同 就是FILL的时候 没有嵌套这么多SELECT语句  难道有什么讲究?

请教下大师给个指点

 

 


--  作者:jspta
--  发布时间:2014/3/28 12:24:00
--  
期初库存+累计入库-累计出库 as 可用库存

后面的别名还没有生成,两者是并列的,改成
select 产品编号,产品名称,期初库存,累计入库 ,累计出库 ,期初库存+累计入库-累计出库 as 可用库存 
from (
select Distinct 产品编号,产品名称,isnull(期初库存,0) as 期初库存,isnull((select sum(本次入库数量) from {生产入库单明细} b where a.产品编号=b.产品编号),0) as 累计入库 ,isnull((select sum(本次发货数量) from {销售发货单明细} b where a.产品编号=b.产品编号 ),0) as 累计出库 from {产品资料} a) as b

--  作者:rjh4078
--  发布时间:2014/3/28 16:55:00
--  
原来这样 谢了