加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 黄冈站长网 (http://www.0713zz.com/)- 数据应用、建站、人体识别、智能机器人、语音技术!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

sql – 按别名分组

发布时间:2021-01-11 23:42:56 所属栏目:MsSql教程 来源:网络整理
导读:我有以下T-SQL查询: select count(CaseId),(SELECT DATEDIFF(day,CreateDate,LastActivityDate)) AS DiffDatefrom VW_Case_Analysiswhere CaseStatus = 'C' and LastActivityDate between '2013-4-1 00:00:00.000' and '2013-4-30 23:59:59.000'Group By

我有以下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

我收到以下错误:

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子句

试试这个查询,

SELECT  COUNT(CaseId),DiffDate
FROM
        (
            select  CaseId,DATEDIFF(day,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

(编辑:PHP编程网 - 黄冈站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读