Sql 我想做的是,消除所有修改日期小于CI_NAME列中每个条目的最大日期的行
我得到一个错误: 执行错误:关键字“HAVING”附近的语法不正确Sql 我想做的是,消除所有修改日期小于CI_NAME列中每个条目的最大日期的行,sql,sql-server,Sql,Sql Server,我得到一个错误: 执行错误:关键字“HAVING”附近的语法不正确 我试图做的是,删除所有修改日期小于ciu NAME列中每个条目的最大日期的行,如下所示: DELETE FROM MOBILE_CELONIS_SITES WHERE CI_NAME IN (SELECT CI_NAME FROM MOBILE_CELONIS_SITES GROUP BY CI_NAME HAVI
我试图做的是,删除所有修改日期小于
ciu NAME
列中每个条目的最大日期的行,如下所示:
DELETE FROM MOBILE_CELONIS_SITES
WHERE CI_NAME IN (SELECT CI_NAME
FROM MOBILE_CELONIS_SITES
GROUP BY CI_NAME
HAVING COUNT(CI_NAME) > 1)
HAVING MODIFIED_DATE != (SELECT MAX(MODIFIED_DATE)
FROM MOBILE_CELONIS_SITES
GROUP BY CI_NAME);
每个
select
最多有一个having
子句。是的,我正在使用一个select,但另一个在不同的查询中,并且没有having
在DELETE
中。只需将第二个having
切换到,并且我在执行此查询时在“t”附近出现此错误语法。是否复制了确切的查询?我看不出这个查询有任何问题。是的,精确查询
DELETE FROM MOBILE_CELONIS_SITES t
WHERE exists
(Select 1 from MOBILE_CELONIS_SITES tt
Where t.CI_NAME = tt.CI_NAME
And tt.MODIFIED_DATE > t.MODIFIED_DATE)