【发布时间】:2020-01-12 21:33:59
【问题描述】:
我使用 MariaDB 并有两个表(orders、invoiced_positions),我需要计算每个项目的发票和付款数量。所以我需要按 item_name 计算行数和分组。这样做的问题是某些项目被重新打开:所以我需要从没有重新打开的发票中减去重新打开的发票数量。基本上:我想为 所有 个项目做我在这里只为一个项目取得的成就:
SELECT
(SELECT COUNT(item_name = 'Streuselkuchen')
FROM orders, invoiced_positions
WHERE order_id = id AND reopened = 0)
- (SELECT COUNT(item_name = 'Streuselkuchen')
FROM orders, invoiced_positions
WHERE order_id = id AND reopened != 0) AS Difference;
我认为这可以通过here 所示的条件聚合来实现,但我无法将其应用于我的特定任务。
【问题讨论】:
-
请提供样本数据和预期结果以阐明您的要求。
-
@PeterStrawson 您对我的回答提出的编辑会产生无效的 sql 代码。使用别名而不是完整的表名。
标签: mysql count aggregate-functions mariadb-10.3