gpt4 book ai didi

MYSQL 使用 WHERE 子句连接 SUM

转载 作者:行者123 更新时间:2023-11-28 23:44:24 25 4
gpt4 key购买 nike

很抱歉,如果之前有人问过这个问题,但我只是想不出解决方案或在任何地方找到任何东西。

基本上,我需要做的是只显示超过 300 的金额,用于将具有匹配 ID 的注册的总金额加起来

表格: table registration table attendees

用更简单的表格术语来说,TABLE A 和 TABLE B我需要通过加入 WHERE A.ID 和 B.ID 匹配并求和 B.Amount 来获得 B.Amount 总数,其中 B.ID 只是重复。这是我用来通过按 B.ID 分组支付的注册总计:

SELECT tblattendees.FirstName, tblattendees.LastName, 
SUM(tblregistration.RegistrationPaid) AS 'TotalPaid'
FROM tblattendees
JOIN tblregistration
ON tblregistration.RegistrationID = tblattendees.AttendeeID
GROUP BY tblregistration.AttendeeID

在您希望将结果限制在 300 以上之前,此方法工作正常

我已经尝试在加入后添加 WHERE 并使用 AND 和 ON 但它似乎与加法混淆可能是由于我使用 GROUP BY 来获得 RegistrationsPaid 的总数。

也许有些事情我不明白,任何帮助将不胜感激。

最佳答案

您可以在 WHERE 子句中使用子查询和使用条件:

SELECT *
FROM (
SELECT tblattendees.FirstName, tblattendees.LastName,
SUM(tblregistration.RegistrationPaid) AS `TotalPaid`
FROM tblattendees
JOIN tblregistration
ON tblregistration.RegistrationID = tblattendees.AttendeeID
GROUP BY tblregistration.AttendeeID
) AS sub
WHERE sub.TotalPaid > 300

或者您可以按照评论中的建议使用HAVING:

SELECT tblattendees.FirstName, tblattendees.LastName, 
SUM(tblregistration.RegistrationPaid) AS `TotalPaid`
FROM tblattendees
JOIN tblregistration
ON tblregistration.RegistrationID = tblattendees.AttendeeID
GROUP BY tblregistration.AttendeeID
HAVING SUM(tblregistration.RegistrationPaid) > 300

MySQL 中你应该直接使用别名:

SELECT tblattendees.FirstName, tblattendees.LastName, 
SUM(tblregistration.RegistrationPaid) AS `TotalPaid`
FROM tblattendees
JOIN tblregistration
ON tblregistration.RegistrationID = tblattendees.AttendeeID
GROUP BY tblregistration.AttendeeID
HAVING `TotalPaid` > 300;

另见 simplified order of execution :

enter image description here

图片来源:http://social.technet.microsoft.com/wiki/contents/articles/20724.all-at-once-operations-in-t-sql.aspx

关于MYSQL 使用 WHERE 子句连接 SUM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33841548/

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