die Summe der Werte in PL/Sql

Ich versuche zu Holen PLSQL-Anweisung, um alle in der Liste der Kunden-ID und die Summe des Auftragswertes für jeden einzelnen Kunden. der folgende code ruft mir die korrekte Antwort, aber das Problem ist, dass ich mehrere Kunden mit der gleichen ID und ich brauche die Summe aller Ihrer Reihenfolge Werte unter nur 1 ID ausgegeben und nicht mehrere.mein code ruft mich mehrere Ausgabe für den gleichen Kunden.

  Create table sales (customer_ID number(10), product_ID number(10), quantity number(10));

INSERT INTO sales (customer_ID, product_ID, quantity) Values(3,1,23);
INSERT INTO sales (customer_ID, product_ID, quantity) Values(1,2,34);
INSERT INTO sales (customer_ID, product_ID, quantity) Values(1,3,654);
INSERT INTO sales (customer_ID, product_ID, quantity) Values(3,7,32);
INSERT INTO sales (customer_ID, product_ID, quantity) Values(4,3,23);
INSERT INTO sales (customer_ID, product_ID, quantity) Values(3,3,111);
INSERT INTO sales (customer_ID, product_ID, quantity) Values(5,4,6);




Create table products (product_ID number(10), price number(10));
INSERT INTO products (product_ID, price) Values(1,32);
INSERT INTO products (product_ID, price) Values(2,121);
INSERT INTO products (product_ID, price) Values(3,3000);
INSERT INTO products (product_ID, price) Values(4,621);
INSERT INTO products (product_ID, price) Values(5,363);
INSERT INTO products (product_ID, price) Values(6,32);
INSERT INTO products (product_ID, price) Values(7,3);
INSERT INTO products (product_ID, price) Values(8,432);
INSERT INTO products (product_ID, price) Values(9,11);
INSERT INTO products (product_ID, price) Values(10,73);


declare
cursor cur is select unique sales.quantity,products.price,sales.customer_ID
from sales,products
where sales.product_id=products.product_id
order by customer_ID desc;
prod number;
quan number(10);
pri number(10);
c_id number(10);
begin
open cur;
loop
fetch cur into quan,pri,c_id;
exit when cur%notfound;
prod:=pri*quan;
DBMS_OUTPUT.PUT_LINE('customer_id =' || c_id);
DBMS_OUTPUT.PUT_LINE('quantity value =' || quan);
DBMS_OUTPUT.PUT_LINE('price =' || pri);
DBMS_OUTPUT.PUT_LINE('The total value of customer purchases is = ' || prod);
end loop;
close cur;
END

bitte adivse.

  • Bitte geben Sie die create table-Anweisung, und stellen Sie sicher, fügen Sie die INSERT into table_name Klausel tot, er insert-Anweisungen. Und, tun Sie wirklich brauchen, zu verwenden PL/SQL? Es könnte sein, getan in plain SQL. PL/SQL LOOP, row-by-row ein.k.ein. slow-by-slow.
  • änderungen getan und ja ich brauchen, um es durch pl/sql , der code ist fertig, ich brauche nur die Summe der gleichen Kunden-id unter 1 Ausgang
  • Was ist die Ausgabe, die Sie erwarten sind, und warum Sie "müssen" zu tun, es in PL/SQL? Bitte aktualisieren Sie Ihre Frage mit dem erwarteten Ausgang.
InformationsquelleAutor Shak | 2015-07-13
Schreibe einen Kommentar