DECLARE @text VARCHAR(8000)
SET @text = 'select textNo,textName'
SELECT  @text = @text + ', max(case TextDate when '''
        + CONVERT(VARCHAR(10), textDate, 23) + ''' then score else 0 end) ['
        + TextDate + ']'
FROM    ( SELECT DISTINCT
                    [Date]
          FROM      [text]
        ) AS a
SET @text = @text + 'from text group by textNo,textName'
EXEC(@text)

解决方案 »

  1.   

    额,修改过后还是提示示数据类型 varchar 和 date 在 add 运算符中不兼容
      

  2.   

    子查询 select distinct Date from text 中根本没有 TextDate 字段,你拼到 @text 中的 TextDate 到底是什么东西?
      

  3.   

    TextDate 是测试日期,子查询那个Date是手误打错了,自己后来发现加上了
      

  4.   

    知道怎么修改了,我子查询改成
    select distinct CONVERT(VARCHAR(50),textDate,110)as textDate from text没报错了
      

  5.   

    那么1楼中下面一个 TextDate 也加上 Convert 转换。