SELECT '310000004',DECODE(KPI_CODE, '110000001', 'WUHAN'),
       'AA'||SUM(KPI_VALUE)||
       'BB'||SUM(DECODE(AREA_DESC,'BB',KPI_VALUE,0))||
       'CC'||SUM(DECODE(AREA_DESC,'CC',KPI_VALUE,0))||
       'DD'||SUM(DECODE(AREA_DESC,'DD',KPI_VALUE,0))||
       'EE'||SUM(DECODE(AREA_DESC,'EE',KPI_VALUE,0))||
       'FF'||SUM(DECODE(AREA_DESC,'FF',KPI_VALUE,0))||
       'HH'||SUM(DECODE(AREA_DESC,'HH',KPI_VALUE,0))||
       'JJ'||SUM(DECODE(AREA_DESC,'JJ',KPI_VALUE,0))||
       'KK'||SUM(DECODE(AREA_DESC,'KK',KPI_VALUE,0))||
       'LL'||SUM(DECODE(AREA_DESC,'LL',KPI_VALUE,0))
   FROM DW.SEND_SMS_KPI_TEMP ---省级指标---市级指标
  WHERE kpi_code='110000001'
  GROUP BY DECODE(KPI_CODE,'110000001', 'WUHAN');
  SELECT '310000004',DECODE(KPI_CODE, '120000001', 'HUBEI'),
       'AA'||SUM(KPI_VALUE)||
       'BB'||SUM(DECODE(AREA_DESC,'BB',KPI_VALUE,0))||
       'CC'||SUM(DECODE(AREA_DESC,'CC',KPI_VALUE,0))||
       'DD'||SUM(DECODE(AREA_DESC,'DD',KPI_VALUE,0))||
       'EE'||SUM(DECODE(AREA_DESC,'EE',KPI_VALUE,0))||
       'FF'||SUM(DECODE(AREA_DESC,'FF',KPI_VALUE,0))||
       'HH'||SUM(DECODE(AREA_DESC,'HH',KPI_VALUE,0))||
       'JJ'||SUM(DECODE(AREA_DESC,'JJ',KPI_VALUE,0))||
       'KK'||SUM(DECODE(AREA_DESC,'KK',KPI_VALUE,0))||
       'LL'||SUM(DECODE(AREA_DESC,'LL',KPI_VALUE,0))
   FROM DW.SEND_SMS_KPI_TEMP ---省级指标---市级指标
  WHERE kpi_code='120000001'
  GROUP BY DECODE(KPI_CODE,'120000001', 'HUBEI');
  SELECT '310000004',DECODE(KPI_CODE, '130000001', 'DALIAN'),
       'AA'||SUM(KPI_VALUE)||
       'BB'||SUM(DECODE(AREA_DESC,'BB',KPI_VALUE,0))||
       'CC'||SUM(DECODE(AREA_DESC,'CC',KPI_VALUE,0))||
       'DD'||SUM(DECODE(AREA_DESC,'DD',KPI_VALUE,0))||
       'EE'||SUM(DECODE(AREA_DESC,'EE',KPI_VALUE,0))||
       'FF'||SUM(DECODE(AREA_DESC,'FF',KPI_VALUE,0))||
       'HH'||SUM(DECODE(AREA_DESC,'HH',KPI_VALUE,0))||
       'JJ'||SUM(DECODE(AREA_DESC,'JJ',KPI_VALUE,0))||
       'KK'||SUM(DECODE(AREA_DESC,'KK',KPI_VALUE,0))||
       'LL'||SUM(DECODE(AREA_DESC,'LL',KPI_VALUE,0))
   FROM DW.SEND_SMS_KPI_TEMP ---省级指标---市级指标
  WHERE kpi_code='130000001'
  GROUP BY DECODE(KPI_CODE,'130000001', 'DALIAN');
  SELECT '310000004',DECODE(KPI_CODE, '130000002', 'HUNAN'),
       'AA'||SUM(KPI_VALUE)||
       'BB'||SUM(DECODE(AREA_DESC,'BB',KPI_VALUE,0))||
       'CC'||SUM(DECODE(AREA_DESC,'CC',KPI_VALUE,0))||
       'DD'||SUM(DECODE(AREA_DESC,'DD',KPI_VALUE,0))||
       'EE'||SUM(DECODE(AREA_DESC,'EE',KPI_VALUE,0))||
       'FF'||SUM(DECODE(AREA_DESC,'FF',KPI_VALUE,0))||
       'HH'||SUM(DECODE(AREA_DESC,'HH',KPI_VALUE,0))||
       'JJ'||SUM(DECODE(AREA_DESC,'JJ',KPI_VALUE,0))||
       'KK'||SUM(DECODE(AREA_DESC,'KK',KPI_VALUE,0))||
       'LL'||SUM(DECODE(AREA_DESC,'LL',KPI_VALUE,0))
   FROM DW.SEND_SMS_KPI_TEMP ---省级指标---市级指标
  WHERE kpi_code='130000002'
  GROUP BY DECODE(KPI_CODE,'130000002', 'HUNAN');
  

解决方案 »

  1.   

    不是太明白你的3段语句连接成一个过程的具体意思
    看看我下面的能否满足
    需要创建表:
    create table TD_CITY
    (
      ID       VARCHAR2(20),
      CITYNAME VARCHAR2(20)
    )  pctfree 10
      initrans 1
      maxtrans 255
      storage
      (
        initial 64K
        minextents 1
        maxextents unlimited
      );
    insert into td_city (ID, CITYNAME, ROWID)
    values ('110000001', 'WUHAN', '');insert into td_city (ID, CITYNAME, ROWID)
    values ('120000001', 'HUBEI', '');insert into td_city (ID, CITYNAME, ROWID)
    values ('130000001', 'DALIAN', '');---------------------------------------------------------SQL> select * from td_city;
     
    ID                   CITYNAME
    -------------------- --------------------
    110000001            WUHAN
    120000001            HUBEI
    130000001            DALIAN
     
    ---------------------------------
    create or replace procedure PRO_SELECT is
       CITYCODE TD_CITY%ROWTYPE;
      CURSOR CITY_CURSOR IS SELECT * FROM TD_CITY;
      CITYID  VARCHAR2(20);
      CITYNAME VARCHAR2(20);
    begin
    open CITY_CURSOR;
    fetch CITY_CURSOR into CITYCODE;
    while CITY_CURSOR%found LOOP
    CITYID := CITYCODE.ID;
    CITYNAME := CITYCODE.NAME;
    SELECT '310000004',DECODE(KPI_CODE, CITYID, CITYNAME), 
          'AA'||SUM(KPI_VALUE)|| 
          'BB'||SUM(DECODE(AREA_DESC,'BB',KPI_VALUE,0))|| 
          'CC'||SUM(DECODE(AREA_DESC,'CC',KPI_VALUE,0))|| 
          'DD'||SUM(DECODE(AREA_DESC,'DD',KPI_VALUE,0))|| 
          'EE'||SUM(DECODE(AREA_DESC,'EE',KPI_VALUE,0))|| 
          'FF'||SUM(DECODE(AREA_DESC,'FF',KPI_VALUE,0))|| 
          'HH'||SUM(DECODE(AREA_DESC,'HH',KPI_VALUE,0))|| 
          'JJ'||SUM(DECODE(AREA_DESC,'JJ',KPI_VALUE,0))|| 
          'KK'||SUM(DECODE(AREA_DESC,'KK',KPI_VALUE,0))|| 
          'LL'||SUM(DECODE(AREA_DESC,'LL',KPI_VALUE,0)) 
      FROM DW.SEND_SMS_KPI_TEMP ---省级指标---市级指标 
      WHERE kpi_code=CITYID 
      GROUP BY DECODE(KPI_CODE,CITYID, CITYNAME); 
      commit;
    fetch CITY_CURSOR into CITYCODE;
     end loop;
     close CITY_CURSOR;
    end;
      

  2.   

    你是不是想把三个查询一下子 全显示出来啊   用union 就行啊 前提是对应字段的数据类型要一致  少的字段用空 来填充