Professional Documents
Culture Documents
WITH WH as
(select * from warehouse order by event_datetime desc),
days as
(select event_datetime, onhandquantity
, (event_datetime - interval '90 DAY') as day90
, (event_datetime - interval '180 DAY') as day180
, (event_datetime - interval '270 DAY') as day270
, (event_datetime - interval '365 DAY') as day365
from WH limit 1),
inv_90_days as
(select coalesce(sum(WH.OnHandQuantityDelta), 0) as DaysOld_90 /* Get
the total InBound inventories in the last 90 days */
from WH cross join days
where WH.event_datetime >= days.day90
and event_type = 'InBound'),
inv_90_days_final as
(select case when DaysOld_90 > onhandquantity then onhandquantity /*
If InBound inventories is greater than curent total inventories then curent total
inventories is the remaining inventories */
else DaysOld_90
end as DaysOld_90
from inv_90_days x
cross join days),
inv_180_days as
(select coalesce(sum(WH.OnHandQuantityDelta), 0) as DaysOld_180 /* Get
the total InBound inventories between the last 90 and 180 days */
from WH cross join days
where WH.event_datetime between days.day180 and days.day90
and event_type = 'InBound'),
inv_180_days_final as
(select case when DaysOld_180 > (onhandquantity - DaysOld_90) then
(onhandquantity - DaysOld_90)
else DaysOld_180
end as DaysOld_180
from inv_180_days x
cross join days
cross join inv_90_days_final),
inv_270_days as
(select coalesce(sum(WH.OnHandQuantityDelta), 0) as DaysOld_270 /* Get
the total InBound inventories between the last 180 and 270 days */
from WH cross join days
where WH.event_datetime between days.day270 and days.day180
and event_type = 'InBound'),
inv_270_days_final as
(select case when DaysOld_270 > (onhandquantity - (DaysOld_90 +
DaysOld_180)) then (onhandquantity - (DaysOld_90 + DaysOld_180))
else DaysOld_270
end as DaysOld_270
from inv_270_days x
cross join days
cross join inv_90_days_final
cross join inv_180_days_final),
inv_365_days as
(select coalesce(sum(WH.OnHandQuantityDelta), 0) as DaysOld_365 /* Get
the total InBound inventories between the last 270 and 365 days */
from WH cross join days
where WH.event_datetime between days.day365 and days.day270
and event_type = 'InBound'),
inv_365_days_final as
(select case when DaysOld_365 > (onhandquantity - (DaysOld_90 +
DaysOld_180 + DaysOld_270)) then (onhandquantity - (DaysOld_90 + DaysOld_180 +
DaysOld_270))
else DaysOld_365
end as DaysOld_365
from inv_365_days x
cross join days
cross join inv_90_days_final
cross join inv_180_days_final
cross join inv_270_days_final)
WITH WH as
(select * from demo.warehouse order by event_datetime desc),
days as
(select event_datetime, onhandquantity
, date_sub(event_datetime, interval 90 day) as day90
, date_sub(event_datetime, interval 180 day) as day180
, date_sub(event_datetime, interval 270 day) as day270
, date_sub(event_datetime, interval 365 day) as day365
from WH limit 1),
inv_90_days as
(select coalesce(sum(WH.OnHandQuantityDelta), 0) as DaysOld_90
from WH cross join days
where WH.event_datetime >= days.day90
and event_type = 'InBound'),
inv_90_days_final as
(select case when DaysOld_90 > onhandquantity then onhandquantity
else DaysOld_90
end as DaysOld_90
from inv_90_days x
cross join days),
inv_180_days as
(select coalesce(sum(WH.OnHandQuantityDelta), 0) as DaysOld_180
from WH cross join days
where WH.event_datetime between days.day180 and days.day90
and event_type = 'InBound'),
inv_180_days_final as
(select case when DaysOld_180 > (onhandquantity - DaysOld_90) then
(onhandquantity - DaysOld_90)
else DaysOld_180
end as DaysOld_180
from inv_180_days x
cross join days
cross join inv_90_days_final),
inv_270_days as
(select coalesce(sum(WH.OnHandQuantityDelta), 0) as DaysOld_270
from WH cross join days
where WH.event_datetime between days.day270 and days.day180
and event_type = 'InBound'),
inv_270_days_final as
(select case when DaysOld_270 > (onhandquantity - (DaysOld_90 +
DaysOld_180)) then (onhandquantity - (DaysOld_90 + DaysOld_180))
else DaysOld_270
end as DaysOld_270
from inv_270_days x
cross join days
cross join inv_90_days_final
cross join inv_180_days_final),
inv_365_days as
(select coalesce(sum(WH.OnHandQuantityDelta), 0) as DaysOld_365
from WH cross join days
where WH.event_datetime between days.day365 and days.day270
and event_type = 'InBound'),
inv_365_days_final as
(select case when DaysOld_365 > (onhandquantity - (DaysOld_90 +
DaysOld_180 + DaysOld_270)) then (onhandquantity - (DaysOld_90 + DaysOld_180 +
DaysOld_270))
else DaysOld_365
end as DaysOld_365
from inv_365_days x
cross join days
cross join inv_90_days_final
cross join inv_180_days_final
cross join inv_270_days_final)
WITH WH as
(select * from warehouse order by event_datetime desc),
days as
(select event_datetime, onhandquantity
, (event_datetime - interval '90' DAY) as day90
, (event_datetime - interval '180' DAY(3)) as day180
, (event_datetime - interval '270' DAY(3)) as day270
, (event_datetime - interval '365' DAY(3)) as day365
from WH where rownum = 1),
inv_90_days as
(select coalesce(sum(WH.OnHandQuantityDelta), 0) as DaysOld_90
from WH cross join days
where WH.event_datetime >= days.day90
and event_type = 'InBound'),
inv_90_days_final as
(select case when DaysOld_90 > onhandquantity then onhandquantity
else DaysOld_90
end as DaysOld_90
from inv_90_days x
cross join days),
inv_180_days as
(select coalesce(sum(WH.OnHandQuantityDelta), 0) as DaysOld_180
from WH cross join days
where WH.event_datetime between days.day180 and days.day90
and event_type = 'InBound'),
inv_180_days_final as
(select case when DaysOld_180 > (onhandquantity - DaysOld_90) then
(onhandquantity - DaysOld_90)
else DaysOld_180
end as DaysOld_180
from inv_180_days x
cross join days
cross join inv_90_days_final),
inv_270_days as
(select coalesce(sum(WH.OnHandQuantityDelta), 0) as DaysOld_270
from WH cross join days
where WH.event_datetime between days.day270 and days.day180
and event_type = 'InBound'),
inv_270_days_final as
(select case when DaysOld_270 > (onhandquantity - (DaysOld_90 +
DaysOld_180)) then (onhandquantity - (DaysOld_90 + DaysOld_180))
else DaysOld_270
end as DaysOld_270
from inv_270_days x
cross join days
cross join inv_90_days_final
cross join inv_180_days_final),
inv_365_days as
(select coalesce(sum(WH.OnHandQuantityDelta), 0) as DaysOld_365
from WH cross join days
where WH.event_datetime between days.day365 and days.day270
and event_type = 'InBound'),
inv_365_days_final as
(select case when DaysOld_365 > (onhandquantity - (DaysOld_90 +
DaysOld_180 + DaysOld_270)) then (onhandquantity - (DaysOld_90 + DaysOld_180 +
DaysOld_270))
else DaysOld_365
end as DaysOld_365
from inv_365_days x
cross join days
cross join inv_90_days_final
cross join inv_180_days_final
cross join inv_270_days_final)
WITH WH as
(select * from warehouse),
days as
(select top 1 event_datetime, onhandquantity
, dateadd(DAY, -90, event_datetime) as day90
, dateadd(DAY, -180, event_datetime) as day180
, dateadd(DAY, -270, event_datetime) as day270
, dateadd(DAY, -365, event_datetime) as day365
from WH order by event_datetime desc),
inv_90_days as
(select coalesce(sum(WH.OnHandQuantityDelta), 0) as DaysOld_90
from WH cross join days
where WH.event_datetime >= days.day90
and event_type = 'InBound'),
inv_90_days_final as
(select case when DaysOld_90 > onhandquantity then onhandquantity
else DaysOld_90
end as DaysOld_90
from inv_90_days x
cross join days),
inv_180_days as
(select coalesce(sum(WH.OnHandQuantityDelta), 0) as DaysOld_180
from WH cross join days
where WH.event_datetime between days.day180 and days.day90
and event_type = 'InBound'),
inv_180_days_final as
(select case when DaysOld_180 > (onhandquantity - DaysOld_90) then
(onhandquantity - DaysOld_90)
else DaysOld_180
end as DaysOld_180
from inv_180_days x
cross join days
cross join inv_90_days_final),
inv_270_days as
(select coalesce(sum(WH.OnHandQuantityDelta), 0) as DaysOld_270
from WH cross join days
where WH.event_datetime between days.day270 and days.day180
and event_type = 'InBound'),
inv_270_days_final as
(select case when DaysOld_270 > (onhandquantity - (DaysOld_90 +
DaysOld_180)) then (onhandquantity - (DaysOld_90 + DaysOld_180))
else DaysOld_270
end as DaysOld_270
from inv_270_days x
cross join days
cross join inv_90_days_final
cross join inv_180_days_final),
inv_365_days as
(select coalesce(sum(WH.OnHandQuantityDelta), 0) as DaysOld_365
from WH cross join days
where WH.event_datetime between days.day365 and days.day270
and event_type = 'InBound'),
inv_365_days_final as
(select case when DaysOld_365 > (onhandquantity - (DaysOld_90 +
DaysOld_180 + DaysOld_270)) then (onhandquantity - (DaysOld_90 + DaysOld_180 +
DaysOld_270))
else DaysOld_365
end as DaysOld_365
from inv_365_days x
cross join days
cross join inv_90_days_final
cross join inv_180_days_final
cross join inv_270_days_final)