2017-03-07 70 views
2

我有一个表是这样的:查询的计划日期比较

account number(repeat) | schedule_due_date 
---------------------- | ----------------- 
111     | '01-FEB-2017' 
111     | '01-MAR-2017' 
111     | '01-APR-2017' 

我想要一个SQL查询,这将给账号,如果schedule_due_date是第一个或最后。

如果sysdate01-FEB-2017那么它应该给帐号或sysdate01-APR-2017那么它应该给帐号。

但是,如果sysdate01-MAR-2017那么它不应该给帐号。 其实它应该检查所有帐户的最短日期和最大日期为sysdate并给出结果。

+0

这似乎完全明了。你在这方面发现了些什么? – APC

回答

3

试试下面的一个,(用一个GROUP BYHAVING就可以解决这个问题)。

SELECT account_number 
FROM table1 
GROUP BY account_number 
HAVING MAX(schedule_due_date) = sysdate 
    OR MIN(schedule_due_date) = sysdate 
+0

可能要截断SYSDATE以除去时间元素。 – APC

1

试试这个

SELECT account_number 
FROM table1 
where schedule_due_date = (select max(schedule_due_date) from table1) 
or schedule_due_date = (select min(schedule_due_date) from table1)