Добавление недостающих записей в таблицу Oracle между указанными датами - PullRequest
0 голосов
/ 13 июля 2020

У меня есть таблица, как показано ниже:

enter image description here

But what I want is below output:

введите описание изображения здесь

Для каждого имени запись должна присутствовать в каждый день, начиная с минимальной даты до максимальной. Дата. Если запись отсутствует в исходной таблице, тогда ее значение должно быть обновлено как 0.

Я не могу понять запрос для этого. Пожалуйста. Может ли кто-нибудь предложить мне написать для этого запрос.

Заранее спасибо ..!

1 Ответ

3 голосов
/ 13 июля 2020

Если у вас есть все даты в таблице, вы можете использовать данные из исходных таблиц. Используйте cross join для генерации строк, а затем left join, чтобы ввести значения:

select n.name, d.date, coalesce(t.value, 0) as value
from (select distinct name from t) n cross join
     (select distinct date from t) d left join
     t
     on t.name = n.name and t.date = d.date;

Если некоторые даты полностью отсутствуют в таблице, вам понадобится календарная таблица или какой-то CTE для генерировать все даты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...