Solucion Ejercicios Pag 181

download Solucion Ejercicios Pag 181

of 5

Transcript of Solucion Ejercicios Pag 181

  • 7/27/2019 Solucion Ejercicios Pag 181

    1/5

    1.- Modifica el nmero de plazas con un valor igual a lamitad en aquellos centros con menos de dos profesores

    UPDATE CENTROS SET NUM_PLAZAS=NUM_PLAZAS/2

    WHERE COD_CENTRO IN (SELECT COD_CENTRO FROM PROFESORES

    GROUP BY COD_CENTRO

    HAVING COUNT(*)

  • 7/27/2019 Solucion Ejercicios Pag 181

    2/5

    PARA CAMBIAR SALARIO DE PESETAS A EUROS

    SELECT * FROM PERSONAL

    UPDATE PERSONAL SET SALARIO=ROUND(SALARIO/166.386)

    ESTO ES PARA ELIMINAR LA FUNCION DE MARTINEZ

    UPDATE PERSONAL SET FUNCION=NULL

    WHERE APELLIDOS='Martnez Salas, Fernando'

    PARA CAMBIAR EL OFICIO LA PRIMERA EN MAYUSCULAS

    UPDATE PERSONAL SET FUNCION=INITCAP(FUNCION)

    ============== TABLAS ARTICULOS/TIENDAS/FABRICANTES/PEDIDOS/VENTAS

    6.- Da de alta un nuevo artculo de 'Primera' categora paralos fabricantes de 'FRANCIA' y abastece con 5 unidadesde ese artculo a todas las tiendas y en la fecha de hoy.

    PRIMERO INSERTAMOS EL NUEVO ARTICULO EN LA TABLA ARTICULOS

    INSERT INTO ARTICULOS

    SELECT 'PAN',COD_FABRICANTE,5,'Primera',4,4,30

    FROM FABRICANTES WHERE PAIS='FRANCIA'

    LUEGO INSERTAMOS EN LA TABLA PEDIDOS EL NUEVO ARTICULO

    INSERT INTO PEDIDOS

    SELECT NIF,'PAN',30,8,'Primera',SYSDATE,5 FROM TIENDAS

    O TAMBIEN

    INSERT INTO PEDIDOS

    SELECT NIF,'PAN',(SELECT COD_FABRICANTE FROM FABRICANTES WHERE

    PAIS='FRANCIA'),8,'Primera',SYSDATE,5 FROM TIENDAS

    7.- Inserta un pedido de 20 unidades en la tienda '1111-A' con el artculo que mayor nmero de ventas hayarealizado.

    INSERT INTO PEDIDOS

    SELECT '1111-A',ARTICULO,COD_FABRICANTE,PESO,CATEGORIA,SYSDATE,20FROM VENTAS

    GROUP BY ARTICULO,COD_FABRICANTE,PESO,CATEGORIA

    HAVING COUNT(*)=(SELECT MAX(COUNT (*)) FROM VENTAS

    GROUP BY ARTICULO,COD_FABRICANTE,PESO,CATEGORIA)

    PREGUNTAR 7.-

    INSERT INTO PEDIDOS

    SELECT '1111-A',ARTICULO,COD_FABRICANTE,PESO,CATEGORIA,SYSDATE,20 FROM

    VENTAS

    GROUP BY ARTICULO,COD_FABRICANTE,PESO,CATEGORIA

    HAVING SUM(UNIDADES_VENDIDAS)=(SELECT MAX(SUM(UNIDADES_VENDIDAS)) FROM

    VENTAS

    GROUP BY ARTICULO,COD_FABRICANTE,PESO,CATEGORIA)

  • 7/27/2019 Solucion Ejercicios Pag 181

    3/5

    8.- Da de alta una tienda en la provincia de 'MADRID' yabastcela con 20 unidades de cada uno de los artculosexistentes.

    PRIMERO CREAR LA TIENDA Y LUEGO VAMOS A LLENARLO DE ARTICULOS.

    CREAMOS LA TIENDA

    INSERT INTO TIENDAS

    VALUES('2020-A','LA PANADERIA','C/ ALCALA 340','Madrid','MADRID',28027)

    AHORA VAMOS A ABASTECERLO EN PEDIDOS

    INSERT INTO PEDIDOS

    SELECT '2020-A',ARTICULO,COD_FABRICANTE,PESO,CATEGORIA,SYSDATE,20 FROM

    ARTICULOS

    9.-Da de alta dos tiendas en la provincia de 'SEVILLA' y abastcelas con 30

    unidades de artculos de la marca de fabricante 'GALLO'.

    INSERT INTO TIENDASVALUES ( 3030-A ,'SEVILLA1','C/SEVILLA 20,'SEVILA','SEVILLA',28001)

    INSERT INTO TIENDASVALUES ( 4040-A ,'SEVILLA 2','C/SEVILLA 30','SEVILA','SEVILLA',28001)

    INSERT INTO PEDIDOSSELECT NIF,ARTICULO,A.COD_FABRICANTE,PESO,CATEGORIA,SYSDATE,30 FROMARTICULOS A,TIENDAS,FABRICANTES FWHERE A.COD_FABRICANTE=F.COD_FABRICANTE

    AND F.NOMBRE='GALLO' AND PROVINCIA='SEVILLA'

    10.-Realiza una venta para todas las tiendas de 'TOLEDO' de 10 unidadesen los artculos de 'Primera' categora.

    INSERT INTO VENTASSELECT NIF,ARTICULO,COD_FABRICANTE,PESO,CATEGORIA,SYSDATE,10 FROMARTICULOS A,TIENDASWHERE PROVINCIA='TOLEDO' AND CATEGORIA='Primera'

    11.- Para aquellos artculos de los que se hayan vendido ms de 30unidades, realiza un pedido de 10 unidades para la tienda con NIF '5555-B'con la fecha actual.

    INSERT INTO PEDIDOSSELECT DISTINCT '5555-B',ARTICULO, COD_FABRICANTE, PESO, CATEGORIA,SYSDATE, 10 FROM VENTASWHERE (ARTICULO,COD_FABRICANTE,PESO,CATEGORIA) IN (SELECTARTICULO,COD_FABRICANTE,PESO,CATEGORIA FROM VENTASGROUP BY ARTICULO,COD_FABRICANTE,PESO,CATEGORIAHAVING SUM(UNIDADES_VENDIDAS)>30)

  • 7/27/2019 Solucion Ejercicios Pag 181

    4/5

    12.- Cambia los datos de la tienda con NIF '1111-A' igualndolos a los de latienda con NIF '2222-A'.

    UPDATE TIENDAS

    SET (NOMBRE,DIRECCION,POBLACION,PROVINCIA,CODPOSTAL)=(SELECTNOMBRE,DIRECCION,POBLACION,PROVINCIA,CODPOSTAL FROM TIENDAS WHERENIF='2222-A')WHERE NIF='1111-A'

    13.- Cambia todos los artculos de 'Primera' categora a 'Segunda'categora del pas 'ITALIA'.

    UPDATE ARTICULOSSET CATEGORIA='Segunda'WHERE CATEGORIA='Primera'AND COD_FABRICANTE=(SELECT COD_FABRICANTE FROM FABRICANTES

    WHERE PAIS='ITALIA')

    14.- Modifica aquellos pedidos en los que la cantidad pedida sea superiora las existencias del artculo, asignando el 20 por 100 de las existencias ala cantidadque se ha pedido.

    UPDATE PEDIDOSSET UNIDADES_PEDIDAS=0.2*(SELECT EXISTENCIAS FROM ARTICULOS A,PEDIDOS PWHERE A.ARTICULO=P.ARTICULO AND A.COD_FABRICANTE=P.COD_FABRICANTEAND A.PESO=P.PESO AND A.CATEGORIA=P.CATEGORIAAND EXISTENCIAS

  • 7/27/2019 Solucion Ejercicios Pag 181

    5/5

    17.- Borra los pedidos de 'Primera' categora cuyo pas de procedencia sea'BLGICA'.

    DELETE FROM PEDIDOSWHERE (ARTICULO,COD_FABRICANTE,PESO,CATEGORIA) IN (SELECTARTICULO,COD_FABRICANTE,PESO,CATEGORIA FROM PEDIDOSWHERE CATEGORIA='Primera'AND COD_FABRICANTE=(SELECT COD_FABRICANTE FROM FABRICANTESWHERE PAIS='BELGICA'))

    18.- Borra los pedidos que no tengan tienda.

    DELETE FROM PEDIDOSWHERE NIF NOT IN (SELECT NIF FROM TIENDAS)

    19.-Resta uno a las unidades de los ltimos pedidos de la tienda con NIF'5555-B'.

    UPDATE PEDIDOS

    SET UNIDADES_PEDIDAS= UNIDADES_PEDIDAS-1

    WHERE NIF='5555-B' AND

    FECHA_PEDIDO=(SELECT MAX(FECHA_PEDIDO) FROM PEDIDOS

    WHERE NIF='5555-B')