|
Модераторы: skyboy |
|
Zzz |
|
|||
Опытный Профиль Группа: Участник Сообщений: 306 Регистрация: 21.2.2003 Где: Мурманск Репутация: нет Всего: 5 |
Добрый день, уважаемые форумчане!
Помогите составить запрос. Есть таблица Table1 (пример) Номер Фамилия Имя Отчество Дата 1 Иванов Иван Иванович 01.01.2000 1 Иванов Иван Иванович 02.01.2000 1 Акимов Иван Иванович 04.01.2000 2 Петров Петр Петрович 04.01.2000 2 Петров Петр Петрович 07.01.2000 3 Сидоров Сидор Сидорович 08.01.2000 В итоге нужно получить таблицу вида: Номер Фамилия Имя Отчество Начало Конец 1 Иванов Иван Иванович 01.01.2020 03.01.2000 1 Акимов Иван Иванович 04.01.2020 - 2 Петров Петр Петрович 04.01.2020 - 3 Сидоров Сидор Сидорович 08.01.2020 - Объяснение: Поля Фамилия Имя Отчество могут меняться при одинаковом поле Номер. В итоговую таблицу в поле "Начало" должна попадать минимальная дата, в поле "Конец" - взять дату из строки изменения поля и вычесть 1 день. Если изменения полей не было - проставить null. Набросок запроса:
Понимаю, что скорее всего нужно использовать lead(), но сообразить не могу. Синтаксис Oracle. Это сообщение отредактировал(а) Zzz - 29.10.2020, 15:41 -------------------- Бесполезной громоздкой надстройкой является Windows от Майкрософт. Она занимает 1Мб памяти диска и рассчитана на использование устройства типа мышь. "ЭВМ в инженерной практике" М. 1989г. |
|||
|
||||
Akina |
|
|||
Советчик Профиль Группа: Модератор Сообщений: 20570 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 45 Всего: 453 |
Вот как это выглядит в MySQL:
fiddle В Оракле будет всё то же самое, возможно, кроме "минус 1 день". Ну и не забыть квотирование кириллических имён полей и алиасов. Исходные данные я немного расширил для проверки возможных вариаций. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Составление SQL-запросов | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |