首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >case表达式中的MIN和MAX

case表达式中的MIN和MAX
EN

Stack Overflow用户
提问于 2020-08-17 06:34:59
回答 2查看 1K关注 0票数 0

我想得到基于条件(s.REQUIRED_DATE >= trunc(SYSDATE-1))的最小或最大日期。

下面是我的问题。

它给了我错误的ORA-00937: not a single-group group function

代码语言:javascript
运行
复制
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”的17-8月-2020年和“bbj”的“15-8月-2020年”。

代码语言:javascript
运行
复制
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 

如果需要的话,我也可以采取任何其他办法。请建议

EN

Stack Overflow用户

回答已采纳

发布于 2020-08-17 07:51:57

似乎,对于您想要得到的特定abc

如果昨天的日期过去了,

  • required_date最近并超过了昨天的日期,或者如果昨天的日期不超过required_date
  • 就会得到最新的required_date

如果是这样的话,这个查询可能就是您想要的:

代码语言:javascript
运行
复制
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';
票数 1
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63445697

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档