各位大仙,小神有事相求:
现有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:各位大仙,快亮法宝吧!!!!!!!!本人为新人,不知道怎么给分(也不知道有分给!)
现有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:各位大仙,快亮法宝吧!!!!!!!!本人为新人,不知道怎么给分(也不知道有分给!)
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
不好意思,不知是我不会灵活应用还是,LS 大哥没看明白,我现在 ITEMMODEL 的 列数为不 确定性,或者说 有很多,要我怎么用
[英语]=max(case when [Course]='英语' then [Score] else 0 end),
这样的来 写???
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)