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

解决方案 »

  1.   

    cast ( sum (  case a.Call_Type 
                       when '01' 
                       then 1 
                       else 0 
                   end
               ) as varchar
         )
      )括号不匹配。后面的估计也是这样子。
      

  2.   

    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'))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' 附近有语法错误。
      

  3.   

    语法通过的:
    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 子句后面
      

  4.   


        group 子句放到最后。