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 + 2.29) 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+89.71 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.05) 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 
)
,format AS (
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
)
SELECT * FROM format order by pdate desc 
