日期:2014-05-17 浏览次数:20523 次
city dianhao name price
北京 1 西瓜 12
上海 1 西瓜 11
南昌 1 西瓜 10
上海 1 冬瓜 13
武汉 1 冬瓜 12
上海 2 冬瓜 11
武汉 2 冬瓜 10
..........
.......
转化成
动态生成......
dianhao 在北京是否有(西瓜) 在上海是否有(西瓜) (西瓜)的最低价格 在北京是否有(冬瓜) 在上海是否有(冬瓜) (冬瓜)的最低价格
1 1 1 10 0 1 12 (此价格是此dianhao里面最低的)
2 0 0 null 0 1 10
(西瓜)这个是变量 还有很多 比如黄瓜什么的.. 表头只要北京 上海 其他城市只拿最低价格。
declare @s varchar(max)
set @s=''
Select @s=@s+','+quotename('在'+city+'是否有'+name)+'=max(case when [city]='+quotename(city,'''')+' and name= '+quotename(name,'''')+' then 1 else null end)'
--+','+quotename(name+'最低价格')+'=min(case when name= '+quotename(name,'''')+' then price else null end)'
from [huang] group by city,name
SELECT @s=@s+','+quotename(name+'最低价格')+'=min(case when name= '+quotename(name,'''')+' then price else null end)'
FROM [huang]
GROUP BY name
exec('select [dianhao] '+@s+' from [huang] group by [dianhao]')
/*
dianhao 在北京是否有西瓜 在南昌是否有西瓜 在上海是否有冬瓜 在上海是否有西瓜 在武汉是否有冬瓜 冬瓜最低价格 西瓜最低价格
----------- ----------- ----------- ----------- ----------- ----------- -----------&