Я пытаюсь вывести значения приращения для каждой строки в наборе данных. По какой-то причине каждая строка, кроме первой, печатает числовое значение.
DECLARE CURSOR active_invoices_curs IS
SELECT vendor_id, invoice_date, sum(invoice_total) as sum_invoice
FROM active_invoices
GROUP BY vendor_id, invoice_date
ORDER BY vendor_id ASC;
last_vendor_id active_invoices.vendor_id%TYPE;
last_invoice_total_sum active_invoices.invoice_total%TYPE;
invoice_row active_invoices_curs%ROWTYPE;
invoice_increment number;
BEGIN
FOR invoice_row in active_invoices_curs LOOP
IF invoice_row.vendor_id != last_vendor_id OR invoice_row.vendor_id IS NULL THEN
invoice_increment := invoice_row.sum_invoice;
ELSE
invoice_increment := invoice_row.sum_invoice - last_invoice_total_sum;
END IF;
last_vendor_id :=invoice_row.vendor_id;
last_invoice_total_sum := invoice_row.sum_invoice;
DBMS_OUTPUT.PUT_LINE('vendor '||invoice_row.vendor_id||'''s increment on '||invoice_row.invoice_date||' is: '||invoice_increment);
End Loop;
End;
Ожидаемый результат:
прирост продавца 37 на 17 мая-14: 116
прирост продавца 37 на 19 мая-14: 108
...
Фактический объем производства:
Приращение продавца 37 на 17 мая-14:
Прирост продавца 37 на 19 мая-14: 108
...