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

  • Автор темы Автор темы miprosh
  • Дата начала Дата начала

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) не забудь сохранить сдвиги, иначе в чем их смысл?
 
Получить данные и сдвинуть - это понятно. Интересует вопрос априори возможен ли один SQL-запрос для получения такого результата.
 
Интересует вопрос, кому и зачем понадобилась что-то двигать
 
Нельзя с извлекать реляции (данные)
Похоже, я не понимаю, при чем здесь реляции?

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