oracle中多个where,Oracle:如何使用不同的where子句以最佳方式执行多个计数?

我需要计算来自同一个表的不同where子句的行.以下是我所需的输出

Bu #A #B #C #D #E #F #G #H #J #K #L #M #N

GB01 267 284 84 45 35 32 458 801 111 899 892 56 99

NL01 132 844 65 28 26 12 627 321 56 681 1062 127 128

每列都有自己的标准,到目前为止,我有以下SQL,但它看起来很丑,并没有完全返回我需要的

SELECT * FROM (

SELECT

c_unit_code,

COUNT(*) AS ADVICE_EXPORT,

0 AS CONFIRMATION_EXPORT,

0 AS ISSUANCE_STANDBY

FROM EXIMTRX.EPLC_MASTER

WHERE (CLS_FLG NOT LIKE 'YES' OR CLS_FLG IS NULL) AND (

form_of_lc LIKE 'IRREVOCABLE' OR

form_of_lc LIKE 'REVOCABLE' OR

form_of_lc LIKE 'IRREVOCABLE TRANSFERABLE' OR

form_of_lc LIKE 'REVOCABLE TRANSFERABLE') AND our_eng LIKE 'ADVICE'

GROUP BY c_unit_code

UNION

SELECT

c_unit_code,

0 AS ADVICE_EXPORT,

COUNT(*) AS CONFIRMATION_EXPORT,

0 AS ISSUANCE_STANDBY

FROM EXIMTRX.EPLC_MASTER

WHERE (CLS_FLG NOT LIKE 'YES' OR CLS_FLG IS NULL) AND (

form_of_lc LIKE 'IRREVOCABLE' OR

form_of_lc LIKE 'REVOCABLE' OR

form_of_lc LIKE 'IRREVOCABLE TRANSFERABLE' OR

form_of_lc LIKE 'REVOCABLE TRANSFERABLE') AND our_eng LIKE 'CONFIRMATION'

GROUP BY c_unit_code

UNION

SELECT

c_unit_code,

0 AS ADVICE_EXPORT,

0 AS CONFIRMATION_EXPORT,

COUNT(*) AS ISSUANCE_STANDBY

FROM EXIMTRX.EPLC_MASTER

WHERE (CLS_FLG NOT LIKE 'YES' OR CLS_FLG IS NULL) AND (

form_of_lc LIKE 'IRREVOCABLE STANDBY' OR

form_of_lc LIKE 'REVOCABLE STANDBY' OR

form_of_lc LIKE 'IRREVOC TRANS STANDBY')

GROUP BY c_unit_code

);

这就是它的回报

GB01 0 0 17

GB01 0 39 0

GB01 80 0 0

NL01 0 0 32

NL01 0 159 0

NL01 341 0 0

任何想法,我怎样才能实现我的需要?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值