ms访问中的DISTINCT函数

时间:2014-10-31 21:55:32

标签: sql ms-access ms-access-2013

我在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'.

3 个答案:

答案 0 :(得分:2)

由于Access支持SELECT DISTINCT,但COUNT(DISTINCT不支持SELECT DISTINCT,因此您可以使用GROUP BYCOUNTHAVING和{{}的子查询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中用于直通查询的区域的屏幕截图..

enter image description here