首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >根据哪里的条件删除组上的记录?

根据哪里的条件删除组上的记录?
EN

Stack Overflow用户
提问于 2014-03-18 20:26:58
回答 1查看 33关注 0票数 0

我正在使用SQL 2012,我有以下表:

代码语言:javascript
复制
Id  Ticket  LastChange
1   369151  2010-03-18 
2   369151  2010-03-18 
11  374173  2010-11-11 
12  374173  2010-11-11 
13  374173  2010-11-11 
54  374173  2014-01-13 
63  374503  2010-11-18 
64  393920  2010-10-15 
65  393920  2010-10-15 
69  393920  2010-10-19 
70  393920  2012-03-29 
71  404145  2011-03-04 
77  404145  2011-03-04 
78  404145  2011-03-10 
79  404145  2011-03-10 
80  404145  2011-03-10 
81  404145  2011-03-28 
82  404145  2011-03-28 
83  404145  2011-03-28 
84  404146  2011-03-04 

我想删除所有的记录,其票务组在过去的x个月没有任何变化。例如,如果票证374173在过去6个月中没有LastChange,那么使用票证374173删除表中的所有记录。

我可以用一个可笑的组查询、连接、子查询、子查询、删除来完成这个任务,但这似乎太复杂了。我认为分区处理可能是一种更简单的方法,但对TSQL来说仍然是个新手。任何帮助都是非常感谢的。谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-18 20:32:15

您可以使用子查询来获取要删除的票。修改“最后6个月”部分,以满足您的确切需要。

代码语言:javascript
复制
DELETE FROM table1
WHERE Ticket IN
    (SELECT Ticket FROM table1
     GROUP BY Ticket
     HAVING MAX(LastChange) < DATEADD(month, -6, GETDATE()))
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22490303

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档