如果本月存在日期,则求和

Sum if date exists for this month

我正在尝试计算本月所有已完成案例的申请金额。 我正在使用 SQL 2008

如果 DateCompleted 列中有这个月的日期,请给我这些列的 AmountRequested 总和 这是我的代码,它一直在说 "Operand type clash: date is incompatible with int"

SUM(case WHEN CONVERT(DATE,pm.DateCompleted,103) 
 = MONTH(GETDATE()) AND YEAR(pm.DateCompleted) = YEAR(GETDATE())
   THEN pm.AmountRequested 
       ELSE 0 end) AS [LoanAmount]
CONVERT(DATE,pm.DateCompleted,103) = MONTH(GETDATE())

这里你试图比较 dateinteger 所以错误。

例如 CONVERT(DATE,pm.DateCompleted,103) 可能 return '2016-10-11' 并且 MONTH(GETDATE()) 将 return 10。你试图等同 '2016-10-11' = 10 所以产生错误

为什么不对您的列也使用相同的 MONTH 函数

Sum(CASE
        WHEN Month(pm.DateCompleted) = Month(Getdate())
            AND Year(pm.DateCompleted) = Year(Getdate()) THEN pm.AmountRequested
        ELSE 0
    END) AS [LoanAmount]