Ich habe versucht, mehrere Cash-Flow-Tabelle für mehrere Projekte in einer Tabelle mit SQL zu kombinieren. Die Abfrage i wurde mit dem unten aufgeführtenSQL Outer Join Zeitreihe mit Daten zu unterschiedlichen Zeiten
SELECT a.DATE1, b.DATE2, a.CF1, b.CF2
FROM a
FULL OUTER JOIN b
ON b.DATE2= a.DATE1
und der Ergebnistabelle ist unten aufgeführt,
Da Zahlungsströme für unterschiedliches Projekt in unterschiedlichem Zeitpunkt genommen werden, könnten einige von ihnen passieren am selben Tag, manche nicht. Ich frage mich, wie kann ich meinen Code anpassen, so dass das Ergebnis wie folgt aussieht,
Wo wir zuerst zwei Datumsspalten kombinieren. Bewahren Sie den Datumswert auf, wenn der andere Wert NULL ist, und entfernen Sie doppelte Werte, wenn am selben Tag Cashflows stattgefunden haben.
Da es mehrere Projekte gibt, die ich kombinieren muss, sollte die Methode robust für die Erweiterung sein.
Ich habe folgende zu verwenden versucht,
SELECT ISNULL(a.DATE1, '') + ISNULL(b.DATE2, ''), a.CF1, b.CF2
FROM ...
Doch dies löst nur den NULL-Teil, und tatsächlich duplizierten Datum addiert, und in einem neuen Datum zur Folge hat.
Jede Hilfe wird geschätzt, und vielen Dank im Voraus!
'COALESCE (a.Date1, b.Date2)' kann helfen – 1000111
MySQL nicht unterstützt 'FULL OUTER JOIN' AFAIK, so frage ich mich, wie Sie die erste Tabelle tatsächlich erzeugt. –
Ich verwende Microsoft SQL Server Mgmt Studio, also ist das wahrscheinlich nicht dasselbe wie MySQL? –