A表结构:
        字段1   字段2   字段3   字段4   字段5
         A        B       C      D       E
现在要写一个sql
使A.B.C.D.E分别作为列的名称,即:最后的报表形式:
        A    B   C   D   E
        1    2   3   4   5
        6    7   8   9   10
上面的数字是另一张表的数据,不能写
select 
         XXX  A,
         XXX  B,
         XXX  c
from
这种格式的,因为A.B.C.D.E都是从表中读出的,不固定,也有可能只有A.B,实际项目中遇到的问题,希望有人帮忙,谢谢

解决方案 »

  1.   

    1 2 3 4 5
    6 7 8 9 10与A B C D E 有什么查询关系么
      

  2.   

    在另一张表有关系,但是查询的结果可以作为字段名称吗?A 表查询的结果要作为另一个select出来的字段的名称,而不是值,A表查询的结果还不是固定的
      

  3.   

    discover只能用sql,并且调用函数,可是函数不能返回结果集把,我接触的时间不太长,select A 表取回的结果是多个,如何能把取回的结果像下面这样:
    select XXX A,
           XXX B,
           XXX C
    from
    这里的别名ABC都是从A表取出的结果,如果结果只有A,就相当于
    select XXX A 
    from
    前面的XXX要根据A的名字进行条件到另一张表里查询
      

  4.   

    大体思路
      declare cursor myresult is
       select distinct cem_name from bb_scxt_pertype;
       rtntype varchar2(20);
       begin
          open myresult;
            loop
              fetch myresult into rtntype;
              exit when myresult%notfound;
                    rtnsql:=rtnsql||',sum(decode(cem_name,'''||rtntype||''',round(yield,0),null)) "'||rtntype||'"';
            end loop;
            tmpsql:=substr(tmpsql,2);
          close myresult;
       end;     rtnsql:=' select corp_name 公司名称,equip_name 系统'||rtnsql||' from bb_scxt_pertype where
                     data_day >='''||begdate||''' and data_day <= '''||enddate||'''
            and program_name=''水泥生产'' and project_name='''||argtype||''' group by corp_name,equip_name order by 1';
      return(rtnsql);然后执行rtnsql。