2015-06-27 105 views
0

有沒有辦法讓這個SQL語句正常工作?以下是代碼:SQL DELETE在哪裏GROUP BY ... HAVING

DELETE AHsTransactions 
WHERE SerialNumber <> 0 
GROUP BY TypeID, AH1ID, AH2ID 
HAVING COUNT(*) > 1 

關鍵字'GROUP'附近的語法不正確,所以在一個SQL語句中似乎不可能。

回答

3

不,不可能改變該SQL語句直接工作。

可能是不工作的最接近的是低於

WITH T 
    AS (SELECT COUNT(*) OVER (PARTITION BY TypeID, AH1ID, AH2ID) AS c 
     FROM AHsTransactions 
     WHERE SerialNumber <> 0) 
DELETE FROM T 
WHERE c > 1 

+0

非常酷:)太糟糕了,沒有什麼在MySQL,但好知道(與SQL Server 2005+兼容),而我們仍然使用SQL Server! – Mark