SQL Sum()函数和Join

时间:2016-12-06 00:15:45

标签: sql sql-server join sum inner-join

两个表格

ORDER_TABLE:

ORDER_ID | TARGET_QTY | 
-----------------------
1        |    50     
2        |    100  
3        |    200

ALLOC_TABLE:

ORDER_ID | TARGET_QTY |
-----------------------
1        |         50  
2        |         20  
2        |         30  
3        |        200  

我想返回ORDER_TABLE.ORDER_ID,其中订单ID的SUM(ALLOC_TABLE.TARGET_QTY)是< ORDER_TABLE.TARGET_QTY。防爆。期望的输出如下:

ORDER_ID | 
---------
2

感谢所有帮助!

2 个答案:

答案 0 :(得分:2)

SELECT
at.ORDER_ID
FROM
    ALLOC_TABLE at
    JOIN ORDER_TABLE ot ON at.ORDER_ID = ot.ORDER_ID
GROUP BY
    at.ORDER_ID, ot.TARGET_QTY
HAVING
    SUM(at.TARGET_QTY) < ot.TARGET_QTY

答案 1 :(得分:0)

试试这个

SELECT  at.ORDER_ID
FROM   ALLOC_TABLE at
full outer JOIN ORDER_TABLE ot ON at.ORDER_ID = ot.ORDER_ID
GROUP BY at.ORDER_ID
HAVING SUM(at.TARGET_QTY) < ot.TARGET_QTY