【发布时间】:2020-10-06 15:31:54
【问题描述】:
我有 3 个表(出勤、津贴和扣除),其中有一些记录在出勤。工资、津贴。金额、扣除。金额列。我想用选定的日期对这些列中的值进行“求和”。
汇总的值必须是
- 出勤率。工资:100
- 津贴。金额:150
- 扣减金额:120
但与我的查询值有很大不同。
SELECT Name, SUM(attendance.Wage), SUM(allowances.Amount), SUM(deductions.Amount) FROM employees
INNER JOIN attendance USING (EmployeeID)
INNER JOIN allowances USING (EmployeeID)
INNER JOIN deductions USING (EmployeeID)
WHERE MONTH(attendance.Date) = 6 AND YEAR(attendance.Date) = 2020
AND
MONTH(allowances.Date) = 6 AND YEAR(allowances.Date) = 2020
AND
MONTH(deductions.Date) = 6 AND YEAR(deductions.Date) = 2020
GROUP BY employees.EmployeeID;
查询的输出:
- 出勤率。工资:400
- 津贴。金额:900
- 扣除金额:720
为什么值会增加或增加?我该如何解决?
【问题讨论】:
-
请在代码问题中给出minimal reproducible example--cut & paste & runnable code,包括最小的代表性示例输入作为代码;期望和实际输出(包括逐字错误消息);标签和版本;明确的规范和解释。给出尽可能少的代码,即您显示的代码可以通过您显示的代码扩展为不正常的代码。 (调试基础。)对于包含 DBMS 和 DDL(包括约束和索引)和输入为格式化为表的代码的 SQL。 How to Ask 暂停总体目标的工作,将代码砍到第一个表达式,没有给出你期望的内容,说出你期望的内容和原因。