diff --git a/route_sql/addmonth_vupd.sql b/route_sql/addmonth_vupd.sql index 32b5031..7f8ba23 100644 --- a/route_sql/addmonth_vupd.sql +++ b/route_sql/addmonth_vupd.sql @@ -405,9 +405,9 @@ WHERE END zero_values ,CASE WHEN (SELECT coalesce(sum(value_loc),0) FROM volume) = 0 AND (SELECT coalesce(sum(units),0) FROM volume) = 0 -- Split pincr evenly between rows. - THEN (SELECT pincr::numeric FROM target) / (SELECT count(*) FROM volume) + THEN (SELECT pincr::numeric FROM target) / (SELECT nullif(count(*),0) FROM volume) WHEN (SELECT coalesce(sum(value_loc),0) FROM volume) = 0 -- Get a per-unit pincr value - THEN (SELECT pincr::numeric FROM target) / (SELECT sum(units) FROM volume) + THEN (SELECT pincr::numeric FROM target) / (SELECT nullif(sum(units),0) FROM volume) ELSE -- Find percent change for existing value_loc (SELECT pincr::numeric FROM target) / (SELECT nullif(sum(value_loc * r_rate),0) FROM volume) END factor diff --git a/route_sql/scale_pd.sql b/route_sql/scale_pd.sql index 2bc422f..182ec5b 100644 --- a/route_sql/scale_pd.sql +++ b/route_sql/scale_pd.sql @@ -109,9 +109,9 @@ target AS (select target_increment incr) END zero_values ,CASE WHEN (SELECT coalesce(sum(value_loc),0) FROM basemix) = 0 AND (SELECT coalesce(sum(units),0) FROM basemix) = 0 -- Split incr evenly between rows. - THEN (SELECT incr::numeric FROM target) / (SELECT count(*) FROM basemix) + THEN (SELECT incr::numeric FROM target) / (SELECT nullif(count(*),0) FROM basemix) WHEN (SELECT coalesce(sum(value_loc),0) FROM basemix) = 0 -- Get a per-unit incr value - THEN (SELECT incr::numeric FROM target) / (SELECT sum(units) FROM basemix) + THEN (SELECT incr::numeric FROM target) / (SELECT nullif(sum(units),0) FROM basemix) ELSE -- Find percent change for existing value_loc (SELECT incr::numeric FROM target) / (SELECT nullif(sum(value_loc * r_rate),0) FROM basemix) END factor diff --git a/route_sql/scale_vupd.sql b/route_sql/scale_vupd.sql index e88acd9..2a4e607 100644 --- a/route_sql/scale_vupd.sql +++ b/route_sql/scale_vupd.sql @@ -242,9 +242,9 @@ FROM END zero_values ,CASE WHEN (SELECT coalesce(sum(value_loc),0) FROM volume) = 0 AND (SELECT coalesce(sum(units),0) FROM volume) = 0 -- Split pincr evenly between rows. - THEN (SELECT pincr::numeric FROM target) / (SELECT count(*) FROM volume) + THEN (SELECT pincr::numeric FROM target) / (SELECT nullif(count(*),0) FROM volume) WHEN (SELECT coalesce(sum(value_loc),0) FROM volume) = 0 -- Get a per-unit pincr value - THEN (SELECT pincr::numeric FROM target) / (SELECT sum(units) FROM volume) + THEN (SELECT pincr::numeric FROM target) / (SELECT nullif(sum(units),0) FROM volume) ELSE -- Find percent change for existing value_loc (SELECT pincr::numeric FROM target) / (SELECT nullif(sum(value_loc * r_rate),0) FROM volume) END factor