我正在尋找一些幫助下面的語句。我的意圖是將結果分組爲dom.OutcomeType
,只返回結果集中的兩條記錄(也在下面)。有很多分組標準的原因是因爲我使用的是Access 2007,它堅持讓每個返回的值通過語句組合。按SQL語句分組按預期分組
SQL語句
SELECT d.DiagnosticId, d.AbsenceId, dqm.QuestionNumber, dq.Question, dqm.AnswerId, dom.OutcomeType, do.Outcome, d.AcceptedId, d.Reason
FROM (((ct_adt_Diag d
INNER JOIN ct_adt_DiagOMatch dom ON d.DiagnosticId = dom.DiagnosticId)
INNER JOIN ct_adt_DiagOutcome do ON dom.OutcomeId = do.OutcomeId)
INNER JOIN ct_adt_DiagQAMatch dqm ON d.DiagnosticId = dqm.DIagnosticId)
INNER JOIN ct_adt_DiagQuestion dq ON dqm.QuestionId = dq.QuestionId
WHERE d.AbsenceId = 19
GROUP BY dom.OutcomeType, d.DiagnosticId, d.AbsenceId, dq.Question, dqm.AnswerId, dqm.QuestionNumber, do.Outcome, d.AcceptedId, d.Reason
ORDER BY d.DiagnosticId, dqm.QuestionNumber
結果
感謝
由於您沒有使用聚合函數,您爲什麼使用GROUP BY? – talegna
在SQL/RA中(它不僅僅是Access!),如果有GROUP BY,那麼每個輸出列*必須在分組或集合函數中指定 - 否則查詢根本沒有意義。 – user2864740
它不只是訪問,但任何數據庫管理系統會讓你這樣做..所有非聚合列必須在組中按條款 – SoulTrain