gpt4 book ai didi

mysql - SQL计数和求和问题

转载 作者:行者123 更新时间:2023-11-29 18:45:02 25 4
gpt4 key购买 nike

我有 2 个包含数据的表。

第一个表cus 包含客户数据。第二个表invoice包含客户创建的发票。

我想选择创建的发票总数以及每个客户的发票总额。

这是我所拥有的:

SELECT cus.cus_id, cus.name_cus, count(invoice.id) as id2, CONCAT('€ ', ROUND(SUM(invoice.total),2)) as total, cus.id 
FROM cus
LEFT OUTER JOIN invoice ON cus.cus_id = invoice.cus_id
WHERE cus.user_id='2'
GROUP BY cus.cus_id

为了测试这一点,我已将一些数据添加到我的数据库中。第一个客户有 2 张发票,总金额为 100(50+50)。第二位客户有 3 张发票,总金额为 30 (10+10+10)。

但是 SQL 代码没有向我显示这些结果。

客户 1 的响应:发票总数 = 1,总计 = 50客户 1 的响应:发票总数 = 0,总计 =(空)

有人知道我的 SQL 语句出了什么问题吗?

我使用的数据库类型是MySQL。

这是一个示例:http://sqlfiddle.com/#!9/a9f9f/1

最佳答案

首先尝试将发票计数和总和分组为子查询,例如:

SELECT cus.cus_id, cus.name_cus, inv.invoice_count, inv.invoice_total, cus.id
FROM cus
LEFT OUTER JOIN
(
SELECT inv.cus_id,
COUNT(inv.id) AS invoice_count,
CONCAT('€ ', ROUND(SUM(inv.total),2)) AS invoice_total
FROM invoice inv
GROUP BY inv.cus_id
) inv
ON cus.cus_id = inv.cus_id
WHERE cus.user_id='2'

关于mysql - SQL计数和求和问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44712519/

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