Fix divide by zero errors when no adjustment can be made.
This commit is contained in:
parent
80c8b5b159
commit
f5a79f16b6
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
Loading…
Reference in New Issue
Block a user