我真的不明白爲什麼這個LEFT JOIN
沒有按照它應該的方式工作。應該有99條記錄來自cleaning_zzz_2016
,就像我刪除LEFT JOIN
時一樣。但是,當我添加LEFT JOIN
時,它會下降到96.在cleaning_zzz_sales
表中不存在CoNumber
的一些表,因此我希望這些字段只是空白並且保留s.
數據;但是,它正在刪除它們。我認爲這可能是由於WHERE s.Rep = 'ZZZ'
,但我不是100%肯定或如何解決這個問題。MS Access SQL記錄在LEFT JOIN中消失,不應該
SELECT j.CoNumber, j.CoName, s.Selling, s.Positions, s.Plans, '' AS Review, j.St, j.CE, j.SI, j.Tgt, ROUND(MAX(j.Comm) * 100) AS [Max of Comm], ROUND(MAX(j.Comm2) * 100) AS [Max of Comm2]
FROM cleaning_zzz_2016 AS j
LEFT JOIN cleaning_zzz_sales AS s
ON j.CoNumber= s.CoNumber
WHERE s.Rep = 'ZZZ' AND s.RepYear = 2016
GROUP BY j.CoNumber, j.CoName, j.St, j.CE, j.SI, j.Tgt, s.Selling, s.Positions, s.Plans
ORDER BY j.CoNumber;
謝謝,那就是答案。正在讓我瘋狂! – sockpuppet
@ user3123109:您是否在Access中嘗試過上述查詢?在我看來,Access不允許在'ON'子句中使用非連接表達式。我認爲下面的@GordonLinoff提供的答案將是Access的最佳答案 – cha
@cha:你讓我懷疑,因爲我沒有安裝MS Access來測試它。並且基於快速搜索,你是對的,有一些帖子指出這不應該是可能的。但我只是用MS Access 2010進行測試,並且能夠做到這一點。我想知道MS Access的後續版本中是否有所改變。我找不到任何證實這一點的信息。 – sstan