日期:2014-05-17  浏览次数:20882 次

求个sql语句
数据表如下:
          区域           时间                         价格
          华南           2007-1-1                 100
          华北           2007-5-2                 2100
          华东           2007-6-1                 10002
          华中           2007-3-1                 1020
          华南           2006-2-2                 406

要求在页面中输出格式:
                        时间1                 时间2           时间3
区域                 价格                   价格             价格

其中时间为动态的,用户可在前一页面选择,怎么写sql语句,和在页面中输出表

------解决方案--------------------
select count(时间) from tab_name where (用户选择的时间段) '计算表格的数据列
select * from 表 group by 区域
然后判断每个区域的时间字段值应该出现在哪个列,有点啰嗦,我也做过类似的功能
------解决方案--------------------
declare @sql varchar(1000)
set @sql= 'select 区域 , '
select @sql=@sql+ 'sum(case 時間 when ' ' '+時間+ ' ' 'then 價格 else 0) as '+時間+ ', '
from (select distinct 時間 from 數據表 where 條件) as t
select @sql=left(@sql,len(@sql)-1)+ 'from 數據表 '
exec(sql)
go
where 後面加你需要過濾時間的條件
------解决方案--------------------
给一个例子参考一下:

TRANSFORM avg(Cj.成绩)
SELECT Cj.学号
FROM Cj
GROUP BY Cj.学号
PIVOT Cj.课程号;