如何解决Oracle:根据输入列表选择一年中的一周
我有两个看起来像的桌子:
Table A:
ORG_DATE
03/04/2018
02/10/2019
17/12/2018
Table B:
Start_date End_Date Week_of_Yr
01/04/2018 08/04/2018 2018041
01/10/2019 08/10/2019 2019101
14/12/2018 21/12/2018 2018123
目标是创建一个如下表:
ORG_DATE Week_of_Yr
03/04/2018 2018041
02/10/2019 2019101
17/12/2018 2018123
当表A中的字段ORG_DATE介于表B的开始日期和结束日期之间时,只需分配一年中的正确星期。
到目前为止,我尝试了以下操作,因为在表之间没有用于进行可能的联接的字段:
SELECT
Week_of_Yr
FROM TABLE B
WHERE TO_DATE((SELECT
TO_CHAR(A11.ORG_DATE,'DD/MM/YYYY') ORG_DATE
FROM TABLE_A A11
GROUP BY A11.ORG_DATE),'DD/MM/YYYY') BETWEEN Start_date AND End_Date;
但是,查询不接受列表作为输入。有什么想法吗?
谢谢
解决方法
只需加入他们,检查org_date
子句中的start_date
是否在end_date
和ON
之间。
SELECT a.org_date,b.week_of_yr
FROM a
LEFT JOIN b
ON b.start_date <= a.org_date
AND b.end_date > a.org_date;
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。