oracle - 添加相同值的日期以显示为单个日期 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
条件是无法使用聚合函数。请指导我
解决方案
您不必为此使用 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;
推荐阅读
- node.js - Node.js - 检测重命名文件/目录事件
- javascript - 使用 HTML/CSS/JavaScript 隐藏表头而不使用 seach 输入
- asp.net - SSRS 未在报告中显示数据,因为我的 sp 返回数据
- php - Typo3 8.7.x / Extbase:获取内容对象的选定类别
- jhipster - 在 jhipster 中完成与 ELK 堆栈的微服务集成
- android - 带有图像和点击响应的 Nativescript-vue 按钮(点击事件)
- c++ - docker build 失败:无法设置环境变量
- c++ - C++17 排序:赋值左侧的后增量
- linux - 启用 multilib 时 populate_sdk 失败
- firebase - Firebase查询离子中的倍数等于