我正试图编写Oracle SQL,但却被它束缚住了.我没什么可展示的.
我有一个名为Start_Period的表
id | start_date | end_date |
---|---|---|
1 | 01/01/2022 | 31/03/2022 |
2 | 01/04/2022 | 30/06/2022 |
3 | 01/07/2022 | 30/09/2022 |
4 | 01/10/2022 | 31/12/2022 |
我还有一个名为APPLICATION_FORM的表.APPLICATION_FORM表包含名为"CS_START_DATE"的日期字段和名为SP_ID的字段(此值为START_PERIOD.ID).
APPLICATION_FORM.SP_ID是根据APPLICATION_FORM.CS_START_DATE的值分配的,该值派生自表START_PERIOD,即APPLICATION_FORM.CS_START_DATE 01/02/2022介于01/01/2022和31/03/2022之间,因此APPLICATION_FORM.SP_ID为1.
遗憾的是,SP_ID和CS_START_DATE关系已更改,现在不正确.
我想使用APPLICATION_FORM.CS_START_DATE并将其与表START_PERIOD(其中它位于START_DATE和END_DATE之间)中的每个日期范围进行比较,并从表START_PERIOD返回正确的ID.然后,我将使用此ID将其与APPLICATION_FORM.SP_ID进行比较,以查看是否存在不匹配.理论上,APPLICATION_FORM.CS_START_DATE总是正确的,但APPLICATION_FORM.SP_ID可能不正确.