Алгоритм проверки качества истории
Качество истории в исторической таблице можно проверить простым алгоритмом, сумма длины периодов действия равна общей длине истории. Реализация алгоритма на Oracle: WITH T_CITY AS (SELECT 1 ID_C, 'Москва' CITY, DATE '1900-01-01' BEG_DT, DATE '1990-01-01' END_DT FROM DUAL UNION SELECT 1 ID_C, 'Омск' CITY, DATE '1990-01-01' BEG_DT, DATE '2999-01-01' END_DT FROM DUAL UNION SELECT 2 ID_C, 'Томск' CITY, DATE '1900-01-01' BEG_DT, DATE '2999-01-01' END_DT FROM DUAL ) SELECT ID_C FROM T_CITY GROUP BY ID_C --PK HAVING SUM(ABS((END_DT - BEG_DT))) <> MAX(END_DT) - MIN(BEG_DT);