在Oracle中如何在具有和的一种条件下组合

在Oracle中如何在具有和的一种条件下组合,oracle,conditional-statements,having,Oracle,Conditional Statements,Having,我想知道我如何将一个条件设置为,例如: select count(s.id) from card c join subject s on c.ean=s.ean join account a on s.id=a.owner_subject where a.status_external=0 and a.status_internal=0

我想知道我如何将一个条件设置为,例如:

select count(s.id) from card c
                  join subject s on c.ean=s.ean
                  join account a on s.id=a.owner_subject
                 where a.status_external=0
                   and a.status_internal=0
                   and s.type=0
having( 
( trunc(max(s.hist_modified_tmsp))<=last_day(add_months(trunc(sysdate,'mm'),-1)) and level=1 )  
or  
( trunc(min(s.hist_modified_tmsp))<=last_day(add_months(trunc(sysdate,'mm'),-1)) and level=2 ) )
我的神谕告诉我,不是一组的表达。有什么想法吗? 我将非常感谢您的帮助, 感谢您

使用了一个类似where的子句,除了在聚合后应用之外,例如SUMMES而不是before,因此您只能在查询中使用一次,如下所示:

having ((sum(col)<=30 and type=4) or (sum(col)>=30 and type=5))

条件01和条件02的表达式在哪里?你在测试它们吗?它们在这里并不重要,我只是写了一些看起来更像真实例子的东西好吧,你怎么知道它们不是你缺少的表达式的问题?它们不是。它们只是另一个条件,没有最后一个条件,代码运行良好,我需要它。我可以把我真正的代码放在这里,但我认为它会更混乱…@tony_andrews嗨,谢谢,听起来合乎逻辑,但我试过了,我的甲骨文说在type=4开始的地方没有一个分组表达式。有什么想法吗?@Yte,更新你的帖子以包含你正在使用的新查询。@mmmmm Pie好的,这可能会更混乱,但可能我低估了你们:你们的查询需要有一个GROUP BY子句,并且需要包含类型。@TonyAndrews嗨,谢谢!它的工作!终于!:但是,为什么我必须有一个GROUPBY子句呢?是因为having条款吗?请容忍我的琐碎问题,我是SQL新手,非常感谢:
group by type, ...