Emi*_*ily 1 duplicates ms-access-2003 sql-delete
这个问题几乎完成了我想要完成的任务,但是我的表更复杂并且没有主键。我也不太明白最上面的答案,t1 和 t2 是什么意思。如果这个答案适用于我,如果有人解释代码,我将不胜感激。
我有几个月的表格,其中包含有关客户及其持有的保单的信息。每个客户端都有一个唯一的策略 ID,但它们可以有多个策略,从而导致同一策略 ID 下有多个记录。每个字段中的重复记录可以完全不同或完全相同。
出于我的目的,我只想为每个策略 ID 保留一条记录。理想情况下,保留的记录是 Age 最高的记录,但如果太复杂则不需要。请注意,可能有多个记录的年龄是该特定策略 ID 的最大值,那么我们保留其中哪一项并不重要。
我不打算创建主键,因为在某些情况下我会在同一个策略 ID 下保留两条记录,我会自己对代码进行修改。我也不想创建另一个表,因为我正在使用 10 多个表。有人建议使用first(),但我不确定如何将其合并到查询中。
如果您需要任何其他信息,请告诉我,并提前感谢您的帮助!
=========更新#1
好吧,看起来我的问题有点不切实际,所以我将添加一个自动编号主键。我将如何进行?
这些方面的内容:
DELETE Policies.*
FROM Policies
WHERE Policies.ID Not In (
SELECT TOP 1 id
FROM policies p
WHERE p.policyid = policies.policyid
ORDER BY createdate DESC, id )
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8559 次 |
| 最近记录: |