Załóżmy, że mam tabela składająca się z wpisami jakSQL własny dołączyć parami
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
...
i dla każdego ID chcę dołączyć dane o sobie tak, że obserwacje z kolejnym Departure Date
i Arrival Date
są pogrupowane parami - czyli odejście jest sparowany z poprzednim przyjazdem dla każdego identyfikatora.
W powyższym przykładzie (gdzie obserwacje są posortowane dla wygody), drugi wiersz zostanie dołączony do pierwszego, trzeciego do drugiego, od piątego do czwartego i od szóstego do piątego (w ten sposób tworząc 4 wiersze z pola ID Arrival Date Arrival City Departure Date Departure City Arrival Date2 Arrival City2 Departure Date2 Departure City2
).
Dla każdego identyfikatora mogą występować więcej niż trzy odstępstwa, dlatego konieczne jest ogólne podejście. Należy również pamiętać, że w danych mogą być dziury, w których Arrival City
i Departure City
nie pasuje - np. Arrival City
piątego rzędu nie jest numerem Departure City
szóstego wiersza, ale powinny one zostać scalone. W rzeczywistości głównym celem jest uzyskanie lepszego obrazu liczby otworów w danych.
mógłbyś pokazać co się oczekiwany wynik powinien wyglądać? –
"Dla każdego identyfikatora może istnieć więcej niż trzy odstępstwa, więc wymagane jest ogólne podejście" każde zapytanie generuje zestawy wyników o ustalonym "kształcie" - liczbę, nazwy i typy kolumn. Ale wygląda na to, że pytasz o zapytanie, które tworzy inną liczbę kolumn w zależności od danych wejściowych (a także, co się dzieje, gdy różne identyfikatory mają różną liczbę odejść?). Lepszym rozwiązaniem może być przetwarzanie danych wyjściowych na wyższym poziomie niż SQL. –
Jaka jest wersja programu SQL Server? Dodaj odpowiedni tag do pytania zamiast "join". Ponadto, na podstawie Twoich przykładowych danych, pokaż, jak powinien wyglądać końcowy wynik. –