Данные из таблицы 2 за месяц, когда их нет, данные из таблицы 1

Это невозможно; Oracle поставляет определенную версию Java с определенной версией СУБД, специально модифицированной для запуска «внутри» СУБД. Он может быть обновлен только Oracle как часть новой версии или выпуск патча СУБД.

См. Например, это обсуждение: https://forums.oracle.com/forums/thread .jspa? ThreadId = 2300779

0
задан halfer 15 March 2019 в 22:49
поделиться

3 ответа

Попробуйте вместо UNION:

select * from table A where Date between to_date('2019-01-01 00:00:00', 'YYYY.MM.DD HH24:MI:SS') and to_date('2019-01-31 23:59:59', 'YYYY.MM.DD HH24:MI:SS')
    union
select * from table B where Date between to_date('2019-01-01 00:00:00', 'YYYY.MM.DD HH24:MI:SS') and to_date('2019-01-31 23:59:59', 'YYYY.MM.DD HH24:MI:SS');
0
ответ дан Pavel Smirnov 15 March 2019 в 22:49
поделиться

Не уверен, как вы извлекаете значения, так как вы не показали фактический запрос, который дает ожидаемый результат.

Этот запрос, кажется, работает нормально, то есть он дает то, что вы хотели изначально.

select  t2.id,t2.dt,coalesce(t1.value,t2.value) as value 
from t2  LEFT JOIN t1 ON
    to_char(t1.dt,'yyyymm') = to_char(t2.dt,'yyyymm') and
    t1.id = t2.id
  ORDER BY id,dt

Если вы добавите DISTINCT, вы получите одну запись на комбинацию id,month, если хотите удалить дубликаты. Вы также можете сделать group by id или все, что хотите, чтобы получить агрегацию

. Обратите внимание, что ниже приводится только если вы хотите предпочесть значение таблицы 1 над таблицей 2, иначе достаточно просто выбрать строки из t2

coalesce(t1.value,t2.value) as value 

Демо

0
ответ дан Kaushik Nayak 15 March 2019 в 22:49
поделиться

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

create view A_B as

выберите идентификатор, значение даты из таблицы A, объединение выберите идентификатор, значение даты из таблицы B;

0
ответ дан F.Madsen 15 March 2019 в 22:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: