各位大仙,小神有事相求:
        现有A 表一张,EmpCode,Quantity,ItemModel
                     张三      300        A
                     李四       150      A
                     赵五      200       B
                     ***      120       C
                     ***      ***    **其中:itemmodel 为 N 种  
现在想 得到 显示 如下:
                 A     B     C    D    ********
         张三  300    0     0    0     *****
         李四  150   0       0  0      *****
         ***      ***    **
PS:各位大仙,快亮法宝吧!!!!!!!!本人为新人,不知道怎么给分(也不知道有分给!)

解决方案 »

  1.   

    http://topic.csdn.net/u/20080614/17/22e73f33-f071-46dc-b9bf-321204b1656f.html
      

  2.   


    declare @T table([EmpCode] varchar(20),[Quantity] int,[ItemModel] varchar(20))
    Insert @T
    select '张三',300,'A' union all
    select '李四',150,'A' union all
    select  '赵五',200,'B' 
                                        
    select EmpCode,
           A =sum(case when ItemModel='A' then Quantity else 0 end),
           B =sum(case when ItemModel='B' then Quantity else 0 end)
    from @T
    group by EmpCode
      

  3.   

    其中:itemmodel 为 N 种  
    不好意思,不知是我不会灵活应用还是,LS 大哥没看明白,我现在 ITEMMODEL 的 列数为不 确定性,或者说 有很多,要我怎么用 
    [英语]=max(case when [Course]='英语' then [Score] else 0 end),
     这样的来 写???
      

  4.   

    declare @sql varchar(8000)
    select @sql=' select EmpCode '
    select @sql=@sql+','+aa.ItemModel+'=sum(case ItemModel when '''+aa.ItemModel+''' then quantity else 0 end ) '
    from (select distinct ItemModel From A) as aa
    select @sql=@sql+' From A group by EmpCode '
    exec( @sql)