绝对经典的一道数据库查询问题,求个SQL语句。

数据库
月 日 名称 值1 值2
2003-06 01 柴油 10 15
2003-06 01 汽油 20 25
2003-06 01 含硫气 30 35
2003-06 02 柴油 81 81
2003-06 02 汽油 90 90
2003-06 02 含硫气 .893 .893

结果

¦柴 油 ¦ 汽 油 ¦含 硫 气 ¦
¦值1 ¦值2 ¦ 值1 ¦ 值2 ¦值1 ¦值2 ¦
01 ¦ 10 ¦ 15 ¦ 20 ¦ 25 &brvbar30 &brvbar35 ¦
02 ¦ 81 ¦ 81 ¦ 90 ¦ 90 &brvbar.839 &brvbar.839 ¦

注意这个要用表格出来,而且不一定就是柴油、汽油这三项,有肯能还有更多,或者更少,列是不固定的,每个列要对应两个小表格既值1和值2。行为31行,可以固定。
如果有人能够用asp写出来,更是感激不尽。
---------------------------------------------------------------

declare @sql varchar(8000)
set @sql = 'select 日'
select @sql = @sql + ',sum(case 名称 when '''+名称+''' then 值1 else 0 end) ['+名称+'/值1],sum(case 名称 when '''+名称+''' then 值2 else 0 end) ['+名称+'/值2]'
from (select distinct 名称 from 数据库) as a
select @sql = @sql+' from 数据库 group by 日'

exec(@sql)
go

Published At
Categories with 数据库类
Tagged with
comments powered by Disqus