我在MS ACCESS中遇到DISTINCT
的问题。
以下是我想要运行的内容以及适用于MySQL的内容:
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`
HAVING COUNT(DISTINCT `Sale type`.`CFG DESC`) > 1
;
我得到的错误信息是:
Syntax error (missing operator) in query expression 'COUNT(DISTINCT Sale type.CFG DESC) > 1'.
答案 0 :(得分:2)
由于Access支持SELECT DISTINCT
,但COUNT(DISTINCT
不支持SELECT DISTINCT
,因此您可以使用GROUP BY
和COUNT
,HAVING
和{{}的子查询1}}在子查询上。
SELECT sub.`SONG TITLE`, sub.PUBLISHER
FROM
(
SELECT DISTINCT
orig.`SONG TITLE`, orig.PUBLISHER, Sale.`CFG DESC`
FROM
Sheet1 AS orig
INNER JOIN `Sale type` AS Sale
ON orig.`CFG DESCRIPTION`=Sale.`CFG DESC`
) AS sub
GROUP BY sub.`SONG TITLE`, sub.PUBLISHER
HAVING COUNT(sub.`CFG DESC`) > 1;
答案 1 :(得分:0)
来自w3schools.com:
注意:COUNT(DISTINCT)适用于ORACLE和Microsoft SQL Server,但是 不使用Microsoft Access。
答案 2 :(得分:0)
如果查询在MySQL中有效,那么直通查询将允许它继续工作。请参阅MS Access中用于直通查询的区域的屏幕截图..