Oracle - pequeña consultaa!!! ayuda

   
Vista:

pequeña consultaa!!! ayuda

Publicado por angela (1 intervención) el 24/01/2008 20:26:05
ey que tal. haber si alguien me pue de ayudar, soy novata . Quiero hacer un bloque en pl/sql donde tengo la tabla facturas y tiendas, lo q quiero es que me muestre el total del dinero de las facturas (SUM) de cada tienda entre dos fechas determinadas.
Muchas gracias de antemano.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:pequeña consultaa!!! ayuda

Publicado por aem (22 intervenciones) el 25/01/2008 16:40:07
CREATE TABLE "TIENDAS"
( "CODIGO" NUMBER(5,0),
"DESCRIPCION" VARCHAR2(40),
CONSTRAINT "TIENDA_PK" PRIMARY KEY ("CODIGO")
);

CREATE UNIQUE INDEX "TIENDA_PK" ON "TIENDAS" ("CODIGO");

ALTER TABLE "TIENDAS" ADD CONSTRAINT "TIENDA_PK" PRIMARY KEY ("CODIGO");



CREATE TABLE "FACTURAS"
( "NUM_FACTURA" NUMBER(10,0) NOT NULL ,
"FECHA" DATE NOT NULL ,
"COD_TIENDA" NUMBER(5,0) NOT NULL ,
"TOTAL" NUMBER(10,2) NOT NULL ,
CONSTRAINT "FACTURA_PK" PRIMARY KEY ("NUM_FACTURA"),
CONSTRAINT "FACTURA_TIENDA_FK" FOREIGN KEY ("COD_TIENDA")
REFERENCES "TIENDAS" ("CODIGO")
);

CREATE INDEX "FACTURA_IDX1" ON "FACTURAS" ("COD_TIENDA");

CREATE UNIQUE INDEX "FACTURA_PK" ON "FACTURAS" ("NUM_FACTURA");

ALTER TABLE "FACTURAS" ADD CONSTRAINT "FACTURA_PK" PRIMARY KEY ("NUM_FACTURA");



------------------------------------------------------------------------------------
/* BLOQUE PLSQL*/

DECLARE
cTienda NUMBER(5);
dTienda VARCHAR2(40);
fecha1 DATE;
fecha2 DATE;
totalFacturas NUMBER(20, 2);

CURSOR cur_TotFact IS
SELECT ti.codigo,
ti.descripcion,
SUM(fac.total) AS totalFacturas
FROM tiendas ti,
facturas fac
WHERE ti.codigo = fac.cod_tienda
AND fac.fecha BETWEEN fecha1 AND fecha2
GROUP BY ti.codigo,
ti.descripcion;

BEGIN
fecha1 := trunc(SYSDATE-10);
fecha2 := trunc(SYSDATE);
FOR reg_TotFact IN cur_TotFact
LOOP
ctienda := reg_TotFact.codigo;
dtienda := reg_TotFact.descripcion;
totalFacturas := reg_TotFact.totalFacturas;
dbms_output.put_line('Tienda: ' || ctienda || ' - ' || dtienda || ' <<<>>> Monto total de faturas:' ||
totalFacturas);
END LOOP;
EXCEPTION
WHEN OTHERS THEN
dbms_output.put_line('Error: ' || SQLERRM);
END;
/
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar