【问题标题】:Convert a running total oracle sql query to a final total将运行总计 oracle sql 查询转换为最终总计
【发布时间】:2020-01-14 22:51:18
【问题描述】:

我有以下有效的查询,可以得到我需要的总数。

但是,我需要对其进行更改,以便它只显示最终总计,而不是导致总计的每笔交易。我尝试使用最大事务数逐个汇总,逐个分组转换它,但我的总数从不匹配,而且我不完全理解 select 语句的 SUM 解码部分。我相信我需要将其中的一部分移到 where 语句来做我需要的事情。

这里是查询:

SELECT
    SUM(DECODE(tbbdetc_type_ind,'C', (-1) * a.tbraccd_amount,'P',a.tbraccd_amount) ) OVER(
        PARTITION BY a.tbraccd_pidm
        ORDER BY
            a.tbraccd_tran_number
    ) "Running total",
    tbbdetc.tbbdetc_detail_code,
    tbbdetc.tbbdetc_type_ind,
    a.*
FROM
    tbraccd a
    JOIN taismgr.tbbdetc ON a.tbraccd_detail_code = tbbdetc.tbbdetc_detail_code
WHERE
    a.tbraccd_pidm = '101010101'
order by tbraccd_tran_number desc; 

任何有关如何转换它的帮助,以便我得到与最终运行总数相匹配的总数,我们将不胜感激。我的最终目标是获取 pidms(IDS) 列表的总计,每个 pidm 连续一个总计。

【问题讨论】:

    标签: sql oracle rollup


    【解决方案1】:

    您似乎想删除order by。我还将帮助转换为标准 SQL 语法:

    sum(case when tbbdetc_type_ind = 'C' then - a.tbraccd_amount
             when tbbdetc_type_ind = 'P' then a.tbraccd_amount
        end) over (partition by a.tbraccd_pidm) as total_total
    

    【讨论】:

    • 这将进入select语句以替换select语句中的当前sum(decode)?
    • 谢谢,我将它添加到了 select 语句中,它起作用了。我如何进行分组,以便它不会显示最终总数 150(每笔交易一次)?我知道我可以做一个独特的,但我知道 group by 更有效。
    • @moore1emu 。 . .如果您只想要 总数,那么只需使用select sum(case . . . ) from . . .。如果这不能完全满足您的要求,请提出一个新问题,提供示例数据、所需结果和清晰的解释。
    【解决方案2】:

    我最终得到了我需要的东西:

    把它放在 Select 语句中

    SUM(CASE 
        WHEN tbbdetc_type_ind = 'C' THEN -A.tbraccd_amount 
        WHEN tbbdetc_type_ind = 'P' THEN A.tbraccd_amount 
        END)  TOTAL_TOTAL
    

    这在Group by之后:

    HAVING SUM(CASE 
               WHEN tbbdetc_type_ind = 'C' THEN -A.tbraccd_amount 
               WHEN tbbdetc_type_ind = 'P' THEN A.tbraccd_amount 
               END) > -200.00
    

    这最终给了我每个人一个结果,而不是显示每笔交易的总数

    【讨论】:

      猜你喜欢
      • 2022-11-25
      • 1970-01-01
      • 1970-01-01
      • 2014-04-05
      • 1970-01-01
      • 2015-12-21
      • 1970-01-01
      • 2021-10-23
      • 2010-10-23
      相关资源
      最近更新 更多