我有以下T-SQL查询:
select
count(CaseId),
(SELECT DATEDIFF(day,CreateDate,LastActivityDate)) AS DiffDate
from
VW_Case_Analysis
where
CaseStatus = 'C'
and LastActivityDate between '2013-4-1 00:00:00.000' and '2013-4-30 23:59:59.000'
Group By
DiffDate
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
消息207,级别16,状态1,行15
无效的列名称"DiffDate".
这个查询背后的想法是我希望在多少天内解决(关闭)案例数量.
例:
天
1 = 3例
2 = 50例
3 = 20例
我该怎么做到这一点?
Joh*_*Woo 18
您需要在GROUP BY
子句中使用整个表达式,或者只是将整个语句包装在子查询中并对外部语句进行分组.
您不能ALIAS
在GROUP BY
语句的同一级别上创建的子句使用的原因SELECT
是因为它是在创建它的子句GROUP BY
之前执行的.SELECT
ALIAS
这是SQL的操作顺序:
试试这个查询,
SELECT COUNT(CaseId),
DiffDate
FROM
(
select CaseId,
DATEDIFF(day,CreateDate,LastActivityDate) AS DiffDate
from VW_Case_Analysis
where CaseStatus = 'C' and
LastActivityDate between '2013-4-1 00:00:00.000' and '2013-4-30 23:59:59.000'
) sub
Group By DiffDate
Run Code Online (Sandbox Code Playgroud)