Well, got it sort of working now,It is interesting to note that in numeric division it might not be the "best" to apply the most precise variable definition.If the resulting precision+scale is "too large" then truncation will occur.In the example below setting @ and @b to lower precision+scale gave better results after division, compared to using a higher precision+scale.Here is my test code:USE tempdbGODECLARE @tmp DECIMAL(38,20),@a DECIMAL(15, 6),@b DECIMAL(15, 6)SET @a = 25SET @b = 33SET @tmp = @a/@bSELECT @a AS a, @b As b, @a/@b AS aDIVb, @tmp AS tmp INTO #testtableSELECT @a AS a, @b As b, @a/@b AS aDIVb, @tmp As tmp, --p1, --s1, --p2, --s2, --[max(6,s1+p2+1)], p_aDIVb, s_aDIVb, p_tmp, s_tmp, p1-s1+s2+[max(6,s1+p2+1)] AS p_aDIVb2, [max(6,s1+p2+1)] AS s_aDIVb2FROM(SELECT COLUMNPROPERTY(OBJECT_ID('tempdb..#testtable'),'a','PRECISION') AS p1, COLUMNPROPERTY(OBJECT_ID('tempdb..#testtable'),'a','SCALE') AS s1, COLUMNPROPERTY(OBJECT_ID('tempdb..#testtable'),'b','PRECISION') AS p2, COLUMNPROPERTY(OBJECT_ID('tempdb..#testtable'),'b','SCALE') AS s2, COLUMNPROPERTY(OBJECT_ID('tempdb..#testtable'),'aDIVb','PRECISION') AS p_aDIVb, COLUMNPROPERTY(OBJECT_ID('tempdb..#testtable'),'aDIVb','SCALE') AS s_aDIVb, COLUMNPROPERTY(OBJECT_ID('tempdb..#testtable'),'tmp','PRECISION') AS p_tmp, COLUMNPROPERTY(OBJECT_ID('tempdb..#testtable'),'tmp','SCALE') AS s_tmp, CASE WHEN COLUMNPROPERTY(OBJECT_ID('tempdb..#testtable'),'a','SCALE')+ COLUMNPROPERTY(OBJECT_ID('tempdb..#testtable'),'b','PRECISION')+1 < 7 THEN 6 WHEN COLUMNPROPERTY(OBJECT_ID('tempdb..#testtable'),'a','SCALE')+ COLUMNPROPERTY(OBJECT_ID('tempdb..#testtable'),'b','PRECISION')+1 > 38 THEN 6 ELSE COLUMNPROPERTY(OBJECT_ID('tempdb..#testtable'),'a','SCALE')+ COLUMNPROPERTY(OBJECT_ID('tempdb..#testtable'),'b','PRECISION')+1 END AS [max(6,s1+p2+1)]) t DROP TABLE #testtablerockmoose/* Chaos is the nature of things...Order is a lesser state of chaos */