我想根据同一个表中其他行的存在删除SQL Server 2000/2005表变量中的行(如果非0计数删除所有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服务器接受该表变量的01别名(我认为一个别名,需要因“o1.Month = o2.Month
”匹配字段名称)。错误是:
消息102,15级,状态1,11号线
附近有语法错误 '01'。
哇,不知道这个语法!如果你没有粘贴图片,我会拒绝它作为无效。这是否适用于SQL2000或仅适用于SQL Server 2005?我现在在家,所以无法直接验证。 – 2009-02-28 05:28:44