There are 3 tables:
CREATE TABLE "SYSTEM"."ID_DOWNLOADS" ( "LOADID" NUMBER NOT NULL ENABLE, "DATELOAD" DATE NOT NULL ENABLE, CONSTRAINT "ID_DOWNLOADS_PK" PRIMARY KEY ("LOADID") ); CREATE TABLE "SYSTEM"."CAR_BRAND" ( "CARBRANDID" NUMBER NOT NULL ENABLE, "BRANDNAME" VARCHAR2(20 BYTE) NOT NULL ENABLE, CONSTRAINT "CAR_BRAND_PK" PRIMARY KEY ("CARBRANDID") ); CREATE TABLE "SYSTEM"."SALECAR" ( "CARBRANDID" NUMBER NOT NULL ENABLE, "CARMODELID" NUMBER NOT NULL ENABLE, "COST" NUMBER NOT NULL ENABLE, "SALEDATE" DATE NOT NULL ENABLE, "LOADID" NUMBER );
You need to write a procedure in which the date is submitted. For this date, you need to take loadid from the first table and assign it to a variable. Then, by the value of this variable, output the table in which there will be BRANDNAME and the amount COST for this brand.
I wrote the following
CREATE OR REPLACE Procedure SummSale ( date_in IN date ) IS no_loadid1 EXCEPTION; Loadid1 number; TYPE SummSale IS RECORD ( Brandname VARCHAR2(30), Cost1 NUMBER (20) ); summ_sale SummSale; begin SELECT loadid INTO loadid1 from id_downloads where dateload = date_in; IF loadid1 = NULL THEN RAISE no_loadid1; ELSE SELECT Br.BRANDNAME, SUM(Sc.COSTT) AS COSTT INTO Summ_Sale.Brandname, Summ_Sale.Costt FROM CAR_BRAND Br INNER JOIN SALECAR Sc ON Br.CARBRANDID = Sc.CARBRANDID WHERE (((loadid1) = Sc.loadid)) GROUP BY Br.BRANDNAME; DBMS_OUTPUT.PUT_LINE('Brandname: ' || Summ_Sale.Brandname); DBMS_OUTPUT.PUT_LINE('Cost: ' || Summ_Sale.Cost1); END if; exception WHEN no_loadid1 THEN raise_application_error (-20001,'load id not found in order to submit.'); end; END SummSale; / show errors declare date1 date; begin date1:=28/01/2018; SummSale(date1); end; / The question is as follows. Whether select after else adequately written and why swears:
Encountered the symbol "END"
at the end of the procedure?
select ... into ... from. Or use cursors,bulk collect into. Table description is not complete, addcreate table ...Theno_loadid1exceptionno_loadid1not needed. - 0xdbendin the procedure, so it swears. Format the code, and such problems will be immediately visible. - fori1ton