Declare @sql varchar(8000)
Set @sql = 'Select MMITNO, MMITDS,BaoZhuan, KuWei'
Select @sql = @sql + ',sum(case TiaoJian when '''+TiaoJian+''' then MTTRQT else 0 end) ['+TiaoJian+']' from (select distinct TiaoJian from View_WHS) as View_WHS  
Select @sql = @sql+' from View_WHS group by MMITNO,MMITDS,BaoZhuan, KuWei'print (@sql)

解决方案 »

  1.   

    貌似没错.如果有中文字段,改为:Declare @sql nvarchar(4000)
    Set @sql = N'Select MMITNO, MMITDS,BaoZhuan, KuWei'
    Select @sql = @sql + N',sum(case TiaoJian when N'''+TiaoJian+''' then MTTRQT else 0 end) ['+TiaoJian+']' from (select distinct TiaoJian from View_WHS) as View_WHS   
    Select @sql = @sql+N' from View_WHS group by MMITNO,MMITDS,BaoZhuan, KuWei'print (@sql)
      

  2.   

    Declare @sql varchar(8000)
    declare @tiaojian varchar(1000)
    set @tiaojian  = ''
    Set @sql = 'Select MMITNO, MMITDS,BaoZhuan, KuWei'
    Select @sql = @sql + ',sum(case TiaoJian when '''
    +@TiaoJian
    +''' then MTTRQT else 0 end) ['+@TiaoJian+'] from (select distinct TiaoJian from View_WHS) as View_WHS '  
    Select @sql = @sql+' from View_WHS group by MMITNO,MMITDS,BaoZhuan, KuWei'print (@sql)
      

  3.   

    楼上的还是不行,所谓的中文是指列名是中文还是什么?
    数据库的数据是这样3EL419004       GF-12 / 28 20100327 AK-100325A   93.900000 一厂1号仓库 生产入库 无卡板/50kg编织袋(有内膜) YCCQ
      

  4.   


    这个TiaoJian是一个列名不可以定义为一个变量吧
      

  5.   


    Declare @sql varchar(8000)
    Set @sql = 'Select MMITNO, MMITDS,BaoZhuan, KuWei'
    Select @sql = @sql + ',sum(case TiaoJian when '''+TiaoJian+''' then MTTRQT else 0 end) ['+TiaoJian+']' from (select TiaoJian = N'中文') as View_WHS
    Select @sql = @sql+' from View_WHS group by MMITNO,MMITDS,BaoZhuan, KuWei'
    print (@sql)可以PRINT。LZ先确定一下select distinct TiaoJian from View_WHS的结果是什么?
    LZ所说的“print不出来”,具体是什么现象?报错?print出为空?print出的结果不对?
      

  6.   


    print为空,单纯显示‘执行成功’,但是什么都没有,无论是print和exec都是显示‘执行成功’
      

  7.   


    Declare @sql nvarchar(4000)
    Set @sql = 'Select MMITNO, MMITDS,BaoZhuan, KuWei'
    Select @sql = @sql + ',sum(case TiaoJian when '''+TiaoJian+''' then MTTRQT else 0 end) ['+TiaoJian+']' from (select TiaoJian = N'中文') as View_WHS
    Select @sql = @sql+' from View_WHS group by MMITNO,MMITDS,BaoZhuan, KuWei'
    print (@sql)这个可以print出来
      

  8.   

    只有两种可能
    1 你没给 @sql赋初值
    2 select distinct TiaoJian from View_WHS 这个结果有NULL
      

  9.   

    Declare @sql varchar(8000)
    Set @sql = 'Select MMITNO, MMITDS,BaoZhuan, KuWei'
    Select @sql = @sql + ',sum(case TiaoJian when '''+TiaoJian+''' then MTTRQT else 0 end) ['+TiaoJian+']' 
    from (select TiaoJian = N'中文' union all select null ) as View_WHS
    Select @sql = @sql+' from View_WHS group by MMITNO,MMITDS,BaoZhuan, KuWei'
    print (@sql)
      

  10.   

    select distinct TiaoJian from View_WHS 这个结果有NULL
      

  11.   

    @sql varchar(8000)这个字符长度的问题,我以前也遇到过你这样的现象,就是改的这个