Не могли бы вы помочь мне создать представление на основе таблиц истории?Oracle SQL Request - SELECT в SELECT с MAX значением
Контекст: Когда обновление выполнено (до даты t), создается новая строка (новый идентификатор HIST) в соответствующей таблице.
Здесь структура моей базе данных:
ID HIST в обеих таблицах различны и не связаны между собой. Контракт только ID связан.
Я бы хотел, чтобы представление извлекало все данные (благодаря ID_HIST и созданию даты) из обеих таблиц, отсортированных по дате. Если обновление касается таблицы модулей то все последние значения по контракту, соответствующее последнему обновлению должно быть restrieved) как:
Я пытаюсь сделать это, но у меня есть трудности в целях осуществления часть для получения обновлений модулей, присоединенных к последним обновлениям контрактов (последняя строка контракта, дата контракта < дата модуля).
Здесь запрос используется:
--- Results List from the contract list
SELECT
CONTRACT_HIST_ID HIST_ID,
CONTRACT_HIST_DT_CRE,
CONTRACT_ID,
CONTRACT_TITLE,
CONTRACT_DESC,
CONTRACT_BUDGET
from CONTRACT_HIST CT
UNION
--- Results List from the modules list
SELECT
DISTINCT(MD.MOD_HIST_ID) HIST_ID,
MD.MODULE_HIST_DT_CRE,
CT.CONTRACT_HIST_ID,
CT.CONTRACT_TITLE,
CT.CONTRACT_DESC,
CT.CONTRACT_BUDGET
FROM MODULE_HIST MD
JOIN
(SELECT CT.CONTRACT_HIST_ID,
CT.CONTRACT_HIST_ID,
CT.CONTRACT_TITLE,
CT.CONTRACT_DESC,
CT.CONTRACT_BUDGET
FROM CONTRACT_HIST CT
WHERE CT.CONTRACT_HIST_ID in
(SELECT MAX(CONT.CONTRACT_HIST_ID)
FROM CONTRACT_HIST CONT
JOIN MODULE_HIST MD
ON CONT.CONTRACT_HIST_ID=MD.MOD_HIST_CONTRACT_ID
AND CONT.CONTRACT_HIST_DT_CRE < MD.MODULE_HIST_DT_CRE
)
)CT
ON CT.CONTRACT_ID=MD.MOD_HIST_CONTRACT_ID
это не работает так. Вы должны попытаться сделать это самостоятельно и задать ** конкретный ** вопрос. – smnbbrv
Привет, я попытался, но, как объяснено, результаты по данным контракта для обновления модуля не были правильно восстановлены (последняя строка все еще возвращается, а не последнее обновление). Здесь, по моему запросу: – coeurdange57
, вы не можете сделать выделение по одному значению ... – smnbbrv