今天是个好日子。这是我的代码:
SELECT
'Expired Item -'+ DateName(mm,DATEADD(MM,4,AE.fld_LOAN)) as [Month]
,COUNT(PIT.fld_ID)'COUNT'
,SUM (PIT.fld_GRAM)'GRAMS'
,SUM (PH.fld_AMNT)'PRINCIPAL'
FROM #AllExpired AE
INNER JOIN Transactions.tbl_ITEM PIT
ON AE.fld_MAINID=PIT.fld_MAINID
INNER JOIN Transactions.tbl_HISTO PH
ON AE.fld_MAINID =PH.fld_MAINID
GROUP BY DATENAME(MM,(DATEADD(MM,4,AE.fld_LOAN)))
我面临的问题是我的Count如果函数没有值,则不会返回 0,Sum如果没有检索到结果值,函数不会返回 NULL。相反,它只是输出空白。为什么会这样?我该如何解决?
这是示例输出的屏幕截图。
当然这不是我想要的。我希望它输出零和空。请帮助我,我不知道出了什么问题。谢谢。
当源中不存在记录时,您不能期望在使用 GROUP BY 子句时输出任何记录。
如果您希望 SUM 和 COUNT 函数的输出为 0,则不应使用 GROUP BY。
原因是,当您没有记录时,GROUP BY 子句没有任何可分组依据,因此无法为您提供任何输出。
例如:
SELECT COUNT(*) FROM (SELECT 'Dummy' AS [Dummy] WHERE 1 = 0) DummyTable
将返回一条值为“0”的记录,其中:
SELECT COUNT(*) FROM (SELECT 'Dummy' AS [Dummy] WHERE 1 = 0) DummyTable
GROUP BY [Dummy]
将不返回任何记录。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)