The query below will delete all the history records for each item, except one latest record
DELETE FROM Table1 WHERE itemHistoryId NOT IN (SELECT t1.itemHistoryId FROM Table1 as t1 WHERE t1.historyDateTime = (SELECT MAX(historyDateTime) FROM Table1 WHERE ItemID=t1.ItemID))The subquery
SELECT t1.itemHistoryId FROM Table1 as t1 WHERE t1.historyDateTime = (SELECT MAX(historyDateTime) FROM Table1 WHERE ItemID=t1.ItemID)will return all the records with the latest history date, one per each itemID (i.e. records to be kept), and the main query will pull all the records that are not included in this subquery and delete them
No comments:
Post a Comment