删除语句报错

小野马1209 2018-02-26 09:38:36
;WITH cte as ( 
SELECT [往来对象代码],max([发生日期]) as '发生日期' FROM [dbo].['112202$']
WHERE [合计]<=0
GROUP BY [往来对象代码]
)

select * FROM [dbo].['112202$'] AS A WHERE EXISTS(
SELECT 1 FROM cte AS B
WHERE
A.[往来对象代码]=B.[往来对象代码]
AND A.[发生日期]>B.[发生日期])



删除语句报错
DELETE FROM [dbo].['112202$']  A WHERE EXISTS(
SELECT 1 FROM cte AS B
WHERE
A.[往来对象代码]=B.[往来对象代码]
AND A.[发生日期]>B.[发生日期])

/*消息 102,级别 15,状态 1,第 13 行
'A' 附近有语法错误。*/
...全文
305 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
二月十六 2018-02-26
  • 打赏
  • 举报
回复
引用 3 楼 kaijie_wu1209 的回复:
[quote=引用 1 楼 sinat_28984567 的回复:]
DELETE  FROM [dbo].['112202$']
WHERE   EXISTS ( SELECT 1
                 FROM   cte AS B
                 WHERE  [dbo].['112202$'].[往来对象代码] = B.[往来对象代码]
                        AND [dbo].['112202$'].[发生日期] > B.[发生日期] )
是不能用别名是吗[/quote] 可以用,用的话,用#2水版写的那个语句
小野马1209 2018-02-26
  • 打赏
  • 举报
回复
引用 1 楼 sinat_28984567 的回复:
DELETE  FROM [dbo].['112202$']
WHERE   EXISTS ( SELECT 1
                 FROM   cte AS B
                 WHERE  [dbo].['112202$'].[往来对象代码] = B.[往来对象代码]
                        AND [dbo].['112202$'].[发生日期] > B.[发生日期] )
是不能用别名是吗
卖水果的net 2018-02-26
  • 打赏
  • 举报
回复
DELETE A FROM [dbo].['112202$']  A  WHERE EXISTS(     SELECT 1 FROM cte AS B      WHERE     A.[往来对象代码]=B.[往来对象代码]     AND    A.[发生日期]>B.[发生日期])
二月十六 2018-02-26
  • 打赏
  • 举报
回复
DELETE  FROM [dbo].['112202$']
WHERE   EXISTS ( SELECT 1
                 FROM   cte AS B
                 WHERE  [dbo].['112202$'].[往来对象代码] = B.[往来对象代码]
                        AND [dbo].['112202$'].[发生日期] > B.[发生日期] )

27,580

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧