First of all, why store the data in two separate tables if the only difference is the status of the row (before movement / after movement). This causes extra complexity
However, if you want to use those table and if I understand the question correctly, to update the pre table could be something like:
UPDATE DRIFT_ITEMS_Pre
SET MOVED FLAG = '1'
WHERE EXISTS (SELECT 1
FROM DRIFT_ITEMS_POST
WHERE DRIFT_ITEMS_POST.EPC = DRIFT_ITEMS_Pre.EPC)
AND MOVED FLAG != '1';
IN other words if EPC is found in the post movement table
Then again the other table based on the idea the location id has changed later perhaps something like
UPDATE DRIFT_ITEMS_POST a
SET MOVED FLAG = '1'
WHERE EXISTS (SELECT 1
FROM DRIFT_ITEMS_POST b
WHERE a.EPC = b.EPC
AND a.LOCATIONID != b.LOCATIONID
AND a.LOADED_TIME < b.LOADED_TIME)
AND MOVED FLAG != '1';
I'm not sure about the logic since you didn't explain the details and usage of each field. However, I'm sure you get the idea from those examples.