select sum(decode(zm,'a',ll)) a站来液, sum(decode(zm,'b',ll)) b站来液 from t;
一楼是最简单的写法,11g可以用pivot函数实现, 当然,网上还有大把行转列的存储过程。
多谢啦。有一个语句的条件比较复杂:zm='注采站' or exists(select 1 from YS_DHA14 where zm=t.zm zb='11') ,这个该如何写啊?
zm='注采站' or exists(select 1 from YS_DHA14 where zm=t.zm and zb='11')
那你写个子查询,例如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')); 具体可能有些出入,但就是这个意思,你改一下。
当然,网上还有大把行转列的存储过程。
(select * from t where zm='注采站' or exists(select 1 from YS_DHA14 where zm=t.zm and zb='11'));
具体可能有些出入,但就是这个意思,你改一下。