首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

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

2012-03-01 
请各位帮忙,用SQL语句如何实现?谢谢!表货位产品编号数量郑州电脑10郑州打印机15洛阳打印机20新乡财务软件1

请各位帮忙,用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)

热点排行