如果本月存在日期,则求和
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())
这里你试图比较 date
和 integer
所以错误。
例如
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]
我正在尝试计算本月所有已完成案例的申请金额。 我正在使用 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())
这里你试图比较 date
和 integer
所以错误。
例如
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]