SQL多个CASE语句返回0而不是NULL

Jam*_*mes 2 sql t-sql

我有以下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)

谢谢

gbn*_*gbn 5

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 ......)