>>DECLARE @Truck TABLE (id int, overweight int); >>insert @truck values (1,3500); >>insert @truck values (1,2500); >>insert @truck values (2,1500); >>insert @truck values (2,500); >>insert @truck values (1,500); >> >>DECLARE @ttt table (minweight int, maxweight int, fineamount numeric(8,4), PreviousAmount numeric(8,4)); >>insert @ttt values ( 1, 1000,0.005, 0) >>insert @ttt values (1001, 2000,0.01 ,1000*0.005) >>insert @ttt values (2001, 3000,0.015,1000*0.005+1000*0.01) >>insert @ttt values (3001, 4000,0.02 ,1000*0.005+1000*0.01+1000*0.015) >>insert @ttt values (4001, 5000,0.025,1000*0.005+1000*0.01+1000*0.015+1000*0.02) >>insert @ttt values (5001,999999999,0.03 ,1000*0.005+1000*0.01+1000*0.015+1000*0.02+1000*0.025) >> >>SELECT Truck.*, TestMe.PreviousAmount + (Truck.overweight-TestMe.minweight+1)*fineamount AS Something >>FROM @Truck Truck >>INNER JOIN @ttt TestMe ON Truck.overweight BETWEEN TestMe.minweight AND TestMe.maxweight >>>>