Tôi có dữ liệu như thế nàytính toán cân bằng chạy trong truy vấn oracle
id cp_id amount_a amount_b
CCP1 TTP01 10.000.000 2.000.000
CCP1 TTP02 10.000.000 3.000.000
CCP1 TTP03 10.000.000 1.000.000
CCP1 TTP04 10.000.000 500.000
CCP2 TTP05 5.000.000 1.000.000
CCP2 TTP06 5.000.000 2.000.000
CCP3 TTP07 1.000.000 500.000
Tôi muốn các dữ liệu kết quả thêm một cột của running_balance như thế này dưới đây
id amount_a amount_b running_balance
CCP1 10.000.000 2.000.000 8.000.000
CCP1 10.000.000 3.000.000 5.000.000
CCP1 10.000.000 1.000.000 4.000.000
CCP1 10.000.000 500.000 3.500.000
CCP2 5.000.000 1.000.000 4.000.000
CCP2 5.000.000 2.000.000 2.000.000
CCP3 1.000.000 500.000 500.000
tôi đã thực hiện các truy vấn như
này/* Formatted on 1/26/2017 2:50:06 PM (QP5 v5.115.810.9015) */
SELECT B.NO_KLAIM AS id,
a.amount AS amount_a,
B.AMOUNT AS amount_b,
SUM (A.AMOUNT) OVER (ORDER BY B.AMOUNT ROWS UNBOUNDED PRECEDING)
AS running_balance
FROM TRX_TITIPAN A
JOIN
TRX_KLAIM_TITIPAN B
ON A.NO_RESI_TITIPAN = B.NO_RESI_TITIPAN
GROUP BY B.NO_KLAIM, B.AMOUNT, a.amount
nhưng kết quả không được tính toán số tiền, chỉ cần chạy tổng cho số tiền_b.
** Đã cập nhật: Tôi đã cập nhật truy vấn của mình.
/* Formatted on 1/26/2017 2:50:06 PM (QP5 v5.115.810.9015) */
SELECT B.NO_KLAIM AS id,
a.amount AS amount_a,
B.AMOUNT AS amount_b,
NVL (TITIP.AMOUNT, 0)
- SUM (NVL (KLAIM.AMOUNT, 0))
OVER (PARTITION BY TITIP.AMOUNT
ORDER BY TITIP.NO_RESI_TITIPAN,
KLAIM.NO_KLAIM,
TITIP.AMOUNT,
KLAIM.AMOUNT asc
ROWS UNBOUNDED PRECEDING) as running_balance
FROM TRX_TITIPAN A
JOIN
TRX_KLAIM_TITIPAN B
ON A.NO_RESI_TITIPAN = B.NO_RESI_TITIPAN
GROUP BY B.NO_KLAIM, B.AMOUNT, a.amount
sự cân bằng chạy được làm việc ngay khi sử dụng WHERE id = .... điều kiện, với id cụ thể. Trong khi tôi xóa WHERE id = .... điều kiện nó sẽ xảy ra sai.
Làm cách nào để xác định được run_balance? – Massimo
Đối với yêu cầu bổ sung của bạn, bạn cần phải bao gồm id trong phân vùng by' khoản. 'Phân vùng bằng' trong một hàm phân tích hoạt động giống như cách' Nhóm bởi' thực hiện trong một truy vấn tổng hợp - nó xác định các nhóm hàng mà bạn muốn hàm phân tích hoạt động. – Boneist