You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在PL/SQL中如何查询表最后一条记录并在游标中使用其bill_date字段

解决方案

你可以采用以下两种写法实现需求,此前rownum不生效大概率是未嵌套子查询先排序再取行,max方法不生效大概率是语法拼接错误:

方案1:直接取最大账单日期(最简洁)

直接通过MAX()聚合函数获取bill_acct_billcycle表的最大bill_date值,对应游标修正代码如下:

CURSOR c1 IS
SELECT DISTINCT intl_prod_id
      FROM apld_bill_rt abr,
           acct_bill ab,
           bill_acct_billcycle bab
      WHERE abr.CHRG_TP = 'INSTALLMENT'
          AND abr.TAX_CATG_ID = 'NOTAX'
          AND abr.acct_bill_id = ab.acct_bill_id
          AND ab.bill_date = bab.bill_date
          AND bab.bill_date = (SELECT MAX(bill_date) FROM bill_acct_billcycle);

方案2:按排序规则取最后一条记录的日期

如果你的“最后一条记录”不是按bill_date倒序取,而是按主键、创建时间等其他字段排序,可以用嵌套子查询+rownum的正确写法:

CURSOR c1 IS
SELECT DISTINCT intl_prod_id
      FROM apld_bill_rt abr,
           acct_bill ab,
           bill_acct_billcycle bab
      WHERE abr.CHRG_TP = 'INSTALLMENT'
          AND abr.TAX_CATG_ID = 'NOTAX'
          AND abr.acct_bill_id = ab.acct_bill_id
          AND ab.bill_date = bab.bill_date
          AND bab.bill_date = (
              SELECT bill_date 
              FROM (
                  SELECT bill_date 
                  FROM bill_acct_billcycle 
                  -- 此处替换为你判断"最后一条"的排序字段,比如主键ID倒序、创建时间倒序等
                  ORDER BY bill_date DESC 
              ) t
              WHERE ROWNUM = 1
          );

参考截图

bill_account单条记录截图

内容的提问来源于stack exchange,提问作者vitaminJava

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 07:36:03