>>>>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 >>>>>>>>