2017-02-02 60 views
0

我有兩個表。數據存在,不存在

表1

Claim_id 
Claim_Status -- Includes values of "PAID" and "DENIED" 

表2 - 該表包含從表1,但用行項目細節相同的權利要求。

Claim_id 
Line_number 
Status -- Includes values of "PAID" and "DENIED" 

甲付費狀態claim_id從表1可具有帶Status從表=「DENIED」 2

的特定支付要求一些線可以具有在它拒絕幾行。

我需要拉要求所有線路都在數「有償」的狀態, 和權利要求書,其中一些線路「付費」,有的線路「被拒絕」對於一個給定claim_id的數量。

SELECT x.claim_id, x.claim_status, x.payer_id1 
FROM HEADER_CLAIM_TABLE x 
WHERE x.payer_id1 = 'company_Z' 
     AND x.claim_id in (SELECT a.CLAIM_ID, 
           a.LINE_NUMBER, 
           a.STATUS, 
           a.payer_id 
         FROM LINE_DETAIL_CLAIM_TABLE a 
         WHERE EXISTS (SELECT b.* 
             FROM LINE_DETAIL_CLAIM_TABLE B 
             WHERE b.status = 'DENIED') 
           AND a.claim_id = b.claim_id 
           AND a.line_number = b.line_number 
           AND a.payer_id = b.payer_id) 
     AND x.claim_status = 'PAID' 

我是新來的,所以請原諒,如果上述查詢是完全偏離過程。請幫助獲取這些數據。

謝謝。

+0

我使用癩蛤蟆。 – user6287796

+0

對不起。它的Oracle。 – user6287796

+0

爲什麼你應該爲給定的claim_id做這件事?也許對於一個給定的索賠編號,你可以得到支付或拒絕的行數... – Massimo

回答

0

下面是一些老式sql..try這

select claim_with_no_deny.cnt PAID_COUNT, claim_with_deny.cnt WITH_DENY_COUNT 
from 
(select count(*) cnt from HEADER_CLAIM_TABLE h where 
    exists (select 1 from LINE_DETAIL_CLAIM_TABLE D where h.claim_id=d.claim_id and d.status = 'DENIED') claim_with_deny, 
(select count(*) cnt from HEADER_CLAIM_TABLE h where 
not exists (select 1 from LINE_DETAIL_CLAIM_TABLE D where h.claim_id=d.claim_id and d.status = 'DENIED') claim_with_no_deny