pivot_forecast/generate_sql/col_baseline.sql

48 lines
1.2 KiB
SQL

DO
$$
DECLARE
clist text;
ytdbody text;
BEGIN
-------------------------------build a column list----------------------------------------
SELECT
string_agg(format('%I',cname),E'\n ,' ORDER BY opos ASC)
INTO
clist
FROM
fc.target_meta
WHERE
func NOT IN ('version');
--RAISE NOTICE 'build list: %',clist;
SELECT
$a$
SELECT
$a$::text||
clist||
$b$
,'baseline' "version"
,'actuals' iter
FROM
rlarp.osm_dev o
WHERE
(
--base period orders booked....
[order date column name] BETWEEN [supplied target range from date] AND [supplied target range to date]
--...or any open orders currently booked before cutoff....
OR ([order status column here] IN ([list of statuses indicating still open]) and [order date column name] <= [include open orders through this date])
--...or anything that shipped in that period
OR ([name of shipdate column] BETWEEN [supplied target range from date] AND [supplied target range to date])
)
--be sure to pre-exclude unwanted items, like canceled orders, non-gross sales, and short-ships
$b$::text
INTO
ytdbody;
RAISE NOTICE '%', ytdbody;
END
$$