tps/database/reports/stacked.sql
2024-08-29 14:06:05 -04:00

84 lines
2.5 KiB
SQL

with
dcard AS (
SELECT
'dcard' srce
,r.id id
,r.logid logid
--,r."Trans. Date"
,r."Post Date" pdate
,r."Description" descr
,-r."Amount" amount
,r."Category" category
,r."Party" party
,r."Reason" reason
,-(SUM(r."Amount") OVER (ORDER BY r."Post Date" asc , r."Description") + 1083.50) balance
FROM
tpsv.dcard_mapped r
ORDER BY
r."Post Date" desc
)
,hunt as (
SELECT
'hunt' srce
,r.id
,r.logid
--,r."Reference Number"
--,r."Payee Name"
,r."Date"
,r."Memo"
,r."Amount"
,r."Cateogry Name"
,r."Party"
,r."Reason"
,SUM(r."Amount") OVER (ORDER BY r."Date" asc , r.id) + 29909.75 balance
FROM
tpsv.hunt_mapped r
ORDER BY
r."Date" desc
)
,chase AS (
SELECT
'chase' srce
,r.id
,r.logid
--,r."Trans Date"
,r."Post Date"
,r."Description"
,r."Amount" "Amount"
,r."Type"
,null::text "Party"
,null::text "Reason"
,-(SUM(-r."Amount") OVER (ORDER BY r."Post Date" asc , r.id) + 374.23) balance
FROM
tpsv.chase_default r
ORDER BY
r."Post Date" desc
)
,stacked AS (
SELECT * FROM dcard
UNION ALL
SELECT * FROM hunt
UNION ALL
SELECT * FROM chase
)
SELECT
s.srce
,s.id
,s.logid
,s.pdate
,s.descr
,s.amount
--,s.category
,s.party
,s.reason
--,s.balance
,CASE WHEN s.srce = 'hunt' THEN s.balance ELSE null END hunt
,CASE WHEN s.srce = 'dcard' THEN s.balance ELSE null END dcard
,CASE WHEN s.srce = 'chase' THEN s.balance ELSE null END chase
,sum(s.amount) over (ORDER BY s.pdate asc, s.id) + 28452.02 netbalance
FROM
stacked s
ORDER BY
s.pdate desc
,s.id desc