RATE 表中有如下字段
WORK_NO  工作ID(PK)
CUR_CD   通货ID(PK)
RATE_GUR    ‘0’为预支出和收入金额,‘1’为最新支出和收入金额(PK)
RATE_TYPE    ‘1’为支出金额,‘2’为收入金额(PK)
RATE 金额
MAIN_FLG   是否是主通货现在需要查询出一下字段
CUR_CD,RATE,MAIN_FLG查询出显示数据如下
通货 支出金额 收入金额 最新支出金额 最新收入金额
RMB 10000 20000 30000 40000这一条记录实际是对应数据库4条记录,用SQL语句该如何实现呢,我自己写了一点但是不对,不知道该怎么写了。

解决方案 »

  1.   

    固定列数的行转列,GOOGLE一下很多例子
      

  2.   

    不是很明白你要的数据,不过可以用decode函数进行行列转换
      

  3.   

    如果RATE_GUR和RATE_TYPE都为字符类型的话:
    select CUR_CD,
    sum(decode(RATE_GUR||RATE_TYPE,'01',RATE,0)),
    sum(decode(RATE_GUR||RATE_TYPE,'02',RATE,0)),
    sum(decode(RATE_GUR||RATE_TYPE,'11',RATE,0)),
    sum(decode(RATE_GUR||RATE_TYPE,'12',RATE,0))
    from RATE
    group by CUR_CD;如果RATE_GUR和RATE_TYPE都为数字类型的话:
    select CUR_CD,
    sum(decode(RATE_GUR*4+RATE_TYPE,1,RATE,0)),
    sum(decode(RATE_GUR*4+RATE_TYPE,2,RATE,0)),
    sum(decode(RATE_GUR*4+RATE_TYPE,5,RATE,0)),
    sum(decode(RATE_GUR*4+RATE_TYPE,6,RATE,0))
    from RATE
    group by CUR_CD;
      

  4.   

    这里为什么用sum,不用sum不可以吗?