2014-10-31 64 views
2

我試圖運行該SQL在MS接入毫秒的存取GROUP BY錯誤

SELECT `orig`.`SONG TITLE`,`orig`.`PUBLISHER`,`orig`.`CFG DESCRIPTION` 
FROM `Sheet1` AS `orig` 
INNER JOIN `Sale type` AS `Sale` 
ON orig.`CFG DESCRIPTION`=Sale.`CFG DESC` 
GROUP BY orig.`SONG TITLE` , orig.`PUBLISHER` 
; 

我得到一個錯誤說:「你的查詢不包括指定表達式‘CFG說明’作爲的一部分聚合函數「

當我運行此查詢沒有GROUP BY子句一切正常。我在做什麼錯了GROUP BY?

回答

0

group by子句表示每個不同的組合列都會得到一個結果行。這意味着你的選擇列表中只能包含由分組列,或聚合功能(例如,countsumminmax等)

所以您應該添加CFG DESCRIPTIONgroup by條款:

SELECT `orig`.`SONG TITLE`,`orig`.`PUBLISHER`,`orig`.`CFG DESCRIPTION` 
FROM `Sheet1` AS `orig` 
INNER JOIN `Sale type` AS `Sale` 
ON orig.`CFG DESCRIPTION`=Sale.`CFG DESC` 
GROUP BY orig.`SONG TITLE` , orig.`PUBLISHER`,`orig`.`CFG DESCRIPTION` 
; 

還是從選擇列表中刪除:

SELECT `orig`.`SONG TITLE`,`orig`.`PUBLISHER` 
FROM `Sheet1` AS `orig` 
INNER JOIN `Sale type` AS `Sale` 
ON orig.`CFG DESCRIPTION`=Sale.`CFG DESC` 
GROUP BY orig.`SONG TITLE` , orig.`PUBLISHER` 
; 

根據您需要的當然結果。

0

GROUP BY是一個全有或全無概念,其中您選擇的每個列都需要在子句中,除非它是聚合。包括origCFG DESCRIPTION在GROUP BY的末尾,它應該運行。

0

我認爲你需要添加原稿[GFC描述]您的分組方式:。

GROUP BY原稿[歌名],原稿[PUBLISHER],原稿[GFC說明]

如果這不適合您的情況,請將原始[GFC說明]放在一個聚合函數中:

選擇origSONG TITLEorigPUBLISHER,MIN(origCFG DESCRIPTION) FROM Sheet1 AS orig INNER JOIN Sale type AS Sale ON原稿。 CFG DESCRIPTION =出售。 CFG DESC GROUP BY orig。 SONG TITLE,orig。 PUBLISHER ;

您可以使用任何聚合函數,如MAX,FIRST(訪問特定)等。