首页 > 解决方案 > 添加相同值的日期以显示为单个日期 PL/SQL

问题描述

我想编写一个 PL/SQL 代码来显示相同​​类型的日期以添加并显示为单个日期(MyDate 列),并且金额列应该加起来

输入表数据示例:

                     MyDate      Amount
                    4/12/2019    1000
                    5/12/2019    2000
                    4/12/2019    3000

输出

               MyDate        Amount
                4/12/2019     4000
                5/12/2019     2000

条件是无法使用聚合函数。请指导我

标签: oracleplsql

解决方案


您不必为此使用 PL/SQL。可以做一个简单的查询。

SELECT MyDate, SUM(Amount)
FROM your_table
GROUP BY MyDate
ORDER BY MyDate ASC

更新:

由于您不能使用聚合函数,请尝试:

DECLARE
    amount NUMBER := 0;
BEGIN

    FOR date_cursor IN (
        SELECT distinct(MyDate) MyDate
        FROM your_table
        ORDER BY date_c ASC
    ) LOOP

        FOR amount_cursor IN (
            SELECT Amount
            FROM your_table
            WHERE MyDate = date_cursor.MyDate
        ) LOOP

            amount := amount + amount_cursor.amount;

        END LOOP;

        dbms_output.put_line('MyDate: ' || date_cursor.MyDate);
        dbms_output.put_line('Amount: ' || amount);

        amount := 0;

    END LOOP;

END;

推荐阅读