首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >按别名名称分组

按别名名称分组
EN

Stack Overflow用户
提问于 2013-05-05 06:59:22
回答 5查看 27.9K关注 0票数 11

我有以下T查询:

代码语言:javascript
复制
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,第16级,状态1,第15线 无效列名“DiffDate”。

这个查询背后的想法是,我希望在几天内侦破(结案)的案件数量。

示例:

天数

1=3例

2= 50例

3= 20起案件

我怎样才能做到这一点?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2013-05-05 07:03:58

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

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

这是SQL操作顺序:

  • FROM条款
  • WHERE条款
  • 按条款分组
  • 拥有条款
  • 选择子句
  • 逐条命令

试试这个查询,

代码语言:javascript
复制
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
票数 21
EN

Stack Overflow用户

发布于 2013-05-05 07:43:51

不能在group by子句中使用别名。

要么使用派生表,要么简单地删除第二个选择。

代码语言:javascript
复制
select 
    count(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'
Group By 
    DATEDIFF(day,CreateDate,LastActivityDate)
票数 3
EN

Stack Overflow用户

发布于 2015-03-23 21:04:49

这不会给你带来同样的结果吗?

代码语言:javascript
复制
select  Count(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'
GROUP BY DATEDIFF(day,CreateDate,LastActivityDate)

我是SQL的新手,所以我可能没有正确地掌握它。我看到我上面的评论有确切的语法,但我不知道它是否正确.

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16382177

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档