以下代码为sumHours字段返回错误的值。它似乎准备sumHours字段,然后一旦GROUP BY运行,将总和加起来。使用两个LEFT JOIN和GROUP BY时出现错误SUM
SELECT mmr_ID, mmr_projectName, SUM(mmr_hoursWorked.mmr_hoursWorked_hours) AS sumHours
FROM mmr
LEFT JOIN mmr_hoursWorked
ON mmr.mmr_ID = mmr_hoursWorked.mmr_hoursWorked_project AND mmr_hoursWorked.mmr_hoursWorked_mm = "P90826"
LEFT JOIN mmr_notes
ON mmr.mmr_ID = mmr_notes.mmr_notes_MMR_ref AND mmr_notes.mmr_notes_author = "P90826"
WHERE mmr_mmAssigned = "P90826" AND mmr_projectStatus != 1 OR mmr_notes.mmr_notes_author = "P90826" AND mmr_projectStatus != 1
GROUP BY mmr_ID
实效
mmr_ID - 35
mmr_projectName - 项目A
sumHours - 140.2
预期结果
mmr_ID - 35
mmr_projectName - 项目A
sumhours - 35.05
请显示样本数据,预期结果和实际结果。另外,请编辑该问题,以便您的代码显示为代码。 html标签看起来已经搞乱了。 – 2014-09-12 19:40:22
那么,你正在选择每一列,然后只有一列进行分组。这种非ANSI行为在MySQL中是允许的,如果您想要获得一致的结果,那么它并没有什么意义。 – Lamak 2014-09-12 19:40:52
问题是,您的联接会影响连接的行数增加。但是,无法修复查询,因为不清楚列的来源。 – 2014-09-12 19:46:59