免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4007 | 回复: 6
打印 上一主题 下一主题

[求助]如何对无记录进行Sum得到结果0 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-07-01 13:29 |只看该作者 |倒序浏览
就是一张表记录了每次领走的物料的数量
我想对每个月某一物料出库总数求和
但是如果这个月这一物料没有领用记录
则查不出任何结果
如果我希望这种情况下能得到结果0该怎么做呢?

下面是我现在的语句:

SELECT [005 LYMAST].办公用品代码, Sum([005 LYMAST].领用数量) AS 出库量
FROM [005 LYMAST]
WHERE ((([005 LYMAST].领用日期)>=20080601 And ([005 LYMAST].领用日期)<=20080625))
GROUP BY [005 LYMAST].办公用品代码
HAVING ((([005 LYMAST].办公用品代码)=\'smj01\'));

论坛徽章:
0
2 [报告]
发表于 2008-07-01 13:34 |只看该作者
用case when isnull(列名) then 0 end

论坛徽章:
0
3 [报告]
发表于 2008-07-02 16:02 |只看该作者
十分感谢楼上的三位!
用ISNULL函数解决了

我现在的语句

SELECT     dbo.[001 IMAST TABLE].代码, ISNULL(dbo.月末加权平均成本.月末量, 0) AS 期初量, ISNULL(dbo.vSMMSI.入库量, 0) AS SI,
                      ISNULL(dbo.vSMMSO.出库量, 0) AS SO, ISNULL(dbo.月末加权平均成本.月末量, 0) + ISNULL(dbo.vSMMSI.入库量, 0) - ISNULL(dbo.vSMMSO.出库量, 0)
                      AS 库存量
FROM         dbo.[001 IMAST TABLE] LEFT OUTER JOIN
                      dbo.月末加权平均成本 ON dbo.[001 IMAST TABLE].代码 = dbo.月末加权平均成本.MCode LEFT OUTER JOIN
                      dbo.vSMMSO ON dbo.[001 IMAST TABLE].代码 = dbo.vSMMSO.办公用品代码 LEFT OUTER JOIN
                      dbo.vSMMSI ON dbo.[001 IMAST TABLE].代码 = dbo.vSMMSI.办公用品代码

论坛徽章:
0
4 [报告]
发表于 2008-07-02 16:07 |只看该作者
现在有个新问题

为什么最后一个显示字段
ISNULL(dbo.月末加权平均成本.月末量, 0) + ISNULL(dbo.月末加权平均成本.月末量, 0) + ISNULL(dbo.vSMMSI.入库量, 0) - ISNULL(dbo.vSMMSO.出库量, 0)  AS 库存量
写成 期初量+SI-SO 会报错“找不到××字段”?

论坛徽章:
0
5 [报告]
发表于 2008-07-02 16:38 |只看该作者
弱弱问一下 ISNULL是一个函数,但是用 IS NULL(中间有个空格),效果是否一样?

论坛徽章:
0
6 [报告]
发表于 2008-07-02 18:09 |只看该作者
原帖由 petertse 于 2008-7-2 16:38 发表
弱弱问一下 ISNULL是一个函数,但是用 IS NULL(中间有个空格),效果是否一样?



isnull(列名) 和列名 is null,作用一样写法不同。

论坛徽章:
0
7 [报告]
发表于 2008-07-02 18:13 |只看该作者
原帖由 Hawl 于 2008-7-2 16:07 发表
现在有个新问题

为什么最后一个显示字段
ISNULL(dbo.月末加权平均成本.月末量, 0) + ISNULL(dbo.月末加权平均成本.月末量, 0) + ISNULL(dbo.vSMMSI.入库量, 0) - ISNULL(dbo.vSMMSO.出库量, 0)  AS 库存量
写成 期初量+SI-SO 会报错“找不到××字段”?



层次问题。
要在外面加多层select就可以了,因为此时si,so是结果表的列名,在没有得到结果表前,这些列名是无效的,所以找不到。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP