如果本月存在日期,则汇总

时间:2016-10-11 10:53:40

标签: sql sum int case converter

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

如果本月DateCompleted列中有日期,请告诉我这些列的AmountRequested总和 这是我的代码,它一直在说"操作数类型冲突:日期与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]

1 个答案:

答案 0 :(得分:2)

CONVERT(DATE,pm.DateCompleted,103) = MONTH(GETDATE())

在这里,您要尝试将dateinteger进行比较,以便错误。

<强>实施例 CONVERT(DATE,pm.DateCompleted,103)可能会返回'2016-10-11'MONTH(GETDATE())将返回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]