sql – 按别名分组

前端之家收集整理的这篇文章主要介绍了sql – 按别名分组前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_404_0@
我有以下T-SQL查询
  1. select
  2. count(CaseId),(SELECT DATEDIFF(day,CreateDate,LastActivityDate)) AS DiffDate
  3. from
  4. VW_Case_Analysis
  5. where
  6. CaseStatus = 'C'
  7. and LastActivityDate between '2013-4-1 00:00:00.000' and '2013-4-30 23:59:59.000'
  8. Group By
  9. DiffDate

我收到以下错误

Msg 207,Level 16,State 1,Line 15
Invalid column name ‘DiffDate’.

这个查询背后的想法是我希望在多少天内解决(关闭)案例数量.

例:

1 = 3例

2 = 50例

3 = 20例

我该怎么做到这一点?

解决方法

您需要在GROUP BY子句中使用整个表达式,或者只是将整个语句包装在子查询中,并对外部语句进行分组.

您不能在SELECT语句的同一级别上创建的GROUP BY子句上使用ALIAS的原因是因为GROUP BY在创建ALIAS的SELECT子句之前执行.

这是sql操作顺序:

> FROM子句
> WHERE子句
> GROUP BY子句
> HAVING子句
> SELECT子句
> ORDER BY子句

试试这个查询,

  1. SELECT COUNT(CaseId),DiffDate
  2. FROM
  3. (
  4. select CaseId,DATEDIFF(day,LastActivityDate) AS DiffDate
  5. from VW_Case_Analysis
  6. where CaseStatus = 'C' and
  7. LastActivityDate between '2013-4-1 00:00:00.000' and '2013-4-30 23:59:59.000'
  8. ) sub
  9. Group By DiffDate

猜你在找的MsSQL相关文章