繁体   English   中英

mysql两个表连接总和不等于结果

[英]mysql two table join sum not equal result

我有两个表purchase_orders_detailsstock_orders_details我在下面的段落中显示

purchase_orders_details

--------------------
item_id | item_qty |
--------------------
|   1   |    15    |
|   2   |    10    |
|   1   |    20    |
--------------------

stock_orders_details
------------------------
item_id | item_rcv_qty |
------------------------
|  1 |       10        |
|  2 |        5        |
|  1 |       15        |
------------------------

查询示例是:

SELECT * FROM purchase_orders_details p 
left join stock_details d on p.item_qty=d.item_rcv_qty 
WHERE d.item_rcv_qty IS NULL

我希望得到这样的结果,并且只有结果显示谁与item_qty not equal item_rcv_qty匹配item_qty not equal item_rcv_qty因为当两个数量相等时,则订单将完成。

-------------------------------------------------
Item Id  | Item Quantity  |  Received Quantity |
-------------------------------------------------
|   1    |   35           |      25            |
|   2    |   10           |       5            |
-------------------------------------------------

您的预期输出看起来好像只是汇总了每个item_id料品数量和料品收货数量。 如果是这样,那么解决此问题的一种方法是将两个子查询连接在一起,以计算所需的聚合。

SELECT t1.item_id,
       t1.item_qty AS item_quantity,
       COALESCE(t2.item_rcv_qty, 0) AS receieved_quantity
FROM
(
    SELECT item_id, SUM(item_qty) AS item_qty
    FROM purchase_orders_details
    GROUP BY item_id
) t1
LEFT JOIN
(
    SELECT item_id, SUM(item_rcv_qty) AS item_rcv_qty
    FROM stock_orders_details
    GROUP BY item_id
) t2
    ON t1.item_id = t2.item_id

我运行查询并返回此数组

Array
(
    [0] => stdClass Object
      (
        [item_id] => 1
        [item_quantity] => 5
        [receieved_quantity] => 5
    )

[1] => stdClass Object
    (
        [item_id] => 2
        [item_quantity] => 11
        [receieved_quantity] => 1
    )

[2] => stdClass Object
    (
        [item_id] => 3
        [item_quantity] => 2
        [receieved_quantity] => 0
    )

)

第一个数组有完整的receieved_quantity但他在数组中显示,现在我只想要那些记录不完整的记录。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM