我有以下SQL Case语句,只要年份匹配,它就能完美运行MF.Date & M.MemberCurrentYear.会有几年不匹配的情况,这会返回余额NULL.我希望它能归零.
SELECT SUM(CASE WHEN Type = 1 THEN Amount ELSE Amount * - 1 END) AS Balance
FROM dbo.MemberFinancials AS MF
INNER JOIN dbo.Members AS M ON MF.MemberID = M.MemberID
AND DATEPART(yyyy, MF.Date) = M.MemberCurrentYear
INNER JOIN dbo.FinancialTypes AS FT ON MF.FinancialTypeID = FT.FinancialTypeID
Run Code Online (Sandbox Code Playgroud)
谢谢
SELECT
ISNULL(SUM(CASE WHEN Type = 1 THEN Amount ELSE Amount * - 1 END),0) AS Balance
FROM dbo.MemberFinancials AS MF INNER JOIN
dbo.Members AS M ON MF.MemberID = M.MemberID AND DATEPART(yyyy, MF.Date) = M.MemberCurrentYear INNER JOIN
dbo.FinancialTypes AS FT ON MF.FinancialTypeID = FT.FinancialTypeID
Run Code Online (Sandbox Code Playgroud)
使用ISNULL(如果您愿意,可以使用COALESCE ......)
| 归档时间: |
|
| 查看次数: |
1420 次 |
| 最近记录: |