Я хочу удалить строки из табличной переменной SQL Server 2000/2005 на основе наличия других строк в одной таблице (удалите все 0 строк подсчета, если существует строка счисления non-0 с той же датой). Вот упрощенный пример, который должен только сначала удалить добавленную строку:
declare @O table (
Month datetime,
ACount int NULL
)
insert into @O values ('2009-01-01', 0)
insert into @O values ('2009-01-01', 1)
insert into @O values ('2008-01-01', 1)
insert into @O values ('2007-01-01', 0)
delete from @O o1
where ACount = 0
and exists (select Month from @O o2 where o1.Month = o2.Month and o2.ACount > 0)
Проблема заключается в том, что я не могу заставить SQL-сервер принимать переменную o1 таблицы o1 (и я думаю, что псевдоним требуется из-за имен "o1.Month = o2.Month
" ). Ошибка:
Msg 102, уровень 15, состояние 1, строка 11
Неправильный синтаксис около 'o1'.