внутреннее объединение двух таблиц в двух полях - совпадение по месяцу и году для поля даты oracle sql - PullRequest
0 голосов
/ 05 декабря 2018

У меня есть две таблицы, в которых поле даты заполнено ежемесячными данными.В одном из полей даты используется начало месяца, а в другом - конец месяца.Я использую INNER JOIN, используя два поля, но я не могу заставить работать форматирование дат:

SELECT * FROM crd_own.ml_corp_index_data_monthly  tb1
INNER JOIN pm_own.esg_credit_factors tb2 
ON tb1.TICKER = tb2.ISSUER_TICKER
AND to_date('tbl.DATADATE', 'yyyy/mm') =to_date('tb2.AS_OF_DATE', 'yyyy/mm')

Ответы [ 2 ]

0 голосов
/ 05 декабря 2018

Спасибо всем .... это работает:

SELECT * FROM crd_own.ml_corp_index_data_monthly  tb1
INNER JOIN pm_own.esg_credit_factors tb2 
ON tb1.TICKER = tb2.ISSUER_TICKER
AND trunc(DATADATE, 'month') = trunc(tb2.AS_OF_DATE, 'month')
0 голосов
/ 05 декабря 2018

С Oracle вы можете trunc обе даты в месяц, а затем сравнить их.Обратите внимание, что, как прокомментировал @xQbert, вы не хотите заключать даты в кавычки, потому что это мешает Oracle правильно интерпретировать даты.

SELECT * 
FROM 
    crd_own.ml_corp_index_data_monthly  tb1
    INNER JOIN pm_own.esg_credit_factors tb2 
        ON tb1.TICKER = tb2.ISSUER_TICKER
        AND trunc(tb1.DATADATE, 'month') = trunc(tb2.AS_OF_DATE, 'month')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...