有下面的一个表
项目      日期       单号       品名        数量
1             4-9         18           電板         1500
2             4-10       18            模組         900
3             4-11        18           模組         1500
4             4-14        17            電板       1500如何得到下面的表
项目      日期      单号        電板         模組
1             4-9        18            1500         0
2             4-10      18             0              900
3             4-11      18             0              1500
4             4-14      17             1500         0在ACCESS禮我可以用下面語句實現TRANSFORM Max([實數])
SELECT [項次], [日期], [單號]
FROM ztable
GROUP BY [項次], [日期], [單號]
PIVOT [品名];請問在SQLServer數據庫下如何實現呢?

解决方案 »

  1.   

    declare @sql varchar(8000)set @sql='select 项目,日期,单号'
    select @sql = @sql + ',sum(case 品名 when '''+品名+''' then 数量 else 0 end) as '+品名
      from (select distinct 品名 from ztable) as a
    select @sql = @sql+' from ztable group by 项目,日期,单号'exec(@sql)
      

  2.   

    参考:
    http://www.csdn.net/develop/read_article.asp?id=18622
      

  3.   

    declare @sql varchar(8000)set @sql='select 项目,日期,单号'
    select @sql = @sql + ',sum(case 品名 when '''+品名+''' then 数量 else 0 end) as '+品名
      from (select distinct 品名 from ztable) as a
    select @sql = @sql+' from ztable group by 项目,日期,单号'exec(@sql)
    drop table ztable