/*Cross check - total outstanding per vendor vs dcbalance.*/
WITH OS as (SELECT AccountLink, SUM(outstanding) as Outstanding
,CASE WHEN V.bForCurAcc = 1 THEN ROUND(SUM(p.fForeignOutstanding),2) ELSE 0 END
as ForeignOutstanding
FROM PostAP p
LEFT JOIN Vendor V ON p.accountlink = V.DCLink
GROUP BY
p.AccountLink , V.bForCurAcc
)
SELECT V.Account, V.Name, OS.*, V.DCBalance
,V.fForeignBalance
, V.iCurrencyID
FROM Vendor V
LEFT JOIN OS ON V.DCLink = OS.AccountLink
WHERE
ABS(COALESCE(V.DCBalance,0) - OS.Outstanding) >0.01
OR
(V.bForCurAcc=1 AND COALESCE(V.fForeignBalance,0) <> OS.ForeignOutstanding)
ORDER BY V.Account |