首页 > 解决方案 > 如何为日期期间编写一个 oracle sql 以获得所有天的余额应该高于零?

问题描述

我无法建立逻辑来获取期间余额的不同帐户号应高于零

Acctno   date         balance
123      01-Aug-20     1000
123      02-Aug-20      500
...      ...            ...
456      01-Aug-20      45000
456      02-Aug-20      (1000)

如果我们认为 123 账户在此期间有贷方余额(余额 >0),而 456 账户一天账户是借方余额(余额小于零),我该如何构建 sql?我对上述问题的回答是:123(8 月份需要检查每天的余额)

标签: sqloracle

解决方案


如果我正确地跟随你,你可以使用group byand having

select acctno
from mytable
where acctdate > date '2020-08-01' and acctdate < date '2020-09-01'
group by acctno
having min(balance) >= 0

该查询过滤了 8 月份的表,并带来了余额从未低于0.

注意:date是一个语言关键字(即数据类型的名称),因此对于列名来说是一个糟糕的选择。我在查询中将其重命名为acctdate


推荐阅读