Добрый день.
Есть таблица appointments в БД PostgreSQL, хранящая данные о посещениях клиентов, примерно следующей структуры:
appointment_id - идентификатор посещения
time_start - дата-время посещения
move_id
move_to_id
status - статус посещения, принимающий (значимые в данном контексте) возможные значения -
1 - записан (клиент собирается прийти), 4 - завершён (клиент пришёл), 5 - отменён (клиент не пришёл))
Посещение может быть
перенесено на другую дату. Перенос посещения в БД отражается следующим образом:
- создаётся новая запись посещения с заданной датой, в поле move_id новой записи заносится идентификатор старой записи
- в поле status старой записи посещения заносится значение 5 (отменён), а в поле move_to_id - идентификатор новой записи посещения
Есть задача получить из таблицы все перенесённые посещения с их историей за заданный интервал дат.
И на этом моменте я обнаруживаю, что не могу ничего придумать :)
Вероятно, хотелось бы получить из таблицы выборку примерно следующего вида:
origin_appointment_id
time_start
status
move_to_id
где origin_appointment_id - идентификатор первого посещения каждой цепочки переносов (от первого посещения, входящего в заданный интервал до последнего посещения, входящего в заданный интервал).
Буду благодарен, если кто-нибудь поделится ссылкой с подходящими примерами (или скажет, что это в данной структуре таблицы нереализуемо средствами sql, буду ковырять скриптом).