【发布时间】:2020-09-25 12:12:39
【问题描述】:
我对数据库和查询非常陌生。 我不确定这是否非常基本。请帮助我找到解决方案。
我有两个表 - 订阅和客户,主键分别为订阅 ID 和客户 ID。 customer_id 是指向客户表 customer_id 列的外键。 以下是表格及其数据的示例:
订阅
subscription_id customer_id subscription_start_date subscription_end_date subscription_status
1001 1 1-JAN-2020 31-DEC-2020 PENDING
1002 2 1-JUN-2020 31-MAY-2021 PENDING
1003 3 4-JUL-2020 3-JUL-2021 ARCHIVED
1004 4 2-APR-2020 1-APR-2021 PENDING
1005 5 3-APR-2020 2-APR-2021 ARCHIVED
1006 6 21-JAN-2020 20-JAN-2021 PENDING
1007 7 22-JAN-2020 21-JAN-2021 PENDING
客户
customer_id membership_type membership_start_date membership_status
1 GOLD 1-JAN-2020 ACTIVE
2 PLATINUM 1-JUN-2020 ACTIVE
3 PLATINUM 5-JUL-2020 PROCESSING
4 GOLD 2-APR-2020 PROCESSING
5 GOLD 3-APR-2020 ACTIVE
6 GOLD 21-JAN-2020 PROCESSING
7 GOLD 22-JAN-2019 EXPIRED
我要查询所有满足以下两个条件的订阅
- subscription_satus 处于待处理状态,membership_type 为 GOLD 或 PLATINUM,membership_status 为 ACTIVE。(1001,1002)
- 仅当客户 members_type 为 PLATINUM 且membership_start_date 介于subscription_start_date 和subscription_end_date 之间且membership_status 为PROCESING(1003) 时才会归档subscription_status
所以我们应该在标准 1 下得到 1001、1002 条记录。在标准 2 下得到 1003 条记录
【问题讨论】:
-
1003 与第二个条件的日期条件不匹配。
-
对不起。修改它。
标签: sql database oracle oracle11g oracle-sqldeveloper