Mysql Получение результата запроса со сдвигом значений поля относительной значений других полей

miprosh

Новичок
Помогите с SQL-запросом.
из таблицы
ID KAT D
1 21 01.08.1999
2 2 01.09.2007
3 1 01.03.2011
4 5 01.05.2013

В результате SQL-запроса необходимо получить ответ
ID KAT D
1 21 01.09.2007
2 2 01.03.2011
3 1 01.05.2013
4 5
 

С.

Продвинутый новичок
SQL -- это язык запросов к реляционной базе данных, чтобы извлечь данные, которые там есть. Нельзя с извлекать реляции (данные), которых там нет, или они куда-то сдвинуты.

(1) Получи данные и (2) сдвигай их, как тебе удобно. Потом (3) не забудь сохранить сдвиги, иначе в чем их смысл?
 

miprosh

Новичок
Получить данные и сдвинуть - это понятно. Интересует вопрос априори возможен ли один SQL-запрос для получения такого результата.
 

Фанат

oncle terrible
Команда форума
Интересует вопрос, кому и зачем понадобилась что-то двигать
 

keltanas

marty cats
Нельзя с извлекать реляции (данные)
Похоже, я не понимаю, при чем здесь реляции?

miprosh, Ну вот предположим, есть у тебя в базе под номером 1 Иванов Иван Иванович.
Как и что должно сдвинуться, чтобы он стал Иванов Иван Петрович?
 
Последнее редактирование:

miprosh

Новичок
Нет, есть пользователь, у него есть какая-либо категория, которая изменяется. Изменения фиксируются датами. Соответственно дата смены - это начало новой категории и конец старой. Учет этих изменений ведется в таблице, где каждой категории соответствует дата начала ее действия. Мне же надо, чтобы в результатом запроса была выборка по пользователю с его категориями, но только уже с датами окончания действия соответствующей категории. В начале темы я привел пример исходной таблицы и что должно получиться. Я понимаю, что можно сделать и дополнительное поле с конечной датой категории, или можно обработать дополнительным кодом программы. Меня интересует, возможно ли это сделать одним SQL-запросом?
 

fixxxer

К.О.
Партнер клуба
Можно через self-join или подзапросы. Но не нужно.
 
Сверху