Angenommen, ich habe eine Tabelle von Einträgen aus wieSQL selbst kommt paarweise
ID Arrival Date Arrival City Departure Date Departure City
1 Jun 27 2015 Berlin Jun 20 2015 Paris
1 Jul 1 2015 Rome Jun 29 2015 Berlin
1 Jul 30 2015 Vienna Jul 15 2015 Rome
2 Jun 28 2015 Prague Jun 23 2015 Vienna
2 Jul 1 2015 Rome Jun 29 2015 Prague
2 Jul 30 2015 Vienna Jul 15 2015 Moscow
...
und für jede ID mag ich selbst diese Daten verbinden, so dass Beobachtungen mit anschließenden Departure Date
und Arrival Date
paarweise gruppiert sind - dh ein Abweichen wird mit der vorherigen Ankunft für jede ID gepaart.
Im obigen Beispiel (wo die Beobachtungen der Einfachheit halber sortiert sind) würde die zweite Zeile an die erste, die dritte an die zweite, die fünfte an die vierte und die sechste an die fünfte Zeile angehängt werden Felder ID Arrival Date Arrival City Departure Date Departure City Arrival Date2 Arrival City2 Departure Date2 Departure City2
).
Es kann potenziell mehr als drei Abfahrten für jede ID geben, so dass ein allgemeiner Ansatz erforderlich ist. Bitte beachten Sie auch, dass es in den Daten Löcher geben kann, in denen Arrival City
und Departure City
nicht übereinstimmen - z. Die Arrival City
der 5. Reihe ist nicht die Departure City
der 6. Reihe, aber sie sollte noch zusammengeführt werden. Ein wichtiges Ziel ist es, eine bessere Übersicht über die Anzahl der Löcher in den Daten zu erhalten.
könnten Sie bitte zeigen, was Ihr erwartetes Ergebnis aussehen sollte? –
"Es kann potenziell mehr als drei Abweichungen für jede ID geben, so dass ein allgemeiner Ansatz erforderlich ist" jede bestimmte Abfrage erzeugt Ergebnismengen mit einer festen "Form" - die Anzahl, Namen und Typen der Spalten. Aber es scheint, als ob Sie nach einer Abfrage fragen, die abhängig von den Eingabedaten eine andere Anzahl von Spalten erzeugt (und auch, was passiert, wenn verschiedene IDs unterschiedliche Abfahrtszahlen haben?). Es ist möglicherweise besser, diese Art der Ausgabeverarbeitung auf einer höheren Ebene als SQL auszuführen. –
Was ist die Version von SQL Server? Fügen Sie der Frage statt "Join" das entsprechende Tag hinzu. Bitte zeigen Sie anhand Ihrer Beispieldaten, wie das Endergebnis aussehen soll. –