有一个表t,select sum(ll)  a站来液  where zm='a'
select sum(ll)  b站来液  where zm='b'
如何放到一行显示啊?即
a站来液   b站来液
128               325

解决方案 »

  1.   

    select sum(decode(zm,'a',ll)) a站来液, sum(decode(zm,'b',ll)) b站来液 from t;
      

  2.   

    一楼是最简单的写法,11g可以用pivot函数实现,
    当然,网上还有大把行转列的存储过程。
      

  3.   

    多谢啦。有一个语句的条件比较复杂:zm='注采站' or exists(select 1 from YS_DHA14 where  zm=t.zm zb='11') ,这个该如何写啊?
      

  4.   

    zm='注采站' or exists(select 1 from YS_DHA14 where zm=t.zm and zb='11') 
      

  5.   

    那你写个子查询,例如select sum(decode(zm,'a',ll)) a站来液, sum(decode(zm,'b',ll)) b站来液 from 
    (select * from t where zm='注采站' or exists(select 1 from YS_DHA14 where zm=t.zm and zb='11'));
    具体可能有些出入,但就是这个意思,你改一下。
      

  6.   

    弟弟你有来这问了啊,你不是已经解决了么, left join 么。