行列转化(动态sql)

来源:互联网 发布:js文件 跨域访问变量 编辑:程序博客网 时间:2024/05/16 17:41
    1. ItemCD  ItemName    Week ItemNum
    2. 1   トマト     18週 12
    3. 2   胡瓜      18週 32
    4. 3   キャベツ    18週 53
    5. 4   スイカ     18週 43
    6. 5   えのき     18週 79
    7. 6   かぼちゃ    18週 32
    8. 7   レタス     18週 41
    9. 1   トマト     19週 2
    10. 2   胡瓜      19週 31
    11. 3   キャベツ    19週 23
    12. 4   スイカ     19週 54
    13. 5   えのき     19週 34
    14. 6   かぼちゃ    19週 65
    15. 7   レタス     19週 54
    16. 1   トマト     20週 33
    17. 2   胡瓜      20週 45
    18. 3   キャベツ    20週 31
    19. 4   スイカ     20週 45
    20. 5        えのき        20週 36
    21. 6   かぼちゃ    20週 1
    22. 7   レタス     20週 4
    23. 1   トマト     21週 20
    24. 1   トマト     21週 24
  1. declare @sql varchar(4000)
  2. set @sql = 'select week'
  3. select @sql = @sql + ',[ '+itemname+ '] = isnull(convert (varchar,sum(case itemname  when '''+itemname+''' then itemnum end)),''-'')' 
  4. from
  5. item group by itemname
  6. set @sql = @sql+' from item group by week'
  7. --print @sql
  8. exec(@sql)

结果:

  1. 18週 79  32  53  43  12  41  32
  2. 19週 34  65  23  54  2   54  31
  3. 20週 36  1   31  45  33  4   45
  4. 21週 -   -   -   -   44  -   -