[英]inner join two tables on two fields - matching on month and year for the date field oracle sql
我有兩個表,其中日期字段填充有每月數據。 日期字段之一使用月初,一個使用月末。 我正在使用具有兩個字段的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')
使用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')
謝謝大家....這工作:
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')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.