Пусть у меня есть таблица, состоящая из записей, какSQL автообъединение попарно
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
...
и для каждого ID я хочу присоединиться к этим данным о себе, например, что наблюдения с последующим Departure Date
и Arrival Date
сгруппированы попарно - т.е. отхода сопряжен с предыдущим приходом для каждого идентификатора.
В приведенном выше примере (где наблюдения сортируются для удобства), вторая строка будет добавлена к 1-й, 3-й-2-й, 5-й и 4-й и 6-й - 5-й (таким образом производя 4 строки с поля ID Arrival Date Arrival City Departure Date Departure City Arrival Date2 Arrival City2 Departure Date2 Departure City2
).
Для каждого идентификатора может быть более трех отправлений, поэтому необходим общий подход. Также обратите внимание, что могут быть отверстия в данных, где Arrival City
и Departure City
не совпадают - например. Arrival City
5-й строки не является Departure City
6-й строки, но они все равно должны быть объединены. На самом деле главная цель - лучше понять, сколько отверстий в данных.
могли бы вы показать, что ваш ожидаемый результат должен выглядеть? –
«Для каждого идентификатора потенциально может быть более трех отправлений, поэтому необходим общий подход». Любой конкретный запрос создает наборы результатов с фиксированной «формой» - числом, именами и типами столбцов. Но похоже, что вы запрашиваете запрос, который производит различное количество столбцов в зависимости от входных данных (а также, что происходит, когда разные идентификаторы имеют разные номера отправлений?). Лучше сделать такую обработку вывода на более высоком уровне, чем SQL. –
Что такое версия SQL Server? Пожалуйста, добавьте соответствующий тег в вопрос вместо 'join'. Кроме того, на основе ваших данных примера, пожалуйста, покажите, как должен выглядеть конечный результат. –