以下查询产生以下错误消息:“无法对包含聚合或子查询的表达式执行聚合函数。”
我试图根据我在案例陈述中提出的某些标准从表中获取元素(贷款)的数量。我正在使用case语句而不是简单地将条件插入到WHERE子句中,因为我使用此单个查询提取多个度量标准,并且这些条件仅适用于此特定度量标准而不适用于其他标准。我该如何解决?
SELECT COUNT(
CASE
WHEN (SELECT CONVERT(DATE, MAX(Dates)) FROM (VALUES (S.SchedClosingDate), (S.SchedClosingDate)) AS SchedDates (Dates)) BETWEEN '05/01/18' AND '05/31/18' THEN FD.FileName
END
) AS [Scheduled to Close]
FROM FileData AS FD
JOIN Status AS S ON FD.FileDataID = S.FileDataID
注意:为了便于阅读,我已从查询中删除了其他指标。
答案 0 :(得分:0)
使用FROM
:
APPLY
子句
SELECT SUM(CASE WHEN v.dte >= '2018-05-01' AND v.dte < '2018-06-01' AND
FD.FileName IS NOT NULL
THEN 1 ELSE 0 END
END) AS [Scheduled to Close]
FROM FileData FD JOIN
Status S
ON FD.FileDataID = S.FileDataID CROSS APPLY
(SELECT MAX(dte)
FROM (VALUES (S.SchedClosingDate), (S.SchedClosingDate)) SchedDates(dte)
) as v(dte);