Ich habe eine Reihe von Datensatz. Basierend auf den folgenden Daten, wie Sie alle Transaktionen (XZ) für bestimmte Kundenrechnungen (XR) erhalten.Erhalten Sie alle Zahlungstransaktionen mit SQL
Legend
XR - customer invoice
XZ - payments
XA - manual clearing
Beispiel 1
Doc Nos Type TY Amount Cleared Doc
9500011864 A121 XR 36247.62 9000001660
9600009487 A121 XZ -4.76 9000001660
9000001660 A121 XA 36242.86 9600012264
9600012264 A121 XZ -72490.48 9600012264
CONDITION
Doc Nos : 9500011864
TY : XR
SOLL OUTPUT
Doc Nos Type TY Amount Cleared Doc
9600009487 A121 XZ -4.76 9000001660
9600012264 A121 XZ -72490.48 9600012264
Erklärung oben: Es gibt Kunden Rechnung (XR) mit dem Betrag von 36,247.62. Für Dokumentennummern (9500011864) wird eine Zahlung (XZ) mit dem Wert 4,76 erfasst. Da es sich um eine Teilzahlung handelt, gibt es einen manuellen Ausgleichssaldo (XA) in Höhe von 36.242,86. Eine weitere Zahlung wird (XZ) mit dem Betrag von 72.490,48 (Nr. 9000001660) gebucht.
Beispiel 2
Doc Nos Type TY Amount Cleared Doc
9500011864 A121 XR 36247.62 9000001660
9600009487 A121 XZ -4.76 9000001660
9000001660 A121 XA 36242.86 9000001661
9000001661 A121 XZ -2.86 9000001661
9000001661 A121 XA 36240.00 9600012264
9600012264 A121 XZ -36240.00 9600012264
CONDITION
Doc Nos : 9500011864
TY : XR
GEWÜNSCHTEN OUTPUT
Doc Nos Type TY Amount Cleared Doc
9600009487 A121 XZ -4.76 9000001660
9000001661 A121 XZ -2.86 9000001661
9600012264 A121 XZ -36240.00 9600012264
Beispiel 3
Doc Nos Type TY Amount Cleared Doc
9500000368 A121 XR 36247.62 9000000022
9000000022 A121 XA -36247.62 9000000022
9000000022 A121 XA 36247.62 9000000022
9600016951 A121 XZ -36247.62 9000000022
ZUSTAND
Doc Nos : 9500000368
TY : XR
SOLL OUTPUT
Doc Nos Type TY Amount Cleared Doc
9600016951 A121 XZ -36247.62 9000000022
Ich bin mit SQL Server 2016. Ich bin demütig für SQL Experten bitten, mir zu helfen, auf diesem Prozess. Kann CTE Recursive darauf angewendet werden ?. Danke im Voraus!
1) Für Beispiel 1. Was ist die Beziehung zwischen den zwei gewünschten Aufzeichnungen '9600009487' &' 9600012264', während die Bedingung nur '9500011864' ist? ........ 2) Worum geht es bei der Verwendung von 'where TY = 'XZ''? –
basierend auf Ihrem gegebenen Szenario: Sie tun dies einfach ---> wählen * aus der Tabelle, wo [TY] = 'XZ' hoffe, das könnte helfen. –
Dies ist ein rekursiver Prozess. Ihre Beziehung basiert auf Clearing-Dokumenten. XR Clearing-Dokument zu XZ Clearing-Dokument, sowie XA Clearing-Dokument zu XZ Clearing-Dokument. Wenn Teilzahlung (XZ) Clearing-Dokument zu (XA) Dokument Nr. – user1852837