Загрузка данных с диапазоном дат

RavenSseu
Дата: 03.12.2009 12:33:56
Имеется таблица Params с полями BeginDate, EndDate и BusinessKey, Param. BeginDate и EndDate даты начала и окончания действия некоторого параметра Param, BusinessKey набор столбцов уникально идентифицирующих строку данных. Ежедневно приходят и загружаются во временную таблицу ParamsTemp данные за день. (BeginDate=EndDate). Требуется из этой временной таблицы обновлять данные в Params, добавляя новые записи и обновляя EndDate и BeginDate в уже имеющихся. Проблема в том, что данные могут добавляться задним числом, т.е. за прошлые дни, которые уже были когда-то загружены. Если кто-нибудь сталкивался с такой задачей, напишите пожалуйста, как решили.
andrey_anonymous
Дата: 03.12.2009 12:50:10
Покажите что не получается.
Логика вроде как тривиальная - ищем запись, в которую попадает новое значение, EndDate найденной записи меняем местами с BeginDate добавляемой записи, вставляем запись.
Особые ситуации:
- попадание строго в левую границу имеющейся записи. реакция: update новым значением
- отсутствие в базе записи для нового параметра. реакция: только вставка, EndDate=infinity

Реализация - по вкусу, можно, к примеру, на merge прикрутить или сделать pl/sql процедурой.