2014-10-31 53 views
1

我遇到了MS ACCESS中的DISTINCT問題。ms訪問中的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

您使用的中繼查詢或您使用ODBC? – barrypicker 2014-10-31 22:02:46

+0

在MySQL中,這是錯誤的:'具有計數(DISTINCT'銷售類型''''CFG DESC')> 1'(刪除'> 1') – 2014-10-31 22:03:37

+0

我正在使用查詢 – sqlbuddy 2014-10-31 22:04:18

回答

0

從w3schools.com:

注意:COUNT(DISTINCT)與ORACLE和Microsoft SQL Server一起使用,但不與 Microsoft Access。

+0

如何在不使用DISTINCT的情況下達到所需的功能? – sqlbuddy 2014-10-31 22:02:53

0

如果查詢在MySQL中有效,那麼通過查詢將允許它繼續工作。請參閱在直通查詢MS Access瀏覽區域截圖..

enter image description here

2

由於SELECT DISTINCT在訪問被支持,但COUNT(DISTINCT是不是,你可以在子查詢使用子查詢SELECT DISTINCT和基礎GROUP BYCOUNTHAVING

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;