先有一需求,某运营商要统计某地区的错误码情况,要求展示如下效果circle 13 14 15 16 17 --错误码类型beijing 10 10 10 0 0
shanghai 10 10 10 10 10
表结构如下
area 地区:如 上海,北京,南京等
error 错误类型 不固定,如上海可能有13,14,15,16,17,而北京只有13,14,15,如果北京没有的话就补0示例如下create table lhj_test (area varchar2(10),error varchar2(10), coun number )
insert into lhj_test values ('shanghai','13',10);
insert into lhj_test values ('shanghai','14',10);
insert into lhj_test values ('shanghai','15',10);
insert into lhj_test values ('shanghai','16',10);
insert into lhj_test values ('shanghai','17',10);
insert into lhj_test values ('beijing','13',10);
insert into lhj_test values ('beijing','14',10);
insert into lhj_test values ('beijing','15',10);这里的error列举如上,具体个数不详,而且不固定.
输出样式--地区
circle 13 14 15 16 17 --错误码类型beijing 10 10 10 0 0
shanghai 10 10 10 10 10 请大侠指教,多谢
shanghai 10 10 10 10 10
表结构如下
area 地区:如 上海,北京,南京等
error 错误类型 不固定,如上海可能有13,14,15,16,17,而北京只有13,14,15,如果北京没有的话就补0示例如下create table lhj_test (area varchar2(10),error varchar2(10), coun number )
insert into lhj_test values ('shanghai','13',10);
insert into lhj_test values ('shanghai','14',10);
insert into lhj_test values ('shanghai','15',10);
insert into lhj_test values ('shanghai','16',10);
insert into lhj_test values ('shanghai','17',10);
insert into lhj_test values ('beijing','13',10);
insert into lhj_test values ('beijing','14',10);
insert into lhj_test values ('beijing','15',10);这里的error列举如上,具体个数不详,而且不固定.
输出样式--地区
circle 13 14 15 16 17 --错误码类型beijing 10 10 10 0 0
shanghai 10 10 10 10 10 请大侠指教,多谢
http://blog.csdn.net/fatfoxz/archive/2010/01/06/5144680.aspx
max(case error when '13' then coun else 0 end) ,
max(case error when '14' then coun else 0 end) ,
max(case error when '15' then coun else 0 end) ,
max(case error when '16' then coun else 0 end) ,
max(case error when '17' then coun else 0 end)
from lhj_test
group by area
http://blog.csdn.net/fatfoxz/archive/2010/01/06/5144680.aspx--能否详解一下
max(case error when '13' then coun else 0 end) ,
max(case error when '14' then coun else 0 end) ,
max(case error when '15' then coun else 0 end) ,
max(case error when '16' then coun else 0 end) ,
max(case error when '17' then coun else 0 end)
from lhj_test
group by area--其中的error字段的13,14,15,16,17 不但个数不固定,数字也不固定
稍微修改下。max-->nvl(sum(),0)
open c1 for 'select ...后面可以添上order by ..