【发布时间】:2019-01-14 16:13:25
【问题描述】:
我有一个包含以下列的表格:
FILE_NAME VARCHAR2(30);
STATUS VARCHAR2(2);
DEPT_ID NUMBER;
DEPT_SUB_ID NUMBER;
CREATE_DATE DATE;
样本数据:
FILE_NAME STATUS DEPT_ID DEPT_SUB_ID CREATE_DATE
--------- ------- -------- ----------- ----------
TEST_20180806222127 C 1 10 07-AUG-18 01.04.47.821795000 AM
TEST_20180806221940 C 1 10 07-AUG-18 04.12.20.957400000 AM
TEST_20180806221733 C 1 10 07-AUG-18 03.35.27.809494000 AM
TEST_20180805202020 C 1 20 06-AUG-18 02.24.47.821795000 AM
TEST_20180805201640 C 1 20 06-AUG-18 00.42.20.957400000 AM
TEST_20180805201530 C 1 20 06-AUG-18 03.55.27.809494000 AM
FILE_NAME 包括:<TYPE>_<DATETIME>
我想为每个DEPT_ID、DEPT_SUB_ID 编写一个查询,以确定哪些带有STATUS = 'C' 的文件是根据FILE_NAME 和CREATE_DATE 字段上的<DATETIME> 乱序创建的。在此示例中,对于DEPT_SUB_ID = 10,文件TEST_20180806222127 是在基于文件名上的DATE_TIME 的其他2 之前创建的,因此我只需要在DEPT_SUB_ID = 10 的结果中返回此文件名。对于DEPT_SUB_ID = 20,结果应包含TEST_20180805201640 和TEST_20180805202020,因为两者都是在TEST_20180805201530 之前创建的,这被认为是无序的。
查询的预期结果将输出在运行顺序之前创建的所有文件名。
【问题讨论】:
标签: sql oracle select oracle12c