【发布时间】:2019-02-03 20:48:58
【问题描述】:
我有两个要一起使用的查询。
查询 1 从工资表生成数据表。在工资表中,一个人在同一天可能有多个条目。因此,如果“hours_type”相同,我希望在此查询产生结果之前将小时数加在一起。
SELECT `payroll`.*, `personnel`.`assigned_shift`
FROM `payroll`, `personnel`
WHERE `payroll`.`full_name`= `personnel`.`full_name`
AND `payroll`.`date` = '$f_date'
AND `personnel`.`assigned_shift` IN ('A', 'B', 'C')
ORDER BY `personnel`.`assigned_shift` ASC;
查询 2 将 hours 一起添加到具有 full_name 和 hours_type 相同的重复条目。此查询的结果是我希望查询 #1 用于重复条目的结果。
SELECT *, SUM(`hours`) AS `hours`
FROM `payroll`
GROUP BY `full_name`, `hours_type`
我已经尝试过 Union,Union All (了解到这些都不起作用,因为列数由于某种原因不同。)尽管我在子查询中尝试了多次尝试,但我不太了解子查询的工作原理。任何帮助将不胜感激。 (我是 SQL 新手)。
【问题讨论】:
-
请提供样本数据和预期输出
标签: mysql sql join left-join aggregate-functions