Ich brauche Hilfe, herauszufinden, wie die folgende SQL-Abfrage aus einer Oracle-Datenbank zu verfeinern:SQL Query Probleme Ausfiltern Summiert
SELECT DISTINCT
PR.DOC_ID, PR.AMEND_NO, LEDGER.ACCT_ID, APPRVL_CHAIN.APPRVR,
SUM(LEDGER.COMMIT)
FROM
LUFSMGR.APPRVL_CHAIN APPRVL_CHAIN,
LUFSMGR.LEDGER LEDGER,
LUFSMGR.PR PR
WHERE
PR.DOC_ID = LEDGER.DOC_ID
AND LEDGER.DOC_ID = APPRVL_CHAIN.DOC_ID
AND APPRVL_CHAIN.AMEND_NO = LEDGER.AMEND_NO
AND LEDGER.AMEND_NO = PR.AMEND_NO
AND ((PR.DOC_ID Like '2116%')
AND (LEDGER.ACCT_ID Like '25601 105300SD%')
AND (APPRVL_CHAIN.APPRVR_ROLE='Funds Manager'))
GROUP BY
PR.DOC_ID, PR.AMEND_NO, LEDGER.ACCT_ID, APPRVL_CHAIN.APPRVR
HAVING
(SUM(LEDGER.COMMIT) <> 0)
ORDER BY
PR.DOC_ID
Diese in Daten ergibt, deren Probe sieht wie folgt aus:
Ich muss alle Doc_ID herausfiltern, wo die Summe der Verpflichtungen einschließlich der Änderungen = 0 ist. Zum Beispiel sollte Doc_ID 21162465SD541 herausgefiltert werden, da die Summe von Ammend_No 0,1 und 2 0 ist.
Was läuft falsch? – Hogan
Was genau ist das Problem? – Mureinik
[Schlechte Angewohnheiten zu kicken: Verwenden von alten JOINs] (http://sqlblog.com/blogs/aaron_bertrand/archive/2009/10/08/bad-habits-to-kick-using-old-style-joins. aspx) - diese alte * durch Kommas getrennte Liste von Tabellen * style wurde durch die * richtige * ANSI 'JOIN'-Syntax im ANSI - ** 92 ** SQL Standard ersetzt (** vor mehr als 20 Jahren **) und die Verwendung wird davon abgeraten –