我有一个包含以下字段的表:
EmpID,
Code,
Amount,
TransDate,
CM,
CMDate
我想要访问数据网格的是SUM
一切Amount
具有相同的Code
and SUM
the CM
具有相同的Code
as the Amount
然后减去SUM(Amount)
to the SUM(CM)
但如果结果是NULL
(例如,没有CM
求和并减去SUM(Amount)
)然后只需选择SUM(Amount)
。我想出了这个声明:
SELECT
TransDate,
Code,
SUM(Amount) - SUM(CM) AS 'Result'
FROM DeductionTbl
WHERE
(EmpID = @empID)
GROUP BY Code, TransDate
ORDER BY TransDate
如果有的话我会得到结果值SUM(CM)
减去到SUM(Amount)
但我得到了结果NULL
如果没有则值SUM(CM)
一样的Code
。我不想要NULL
数据网格上的值。如果有一个NULL
值只是返回SUM(Amount)
。有没有办法做到这一点?谢谢!
use ISNULL
s:
SELECT
TransDate,
Code,
isnull(SUM(isnull(Amount,0)),0) - isnull(SUM(isnull(CM,0)),0) AS 'Result'
FROM DeductionTbl
WHERE
(EmpID = @empID)
GROUP BY Code, TransDate
ORDER BY TransDate
NOTE:
The SUM(ISNULL(CM,0))
可能会回来NULL
当运行查询时
空结果集也避免了ANSI WARNINGS
about aggregating NULL
.
And ISNULL(SUM(CM),0)
不被视为可为空。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)