当前位置: 代码迷 >> Sql Server >> 请各位帮忙,用SQL语句怎么实现?多谢
  详细解决方案

请各位帮忙,用SQL语句怎么实现?多谢

热度:21   发布时间:2016-04-27 16:24:18.0
请各位帮忙,用SQL语句如何实现?谢谢!

货位       产品编号       数量  
郑州         电脑               10
郑州         打印机           15
洛阳         打印机           20
新乡         财务软件       10


转换为   格式
货位       电脑       打印机       财务软件
郑州         10             15
洛阳                         20
新乡                                             10

------解决方案--------------------
Create table test (addr nvarchar(10),pid nvarchar(10),amt int)
go
insert test values(N '郑州 ',N '电脑 ',10)
insert test values(N '郑州 ',N '打印机 ',15)
insert test values(N '洛阳 ',N '打印机 ',20)
insert test values(N '新乡 ',N '财务软件 ',10)

select *
from test

declare @sql nvarchar(400)
set @sql = 'select addr '
select @sql = @sql + ',sum(case pid when N ' ' '+pid+ ' ' ' then amt end) [ '+pid+ '] '
from (select distinct pid from test) as a
select @sql = @sql+ ' from test group by addr '
print(@sql)
exec(@sql)
  相关解决方案