我用它来创建每个成本值的总计:
SELECT
ITEM_NO
COST_1,
COST_2,
COST_3,
COST_4,
SUM(COST_1) over (order by loan_no rows unbounded preceding ) COST_1_TOTAL,
SUM(COST_2) over (order by loan_no rows unbounded preceding ) COST_2_TOTAL,
SUM(COST_3) over (order by loan_no rows unbounded preceding ) COST_3_TOTAL,
SUM(COST_4) over (order by loan_no rows unbounded preceding ) COST_4_TOTAL
FROM data
它创造了这个:
我希望它看起来像这样:
这可能吗?我不知道从哪里开始......
一如既往,任何建议将不胜感激。
使用
GROUP BY
和 ROLLUP
:
SELECT ITEM_NO,
SUM(COST_1) AS cost_1,
SUM(COST_2) AS cost_2,
SUM(COST_3) AS cost_3,
SUM(COST_4) AS cost_4
FROM data
GROUP BY ROLLUP(item_no)
对于样本数据:
CREATE TABLE data (item_no, cost_1, cost_2, cost_3, cost_4) AS
SELECT 1057, 8111.73, -8600, 1550, CAST(NULL AS NUMBER(8,2)) FROM DUAL UNION ALL
SELECT 1693, 7856.25, -8600, 1575, NULL FROM DUAL UNION ALL
SELECT 1701, 5206.20, -8600, 2000, NULL FROM DUAL UNION ALL
SELECT 1784, 6002.97, -8600, 1900, NULL FROM DUAL;
哪个输出:
ITEM_NO | COST_1 | COST_2 | COST_3 | COST_4 |
---|---|---|---|---|
1057 | 8111.73 | -8600 | 1550 | 空 |
1693 | 7856.25 | -8600 | 1575 | 空 |
1701 | 5206.2 | -8600 | 2000 | 空 |
1784 | 6002.97 | -8600 | 1900 | 空 |
空 | 27177.15 | -34400 | 7025 | 空 |