CREATE TABLE [list20040201] (
[Call_Type] [varchar] (2) COLLATE Chinese_PRC_CI_AS NULL ,
[MSISDN] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
[IMEI] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
[IMSI] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
[OtherParty] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
[StartDate] [varchar] (8) COLLATE Chinese_PRC_CI_AS NULL ,
[StartTime] [varchar] (6) COLLATE Chinese_PRC_CI_AS NULL ,
[Duration] [int] NULL ,
[MSC] [varchar] (15) COLLATE Chinese_PRC_CI_AS NULL ,
[StartCellId] [varchar] (15) COLLATE Chinese_PRC_CI_AS NULL ,
[EndCellId] [varchar] (15) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]
GO
[Call_Type] [varchar] (2) COLLATE Chinese_PRC_CI_AS NULL ,
[MSISDN] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
[IMEI] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
[IMSI] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
[OtherParty] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
[StartDate] [varchar] (8) COLLATE Chinese_PRC_CI_AS NULL ,
[StartTime] [varchar] (6) COLLATE Chinese_PRC_CI_AS NULL ,
[Duration] [int] NULL ,
[MSC] [varchar] (15) COLLATE Chinese_PRC_CI_AS NULL ,
[StartCellId] [varchar] (15) COLLATE Chinese_PRC_CI_AS NULL ,
[EndCellId] [varchar] (15) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]
GO
when '01'
then 1
else 0
end
) as varchar
)
)括号不匹配。后面的估计也是这样子。
' 02 ' +cast(sum(case a.Call_Type when '02' then 1 else 0 end) as varchar)+
' 07 ' +cast(sum(case a.Call_Type when ' 07 ' then 1 else 0 end) as varchar)+
' 08 '+cast(sum(case a.Call_Type when '08' then 1 else 0 end) as varchar),count(*) from (select * from list20040201 where Call_type in('01','02','07','08'))a group by MSISDN where a.StartCellId in ('04','05') and ((a.StartDate+a.StartTime)>='110010' and (StartDate+StartTime)<='110010')
服务器: 消息 156,级别 15,状态 1,行 10
在关键字 'where' 附近有语法错误。
select MSISDN,
Call_Type=' 01 ' +cast(sum(case a.Call_Type when '01' then 1 else 0 end) as varchar)+
' 02 ' +cast(sum(case a.Call_Type when '02' then 1 else 0 end) as varchar)+
' 07 ' +cast(sum(case a.Call_Type when ' 07 ' then 1 else 0 end) as varchar)+
' 08 '+cast(sum(case a.Call_Type when '08' then 1 else 0 end) as varchar),count(*) from (select * from list20040201 where Call_type in('01','02','07','08')) as a where a.StartCellId in ('04','05') and (a.StartDate+a.StartTime)>='110010'
group by MSISDN
PS:多了X个括号, GROUP BY应该在where 子句后面
group 子句放到最后。