Oracle 查询以查找小于金额的行
我有一个账户,其中利息借记对应于以下每个账户Oracle 查询以查找小于金额的行,oracle,cursor,sum,Oracle,Cursor,Sum,我有一个账户,其中利息借记对应于以下每个账户 amount Date 2 01-01-2012 5 02-01-2012 2 05-01-2012 1 07-01-2012 如果帐户中的总贷方为8。我需要一个查询,以找到信贷金额可以调整的利息日期 此处查询的输出应为02-01-20122+5
amount Date
2 01-01-2012
5 02-01-2012
2 05-01-2012
1 07-01-2012
如果帐户中的总贷方为8。我需要一个查询,以找到信贷金额可以调整的利息日期
此处查询的输出应为02-01-20122+5<8。我知道这可以通过游标来处理。但是有没有办法在ORACLE中将其作为单个查询写入。不知道表的结构,这里有一个猜测:
SELECT date from your_table
GROUP BY AMOUNT
HAVING SUM(AMOUNT) < 8
注:这小于8。根据需要更改条件。不知道表的结构,这里有一个猜测:
SELECT date from your_table
GROUP BY AMOUNT
HAVING SUM(AMOUNT) < 8
SELECT pdate
FROM (
SELECT t.*,
LAG(date) OVER (ORDER BY date) AS pdate
8 - SUM(amount) OVER (ORDER BY date ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS diff
FROM mytable t
ORDER BY
date
)
WHERE diff < 0
AND rownum = 1
注:这小于8。根据需要更改条件。不执行2+5不执行2+5按金额分组时不能选择日期。按金额分组没有任何意义,我认为按金额分组时无法选择日期。按金额分组没有任何意义,我认为如果可能是负数,则MAXcum_sum和MAXdate可能由不同的行持有。在我的情况下,不会,因为这是应用于帐户金额的利息永远不会变为负数。此解决方案也会起作用。谢谢。如果可能是负数,MAXcum_sum和MAXdate可能由不同的行持有。在我的情况下不会,因为这是应用于帐户金额的利息永远不会变为负数。这个解决方案也会起作用。谢谢
SELECT pdate
FROM (
SELECT t.*,
LAG(date) OVER (ORDER BY date) AS pdate
8 - SUM(amount) OVER (ORDER BY date ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS diff
FROM mytable t
ORDER BY
date
)
WHERE diff < 0
AND rownum = 1