使用Group BY选择后删除ID

时间:2017-01-30 09:54:09

标签: sql ms-access

我正在使用MS Access 我需要删除作为此查询的结果的所有Table1.ids。我尝试选择Table1.id,但我收到一个错误说:你试图执行一个不包含指定表达式的查询" id"作为聚合函数的一部分。"

SELECT 
Table1.code1,Table1.code2 ,COUNT(*) AS count
FROM 
Table1 LEFT JOIN Table2 ON Table1.id=Table2.id
Where Table2.id IS NULL
GROUP BY
Table1.code1,
Table1.code2
Having
COUNT(*) > 1 

感谢任何帮助。

1 个答案:

答案 0 :(得分:2)

您需要在查询中使用in运算符。如果您需要删除符合条件的所有行,则可以使用table1 code1列,如下所示:

Delete from Table1  where code1 in 
(
   SELECT 
  Table1.code1
  FROM 
  Table1 LEFT JOIN Table2 ON Table1.id=Table2.id
  Where Table2.id IS NULL
  GROUP BY
  Table1.code1,
  Table1.code2
  Having
  COUNT(*) > 1 
)