Documentos de Académico
Documentos de Profesional
Documentos de Cultura
-----------------------------------
********************************---------------------------------------------------
------------
----------------------------------------------
****************************---------------------------------------------
--------------------------------------------
************************--------------------------------------------------
RETOS
SELECT R.NOMBRE "REGION" , E.NOMBRE "EMPLEADO HIZO MAYOR VENTA" , O.TOTAL "VALOR
VENTA"
FROM REGION R, ORDEN O, CLIENTE C , EMPLEADO E
WHERE O.CODIGO_REP_VENTAS = E.CODIGO
AND O.CODIGO_CLIENTE = C.CODIGO
AND C.CODIGO_REGION = R.CODIGO
AND (O.CODIGO_REP_VENTAS, O.TOTAL) IN (SELECT E.CODIGO , MAX(O.TOTAL ) TOTAL
FROM ORDEN O, EMPLEADO E
WHERE O.CODIGO_REP_VENTAS = E.CODIGO
GROUP BY O.CODIGO_REP_VENTAS)
------------------------------------------
****************************_______________________________________________________
_____________________________
--------------------------------------------
*************************SITPR_lISTAR_PRODUCTOS***********************-------------
------------------------------------------------
CREATE OR REPLACE PROCEDURE SITPR_lISTAR_PRODUCTOS
IS
CURSOR C1 IS SELECT P.CODIGO , P.NOMBRE , B.CODIGO CODG
FROM PRODUCTO P, BODEGA B, INVENTARIO I
WHERE P.CODIGO = I.CODIGO_PRODUCTO
AND I.CODIGO_BODEGA = B.CODIGO AND
P.NOMBRE = 'Himalaya Tires';
BEGIN
FOR R1 IN C1 LOOP
DBMS_OUTPUT.PUT_LINE('CODIGO PRODUCTO :'|| R1.CODIGO
|| 'NOMBRE PRODUCTO:' || R1.NOMBRE || 'CODIGO BODEGA :' || R1.CODG);
END LOOP;
END SITPR_lISTAR_PRODUCTOS ;
CURSOR C1 IS
SELECT P.NOMBRE , P.CODIGO , COUNT(I.STOCK) STO
FROM INVENTARIO I , PRODUCTO P , BODEGA B
WHERE I.CODIGO_PRODUCTO = P_CODIGO_PRODUCTO
AND I.CODIGO_BODEGA = P_CODIGO_BODEGA
GROUP BY P.NOMBRE ,P.CODIGO , I.STOCK ;
BEGIN
V_STOCK := 0;
FOR R1 IN C1 LOOP
V_STOCK := R1.STO;
dbms_output.put_line('ASIGNANDO VALOR A LA VARIABLE V_STOCK');
END LOOP;
IF V_STOCK = 0 THEN
dbms_output.put_line('VALORES INCORRECTOS');
END IF;
RETURN V_STOCK;
END DEVOLVER_STOCK;
--------------------------------------------******************LISTAR NOMBRE
EMPLEADO CONTENGAN A****************----------------------------------------------
BEGIN
FOR R1 IN C1 LOOP
DBMS_OUTPUT.put_line('NOMBRE CONTENGAN A :' || R1.NOMBRE);
END LOOP;
END;
------------------------------------------
****************************************************-------------------------------
-------------------
Muestre los EMPLEADOS que tienen una SALARIO menor al promedio, SU SALARIO, y la
diferencia con el promedio.
SELECT NOMBRE ,
(SELECT AVG(SALARIO) FROM EMPLEADO)-SALARIO AS DIFERENCIA
FROM EMPLEADO
WHERE SALARIO <
(SELECT AVG(SALARIO) FROM EMPLEADO);
------------------------------------------------------------
****************************-----------------------------------------------------
Obtenga todos los datos de los EMPLEADOS con EL SALARIO MAS ALTO
SELECT EMPLEADO.*
FROM EMPLEADO
WHERE SALARIO = (SELECT MAX(SALARIO) FROM EMPLEADO)
----------------------------------------
**********************************-------------------------------------------------
---------------------------
Necesitamos conocer los nombres de las REGIONES de aquellos clientes cuyo domicilio
es en calle "6 Saint Antoine", empleando subconsulta.
---------------------------------------------
*****************************************************------------------------------
-----------------------
Obtenga los nombre de LOS EMPLEADOS de los DEPARTAMENTOS cuyo NOMBRE no comienza
con una letra especfica (letra "G"),
select nombre
from EMPLEADO
where codigo NOT IN
(select D.CODIGO
from DEPARTAMENTO D
where D.nombre like 'A%');
-----------------------------------------------
*************************************************----------------------------------
------------------
Buscamos todos los deportes que se dictan el mismo da que un determinado deporte
(natacion) empleando subconsulta (1 registro)
select nombre
from deportes
where nombre<>'natacion' and
dia =
(select dia
from deportes
where nombre='natacion');
------------------------------------
********************************************---------------------------------------
----------------------
SELECT E.*
FROM EMPLEADO E
WHERE EXISTS(SELECT CODIGO_REP_VENTAS
FROM ORDEN O
WHERE O.CODIGO_REP_VENTAS = E.CODIGO);
-----------------------------------------------------------------
**********************************-------------------------------------------------
---------
CURSOR C1 IS
SELECT D.NOMBRE
FROM DEPARTAMENTO D
WHERE CODIGO = P_CODIGO_DEP;
BEGIN
V_NOMBRE_DEPT:= NULL;
FOR R1 IN C1 LOOP
DBMS_OUTPUT.put_line(R1.NOMBRE);
V_NOMBRE_DEPT:=R1.NOMBRE;
END LOOP;
RETURN V_NOMBRE_DEPT;
END FN_DEVOLVER_NOMBRE_EMPLEADOS;
-----------------------------------------------
*********************************************--------------------------------------
---------
CURSOR C1 IS
V_ESTDO := 'N';
begin
FOR R1 IN C1 LOOP
IF R1.SALARIO>1500 THEN
V_RNGO1:='ALTO';
ELSE
V_RNGO1:='BAJO';
END IF;
INSERT INTO
EMPLDO_ORDEN02(CDGO_EMPLDO,NMBRE_EMPLDO,NMBRE_DPRTMNTO,SALARIO,RANGO,ESTADO)
VALUES(R1.CODIGO,R1.EMPLEADO,R1.NOMBRE,R1.SALARIO,V_RANGO,V_ESTADO);
end INSERTAR_ACTUALIZAR;
-------------------------------------------------
*******************************************************____________________________
_________________create or replace procedure PR_INSERTAR_ACTUALIZAR
is
V_ESTDO EMPLDO_ORDEN01.ESTADO%TYPE;
V_RNGO1 EMPLDO_ORDEN01.RANGO%TYPE;
CURSOR C1 IS
begin
v_NOMBRE_DEPARTAMENTO := FN_DEVOLVER_NOMBRE_EMPLEADOS(P_CODIGO_DEP);
V_ESTDO := 'N';
V_RANGO := NULL ;
V_SALARIO := 0 ;
FOR R1 IN C1 LOOP
IF R1.:V_NOMBRE_DEPARTAMENTO THEN
END IF;
v_NOMBRE_DEPARTAMENTO := NULL
INSERT INTO
EMPLDO_ORDEN01(CDGO_EMPLDO,NMBRE_EMPLDO,NMBRE_DPRTMNTO,SALARIO,RANGO,ESTADO)
VALUES(R1.CODIGO,R1.EMPLEADO,R1.:V_NOMBRE_DEPARTAMENTO,R1.SALARIO,V_RANGO,V_ESTADO)
;
DBMS_OUTPUT.put_line('DATOS INSERTADOS CORRECTAMENTE');
ELSE
UPDATE EMPLDO_ORDEN01
SET(CDGO_EMPLDO,NMBRE_EMPLDO,NMBRE_DPRTMNTO,SALARIO,RANGO,ESTADO) ;
DBMS_OUTPUT.put_line('DATOS ACTUALIZADOS CORRECTAMENTE');
end PR_INSERTAR_ACTUALIZAR;