LOAD * FROM Table2;
if( PricePaid >= lookup('ContractPrice','ProductID',ProductID,'Table2') , 'Y', 'N') as PaidTooMuch,
So during the load of Table1, I lookup the ContractPrice in Table2 where ProductID of Table2 matches current ProductID in Table1 row. Table2 needs to be already loaded into QV (not necessarily all fields, but ProductID and ContractPrice.
Alternatively, if you only need these two columns from Table2, you could also do a mapping load of Table2 and use applymap() in your Table1 Load. The mapping table will not be part of your final data model, though.
Hope this helps,