2012-10-03 42 views
3

我想比较A.BUSINESS_UNIT_PO,A.PO_ID,A.LINE_NBR上2个表格之间的数量总和。下面的查询不适合我。你们中的任何一个人都可以告诉我这个查询中的问题。比较2个不同表格的总和

SELECT A.BUSINESS_UNIT_PO, 
     A.PO_ID, 
     A.LINE_NBR 
FROM PS_BCT_DTL A 
WHERE A.BCT_DET_STATUS=1 
    AND SUM(A.QTY) = (SELECT SUM(B.QTY_SH_RECVD) 
        FROM PS_RECV_LN_SHIP B 
        WHERE A.BUSINESS_UNIT_PO=B.BUSINESS_UNIT_PO 
         AND A.PO_ID= B.PO_ID 
         AND A.LINE_NBR= B.LINE_NBR 
        ) 
GROUP BY A.BUSINESS_UNIT_PO,A.PO_ID, A.LINE_NBR 

回答

4

尝试如下使用having

SELECT A.BUSINESS_UNIT_PO, 
     A.PO_ID, 
     A.LINE_NBR, 
     SUM(A.QTY) 
FROM PS_BCT_DTL A 
WHERE A.BCT_DET_STATUS=1  
GROUP BY A.BUSINESS_UNIT_PO,A.PO_ID, A.LINE_NBR 
having SUM(A.QTY) =(SELECT SUM(B.QTY_SH_RECVD) 
       FROM PS_RECV_LN_SHIP B 
       WHERE A.BUSINESS_UNIT_PO=B.BUSINESS_UNIT_PO 
       AND A.PO_ID= B.PO_ID 
       AND A.LINE_NBR= B.LINE_NBR) 

Here是关于有更多的信息。

+0

非常感谢Parado。这对我有用。 – Narry

+0

我很高兴我能帮助你。不要忘记接受解决问题的答案。 – Parado

2
select 
    A.BUSINESS_UNIT_PO,A.PO_ID,A.LINE_NBR, 
    sum(a.qty) sumA, 
    sum(b.qty) sumB 
from 
    a inner join 
    b on 
    A.BUSINESS_UNIT_PO=B.BUSINESS_UNIT_PO AND 
    A.PO_ID= B.PO_ID AND 
    A.LINE_NBR= B.LINE_NBR 
group by 
A.BUSINESS_UNIT_PO,A.PO_ID,A.LINE_NBR 
having 
    sum(a.qty) = sum(b.qty);