帮忙求一条sql语句
表结构如下:
id createDate kpiId kpiName kpiValue
1 2007-07-20 101 name1 1000
2 2007-07-21 102 name2 2000
3 2007-07-20 102 name2 3000
4 2007-07-22 101 name1 4000
.............................................................
如上表结构,每一条记录表示的是某个kpiName的值,kpiId 和 kpiName是一一对应的。要求显示如下样式:
时间 name1 name2 ........
2007-07-20 1000 3000
2007-07-21 2000
2007-07-22 4000
结果中的.....表示可能会有多列,这取决于库表中的kpiName字段都有多少个,如果某个kpiName在某个时间没有值的话就空着,结果按时间排序。
请高手帮一下忙,看怎么写出sql语句。
谢谢。
------解决方案--------------------select createdate,
sum(decode(kpiid,101,kpivalue,0)) name1,
sum(decode(kpiid,102,kpivalue,0)) name2,
...
from a group by createdate;
------解决方案--------------------procedure getRstData( rst out sys_refcursor)
is
begin
declare
cursor cur is select distinct (kpiName) from t;
fkpiname varchar2(100);
str varchar2(4000);
begin
str:= 'select createDate ';
open cur;
loop
fetch cur into fkpiname;
exit whe