sql - 如何为日期期间编写一个 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 月份需要检查每天的余额)
解决方案
如果我正确地跟随你,你可以使用group by
and 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
。
推荐阅读
- html - Angular - Primeng 的 confirmDialog 显示在 ng-bootstrap 的模态后面
- tfs - TFS 2018 更新 2 升级:报告服务
- ios - 您可以在企业应用程序上进行实时部署吗?
- r - 使用 sf 将点捕捉到线段上的最近点
- haskell - 使用同名函数继承类型类
- r - 有没有办法在闪亮链接中打开用户的小插图?
- javascript - 从 iOS 9.3.5 到最新 iOS 的 HTML 差异
- vba - 提高宏执行时间的方法
- javascript - 使用 $sum 和 $cond 获取 $sum 的值,而不是 mongo 中的实例总和
- vue.js - Vuetify 离线文档