【发布时间】:2013-08-02 15:08:37
【问题描述】:
我正在尝试使用聚合函数和 case 语句进行查询以在我的 select 中工作,并在 case 语句上使用 group by 在 SQL Server 2005 中工作,但我似乎遗漏了一些东西。
declare @td int
set @td = 20130731
select
count(*) as total,
case
when dateadd(s, cdm.[StartTime], '19700101') >= '2013-07-31 00:00:00.000' and dateadd(s, cdm.[StartTime], '19700101') < '2013-07-31 01:00:00.000'
then '0-1'
end as timestripe
FROM
[EXTERNAL_CDR].[dbo].[CDRMAIN] as cdm
WHERE
cdm.LocalDay = @td
AND cdm.targetnum IN ('500','600')
GROUP BY
timestripe
count(*) 部分有点弱,我知道,但问题在于 group by 语句。当我运行此查询时,我收到以下错误:
消息 207,第 16 级,状态 1,第 15 行
列名“timestripe”无效。
似乎 case 语句是错误的根本原因,但我不应该为了让它工作而编写子查询或加入。有什么想法吗?
【问题讨论】:
标签: sql-server sql-server-2005 group-by case aggregate