gpt4 book ai didi

php - 如何从一个表中选择与另一表中的差异(总和)?

转载 作者:行者123 更新时间:2023-11-30 01:23:18 29 4
gpt4 key购买 nike

我有两个带有以下字段的表:
...

orders.orderID
orders.orderValue

payments.orderID
payments.payVal

payments.payVal每个订单都会有增量付款(多对一)。
我需要什么,所以选择 orders 中的所有订单哪里还有余款(orders.orderValue - ((sum)payments.payVal) > 0 ) .

我现在唯一能想到的是使用 orderID 的 (foreach) ,但由于某些特殊原因我不能这样做。由于某些原因,我也无法在表内添加列来保存该值。

我需要的是在一个 SQL 查询中执行整个选择,类似于这个想法:SELECT * FROM orders WHERE <... each(orderValue - (sum(payVal))) > 0 ...>

最佳答案

SELECT *, SUM(p.payVal) AS TotalPayed
FROM orders o
LEFT JOIN payments p ON o.orderID = p.orderID
GROUP BY o.orderID
HAVING SUM(p.payVal) < o.orderValue

这应该为您提供必要的字段,尽管我建议您通过此查询选择特定字段。

LEFT JOIN 可确保您收到每笔订单,即使尚未付款。

SQL Fiddle

关于php - 如何从一个表中选择与另一表中的差异(总和)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18298075/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com