如何解决大小写表达式中的MIN和MAX
我想根据条件(s.REQUIRED_DATE >= trunc(SYSDATE-1))
获取MIN或Max日期。
下面是我的查询。
它给我错误ORA-00937: not a single-group group function
SELECT
case when s.REQUIRED_DATE >= trunc(SYSDATE-1) then
MIN(required_date)
else
MAX(required_date)
end required_date
FROM anytable s
WHERE s.abc = 'hhj';
我该如何实现?
查询必须为'hhj'返回2020年8月17日,为'bbj'返回2020年8月15日
id abc required_date
1 hhj 14-Aug-2020
2 hhj 17-AUG-2020
3 hhj 19-AUG-2020
3 bbj 15-AUG-2020
4 bbj 12-AUG-2020
如果需要,我也可以采用任何其他方法。 请建议
解决方法
对于特定的abc
,您似乎想要获得:
- 如果昨天的日期过去了
required_date
,则required_date
是昨天的最近日期,或者 - 获取最新的
required_date
,如果他们昨天没有通过日期。
如果是,则此查询可能是您想要的:
select
case when max(required_date)>=trunc(sysdate-1) then
min(case when required_date>=trunc(sysdate-1) then required_date end)
else max(required_date)
end required_date
from anytable s
where s.abc='hhj';
,
在整个case语句上使用Aggregate函数,为此,您必须使用两个case语句。
SELECT
MIN(case when s.ENTRY_DATE >= trunc(SYSDATE-1) then
ENTRY_DATE
end) MIN_required_date,MAX(case when s.ENTRY_DATE < trunc(SYSDATE-1) then
ENTRY_DATE
end) MAX_required_date
FROM DATE_TEST s
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。