Hi, it may be me not fully understanding your solution, but I think this will not work.
What I am looking for is each row is compared on a one to one basis. i.e. If the row exists in Dev but not Live we copy row from Dev to Live, if the row exists in Live but not Dev, we delete it from Live.
If exists in both (same key field) , the the UpdatedOn in matching rows is compared, and if the row in Dev is newer than the row in Live, the row is copied, however if both UpdatedOne are the same or the row in Live has a newer UpdatedOn than the corresponding row in Dev, the row is not copied.
This evaluation must be done on a row by row basis, not just compared to a set value.