2017-05-23 2 views
-1

Hier finden Sie die Eingabe und die erforderliche Ausgabe. Ich brauche eine Abfrage/Prozedur/Funktion in T-SQL, um diese Ausgabe zu erhalten.Vergleichen Sie einen Datumsbereich aus einer Tabelle mit einem anderen Tabellen-Datumsbereich und finden Sie fehlende Periode

Voraussetzung: Ich habe Tabelle a und Tabelle b.

  1. erhalten Sie alle Datumsbereiche aus Tabelle b und fehlende Datumsbereiche aus Tabelle a (im Vergleich zu Tabelle b).

  2. Grundsätzlich müssen wir sicher, dass alle Datumsbereiche in der Tabelle ein machen, müssen in der Ausgabe


Input  
table b 

Start date End date ID 
1/1/2009 9/30/2009 1 
1/1/2013 9/30/2013 1 
11/1/2014 11/30/2014 1 
2/2/2015 12/31/2016 1 

table a 
1/1/2009 12/31/2011 1 
1/1/2013 9/30/2013 1 
1/1/2014 4/30/2014 1 
10/1/2014 12/31/2014 1 
2/2/2015 12/31/9999 1 

Output  
table b 

Start date End date ID 
1/1/2009 9/30/2009 1 
1/1/2013 9/30/2013 1 
11/1/2014 11/30/2014 1 
2/2/2015 12/31/2016 1 

table a   
10/1/2009 12/31/2011 1 
1/1/2014 4/30/2014 1 
10/1/2014 10/31/2014 1 
12/1/2014 12/31/2014 1 
1/1/2017 12/31/9999 1 
+1

Können Sie Ihre Beispieldaten als Tabelle mit Einsätzen veröffentlichen? Die Formatierung hier ist herausfordernd und ehrlich, das erste, was irgendjemand tun wird, ist dies an einen Tisch zu verschieben. –

+0

Dieser Artikel könnte ein sehr guter Ausgangspunkt für Sie sein: [Eine visuelle Erklärung der SQL-Joins] (https://blog.codinghorror.com/a-visual-explanation-of-sql-joins/) –

+1

Was ist zu erwarten Ausgabe? Sie haben die Tabelle a und b angezeigt, beide sind Ausgabetabellen? –

Antwort

0

Tabelle abgedeckt werden [a] enthalten 4 Datensätze und Tabelle [b] enthalten 5 Datensätze. Und Sie müssen diesen fünften Datensatz in Tabelle [b] einfügen. Wenn das korrekt ist, dann ... Machen Sie einen einfachen äußeren Join auf Tabelle [a] und [b] auf Startdaten und Daten beenden. Holen Sie sich den Wert aus der Tabelle [a], wo Sie entsprechende Zeile NULL in der Tabelle [b]

scheint einfach finden, wie es ist :-)

Glücklich Codierung !!!

Verwandte Themen