用临时表,
因为你CTE里面只是一个查询而已.
select * into # from ....
方式

解决方案 »

  1.   

    小梁
    不负责任啊?(语句你不用管)
    回复hery2002
    如果用了这个的话
    with 
        cte_IncreaseMembers as ()
    下面的语句只能是 
    select,insert, update,delete
      

  2.   

    我下面要用
    if
    else就不行
    还有就是
    我打算用临时表将这个信息插入到临时表中
    但是
    有考虑到
    执行完了怎么删除信息了
    建立临时表
    这样是建立了临时表吗?并把信息插入进去
    select * into #tt from cte_IncreaseMembers
      

  3.   

    就是换成另一种写法
    如果用了这个的话 
    with 
        cte_IncreaseMembers as () 
    下面的语句只能是 
    select,insert, update,delete 
      

  4.   

    select * into #tt from (  select m.Mem_Num,m.Mem_Type,sum(s.SMark+Shop.ShopMark) as TotalMark 
            from MemberInfo as m 
            join (select SCardName,sum(SMark) as SMark 
                  from SalaryIncrease 
                  where sDate between dateadd(day,-30,@IncreaseDate) and dateadd(day,-15,@IncreaseDate) 
                    group by SCardName) as s 
            on (m.Mem_Num=s.SCardName and charindex(N'星级',m.Mem_Type)>0 and s.SMark>=300) or 
                (m.Mem_Num=s.SCardName and charindex(N'钻石',m.Mem_Type)>0 and s.SMark>=600) 
    join (select SCardName,sum(ShopMark) as ShopMark from ShoppingMark where SDate between dateadd(day,-30,@IncreaseDate) and dateadd(day,-15,@IncreaseDate) group by SCardName) as Shop on 
    (m.Mem_Num=s.SCardName and charindex(N'星级',m.Mem_Type)>0 and Shop.ShopMark>=50) or 
    (m.Mem_Num=s.SCardName and charindex(N'钻石',m.Mem_Type)>0 and Shop.ShopMark>=100) 
    group by  m.Mem_Num,m.Mem_Type 
    )t--键个临时表
    select * from #tt 
      

  5.   

    小梁完全不负责任啊?
    555555555555555
    可不可以这样啊?
    create table #temp
    (
      Mem_Num varchar(15),
      Mem_Type varchar(20),
      TotalMark int
    )
    select * into #temp from cte_IncreaseMembers(Mem_Num,Mem_Type,TotalMark)
      

  6.   


    --看你另外一帖.
    create table #temp
    (
      Mem_Num varchar(15),
      Mem_Type varchar(20),
      TotalMark int
    )
    insert into #temp 
    select *  from cte_IncreaseMembers(Mem_Num,Mem_Type,TotalMark)