2016-12-20 4 views
0

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,

enter image description here

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,

enter image description here

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!

+0

'COALESCE (a.Date1, b.Date2)' kann helfen – 1000111

+0

MySQL nicht unterstützt 'FULL OUTER JOIN' AFAIK, so frage ich mich, wie Sie die erste Tabelle tatsächlich erzeugt. –

+0

Ich verwende Microsoft SQL Server Mgmt Studio, also ist das wahrscheinlich nicht dasselbe wie MySQL? –

Antwort

1

Versuchen Sie dies mit coalesce().

 SELECT coalesce(a.DATE1, b.DATE2)as date, a.CF1, b.CF2 
     FROM a 
     FULL OUTER JOIN b 
     ON b.DATE2= a.DATE1 
+0

Diese Funktion ist großartig! Vielen Dank! –

+0

Außerdem bin ich ziemlich neu in SQL und ich frage mich, wie ich Funktionen wie COALESCE finden kann, wenn ich sie brauche? Gibt es einen Ort, wo ich nach allen Funktionen suchen kann, oder muss ich hier eine Frage stellen? –

+0

Sie können diese leicht finden, indem Sie einige SQL ebooks oder Lehrbücher auch lesen, die Sie online Lernprogramme verweisen können wie http://www.w3schools.com/sql/ oder www.tutorialspoint.com/sql –