SQL问题,有警告: 聚合或其他 SET 操作消除了空值

why0826002 2010-08-19 02:14:26
SELECT cast(sum(A.sl) as int) as 入库箱数,CAST(sum(B.sl) AS INT) AS 出库箱数,cast(sum(A.sl) as int)-CAST(sum(B.sl) AS INT) as 理论库存箱数 from
(select distinct sl,barcode from bjdata.dbo.informationdata where users<>'out-1') as A
left join
(select distinct sl,barcode from bjdata.dbo.informationdata where users='out-1') AS B
on LEFT(A.barcode,len(A.barcode)-8)=left(B.barcode,len(B.barcode)-8)


在语句中进行了左连接,有的产品有可能入库中有,而出库中没有,这样连接完之后,就会有这样的结果,
执行完的结果为
入库箱数 出库箱数 理论库存箱数
39 NULL NULL

请问怎么将出库箱数和理论库存箱数,若为NULL,则显示为0,若不为空,则显示为真实的数字.

这个应该怎么实现呢?
...全文
289 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaoxiao8372 2010-08-19
  • 打赏
  • 举报
回复
ISNULL,COALESCE 
claro 2010-08-19
  • 打赏
  • 举报
回复
ISNULL
王向飞 2010-08-19
  • 打赏
  • 举报
回复
SELECT cast(sum(A.sl) as int) as 入库箱数,
isnull(CAST(sum(B.sl) AS INT),0) AS 出库箱数,
isnull(cast(sum(A.sl) as int)-CAST(sum(B.sl) AS INT),0) as 理论库存箱数
from
(select distinct sl,barcode from bjdata.dbo.informationdata where users<>'out-1') as A
left join
(select distinct sl,barcode from bjdata.dbo.informationdata where users='out-1') AS B
on LEFT(A.barcode,len(A.barcode)-8)=left(B.barcode,len(B.barcode)-8)

34,593

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧