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
|
END zero_values
|
||||||
,CASE
|
,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.
|
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
|
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
|
ELSE -- Find percent change for existing value_loc
|
||||||
(SELECT pincr::numeric FROM target) / (SELECT nullif(sum(value_loc * r_rate),0) FROM volume)
|
(SELECT pincr::numeric FROM target) / (SELECT nullif(sum(value_loc * r_rate),0) FROM volume)
|
||||||
END factor
|
END factor
|
||||||
|
|||||||
@ -109,9 +109,9 @@ target AS (select target_increment incr)
|
|||||||
END zero_values
|
END zero_values
|
||||||
,CASE
|
,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.
|
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
|
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
|
ELSE -- Find percent change for existing value_loc
|
||||||
(SELECT incr::numeric FROM target) / (SELECT nullif(sum(value_loc * r_rate),0) FROM basemix)
|
(SELECT incr::numeric FROM target) / (SELECT nullif(sum(value_loc * r_rate),0) FROM basemix)
|
||||||
END factor
|
END factor
|
||||||
|
|||||||
@ -242,9 +242,9 @@ FROM
|
|||||||
END zero_values
|
END zero_values
|
||||||
,CASE
|
,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.
|
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
|
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
|
ELSE -- Find percent change for existing value_loc
|
||||||
(SELECT pincr::numeric FROM target) / (SELECT nullif(sum(value_loc * r_rate),0) FROM volume)
|
(SELECT pincr::numeric FROM target) / (SELECT nullif(sum(value_loc * r_rate),0) FROM volume)
|
||||||
END factor
|
END factor
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user