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