以下代碼爲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