Updated SQL scratchpad

git-svn-id: file:///svn-source/pmgr/branches/surplus_account_20090815@582 97e9348a-65ac-dc4b-aefc-98561f571b83
This commit is contained in:
abijah
2009-08-16 16:48:44 +00:00
parent 8843d24baa
commit a1a68f3209

View File

@@ -44,15 +44,29 @@ GROUP BY `status` WITH ROLLUP;
-- Check that transaction totals add up correctly -- Check that transaction totals add up correctly
SELECT T.id, T.amount, SUM(E.amount) AS Eamount SELECT T.id, T.type, T.amount,
-- T.type, A.type, E.crdr,
SUM(IF(E.account_id = T.account_id,
IF(A.type IN ('ASSET','EXPENSE') XOR E.crdr='DEBIT',-1,1),0)
*E.amount) AS Tamt,
SUM(IF(E.account_id = T.account_id,
0,IF(A.type IN ('ASSET','EXPENSE') XOR E.crdr='DEBIT',-1,1))
*E.amount) AS Oamt,
COUNT(E.id) AS Ecnt
FROM pmgr_transactions T FROM pmgr_transactions T
-- LEFT JOIN pmgr_statement_entries E ON E.transaction_id = T.id -- LEFT JOIN pmgr_statement_entries E ON E.transaction_id = T.id
LEFT JOIN pmgr_ledger_entries E ON E.transaction_id = T.id LEFT JOIN pmgr_ledger_entries E ON E.transaction_id = T.id
WHERE LEFT JOIN pmgr_accounts A ON A.id = T.account_id -- E.account_id
E.account_id = T.account_id -- WHERE
-- E.account_id != T.account_id
GROUP BY T.id GROUP BY T.id
HAVING T.amount <> Eamount HAVING
; (T.type = 'INVOICE' AND Tamt <> T.amount)
OR
(T.type <> 'INVOICE' AND Oamt <> T.amount)
OR
(Tamt * -1 <> Oamt)
-- Verify that statement entries all have the correct type -- Verify that statement entries all have the correct type
SELECT SE.id, SE.type, T.id, T.type SELECT SE.id, SE.type, T.id, T.type