gpt4 book ai didi

php - 多个 SQL 选择和同一个表上的位置

转载 作者:行者123 更新时间:2023-11-29 13:14:05 27 4
gpt4 key购买 nike

我需要对 MYSQL 数据库中的一张表进行查询。在此查询中,我需要使用不同的位置进行多个选择。

我当前的查询是:

$result = mysql_query("
SELECT
last_name, first_name, user_name,
SUM(rthours) as rthours, SUM(othours) as others,
SUM(trthours) as trthours, SUM(tothours) as tot hours
FROM data
WHERE labor_date BETWEEN '$start' AND '$end'
ORDER BY last_name ASC
");

我还需要选择以下两项:

SUM(rthours) as vhours FROM data WHERE decription = 'vacation' AND labor_date BETWEEN '$start' AND '$end'

SUM(rthours) as shours FROM data WHERE decription = 'sick' AND labor_date BETWEEN '$start' AND '$end'

如何将所有三个选择合并到一个查询中,以便我可以在随后输出的表中使用它们。

感谢您的帮助!

最佳答案

您可以在SUM()中使用CASE

SELECT last_name, first_name, user_name,
SUM( CASE WHEN decription = 'vacation' AND labor_date BETWEEN '$start' AND '$end' THEN rthours ELSE 0 END) as rthours,
SUM(CASE WHEN decription = 'sick' AND labor_date BETWEEN '$start' AND '$end' THEN rthours ELSE 0 END) as shours,
SUM(othours) as othours,
SUM(trthours) as trthours,
SUM(tothours) as tothours
FROM data
WHERE labor_date BETWEEN '$start' AND '$end'
/*missing group by*/
Order by last_name ASC

对于聚合函数,您应该使用组函数

关于php - 多个 SQL 选择和同一个表上的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21711841/

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