我的表格如下所示:
Time Name Cust_ID Num_Calls Num_Orders
12.00 ABC 100 20 10
12.25 PQR 102 23 12
12.30 ABC 100 26 15
01.00 ABC 100 26 18
02.00 PQR 102 23 14
04.00 PQR 102 25 20
如何删除每个“Name& Cust_ID”的早期记录并保留最新记录。当我通过Access数据库运行它们时,记录中的其他字段可能会发生变化,但名称和ID保持不变。
我在一天结束时的输出应该是:
Time Name Cust_ID Num_Calls Num_Orders
01.00 ABC 100 26 18
04.00 PQR 102 25 20
答案 0 :(得分:0)
我认为如果你的cust_id是唯一的,你应该把它作为表中的主键。 然后,只要有新条目,首先检查当前cust_id是否已存在。 如果是,请更新表中的条目。 否则插入。
答案 1 :(得分:0)
试试这个......
这可以根据max(time)
为您提供最新记录,您可以删除此套装的补充。
SELECT * FROM YOUR_TABLE A
INNER JOIN
( SELECT MAX(time) MAX_time
, NAME , CUST_ID
FROM YOUR_TABLE
GROUP BY
NAME , CUST_ID )B
ON A.NAME=B.Name
and A.CUST_ID=B.CUst_ID
and A.time =B.max_time
所以你会删除以下记录
DELETE FROM YOUR_TABLE
WHERE EXISTS
(SELECT * FROM YOUR_TABLE B
WHERE TIME <>( SELECT MAX(time) FROM YOUR_TABLE C WHERE B.NAME=C.Name
and C.CUST_ID=B.CUst_ID )
AND A.NAME=B.Name
and A.CUST_ID=B.CUst_ID)