[英]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.