Ejercicios unidad 5: Consultas de resumen


Para realizar los ejercicios, deberás utilizar la base de datos GestionSimples.

Ejercicio 1: Funciones de agregado

  1. ¿Cuántas oficinas tenemos en Valencia?

    Resultado:

    Valencianas
    4
  2. Hallar cuántos pedidos hay de más de 250 euros.

    Resultado:

    Superiores a 250
    4
  3. ¿Cuántos títulos (cargos) de empleados se usan?

    Resultado:

    Cuántos títulos
    3
  4. ¿Entre qué cuotas se mueven los empleados?

    Resultado:

    Cuota mínima Cuota máxima
    3000,00 35000,00

Puedes consultar aquí las soluciones propuestas.

Ejercicio 2: Agrupamiento de filas: GROUP BY

  1. De cada vendedor (todos) queremos saber su nombre y el importe total vendido. En caso de que el importe sea NULL, cambiarlo por 0,00 con la función ISNULL().

    Resultado:

    numemp nombre Importe vendido
    101 Antonio Viguer 266,28
    102 Alvaro Jaumes 77,76
    103 Juan Rovira 21,00
    104 José González 0,00
    105 Vicente Pantalla 772,746
    106 Luis Antonio 46,08
    107 Jorge Gutiérrez 344,32
    108 Ana Bustamante 286,33
    109 María Sunta 71,05
    110 Juan Victor 478,82
    111 Juan Gris 0,00
    112 Julián Martorell 0,00
    113 Juan Gris 0,00
    114 Pablo Moreno 0,00

    Puedes consultar aquí las soluciones propuestas.
  2. De cada empleado, obtener el importe vendido a cada cliente.

    Resultado:

    rep Cliente Importe vendido
    106 2101 14,58
    101 2102 39,78
    105 2103 735,296
    102 2106 40,26
    110 2107 28,82
    101 2108 1,50
    109 2108 71,05
    107 2109 313,50
    103 2111 21,00
    105 2111 37,45
    108 2112 29,25
    110 2112 450,00
    101 2113 225,00
    108 2114 221,00
    106 2117 31,50
    108 2118 36,08
    102 2120 37,50
    107 2124 30,82

    Puedes consultar aquí las soluciones propuestas.
  3. Repetir la consulta anterior pero ahora deben aparecer también los empleados que no han vendido nada.

    Resultado:

    rep Cliente Importe vendido
    101 2102 39,78
    101 2108 1,50
    101 2113 225,00
    102 2106 40,26
    102 2120 37,50
    103 2111 21,00
    104 NULL NULL
    105 2103 735,296
    105 2111 37,45
    106 2101 14,58
    106 2117 31,50
    107 2109 313,50
    107 2124 30,82
    108 2112 29,25
    108 2114 221,00
    108 2118 36,08
    109 2108 71,05
    110 2107 28,82
    110 2112 450,00
    111 NULL NULL
    112 NULL NULL
    113 NULL NULL
    114 NULL NULL

    Puedes consultar aquí las soluciones propuestas.

  4. Repetir la consulta pero ahora debe aparecer también el total de cuánto ha vendido cada empleado. (Recuerda una opción de la cláusula GROUP BY)

    Resultado:

    rep clie Importe vendido
    NULL NULL 2364,386
    101 NULL 266,28
    101 2102 39,78
    101 2108 1,50
    101 2113 225,00
    102 NULL 77,76
    102 2106 40,26
    102 2120 37,50
    103 NULL 21,00
    103 2111 21,00
    104 NULL NULL
    104 NULL NULL
    105 NULL 772,746
    105 2103 735,296
    105 2111 37,45
    106 NULL 46,08
    106 2101 14,58
    106 2117 31,50
    107 NULL 344,32
    107 2109 313,50
    107 2124 30,82
    108 NULL 286,33
    108 2112 29,25
    108 2114 221,00
    108 2118 36,08
    109 NULL 71,05
    109 2108 71,05
    110 NULL 478,82
    110 2107 28,82
    110 2112 450,00
    111 NULL NULL
    111 NULL NULL
    112 NULL NULL
    112 NULL NULL
    113 NULL NULL
    113 NULL NULL
    114 NULL NULL
    114 NULL NULL

    Puedes consultar aquí las soluciones propuestas.
  5. En los resultados anteriores no se distinguen bien las líneas que corresponden a totales. Modificar la consulta para obtener este resultado:
    rep clie Importe vendido Agrupa
    clie
    Agrupa
    numemp
    NULL NULL 2364,386 1 1
    101 NULL 266,28 1 0
    101 2102 39,78 0 0
    101 2108 1,50 0 0
    101 2113 225,00 0 0
    102 NULL 77,76 1 0
    102 2106 40,26 0 0
    102 2120 37,50 0 0
    103 NULL 21,00 1 0
    103 2111 21,00 0 0
    104 NULL NULL 0 0
    104 NULL NULL 1 0
    ... .... ... (sigue) ... ...

    Puedes consultar aquí las soluciones propuestas.
  6. Ahora modifica la consulta para que las filas de totales aparezcan más claras. (Recuerda la función CASE)

    Resultado:

    rep clie Importe vendido Agrupa clie Agrupa
    numemp
    NULL NULL 2364,386 Total empleado Total final
    101 NULL 266,28 Total empleado  
    101 2102 39,78    
    101 2108 1,50    
    101 2113 225,00    
    102 NULL 77,76 Total empleado  
    102 2106 40,26    
    102 2120 37,50    
    103 NULL 21,00 Total empleado  
    103 2111 21,00    
    104 NULL NULL    
    104 NULL NULL Total empleado  
    ... .... ... (sigue) ... ...

    Puedes consultar aquí las soluciones propuestas.
  7. Ahora coloca las columnas Agrupa delante de las demás columnas:

    Resultado:

    Agrupa
    numemp
    Agrupa clie rep clie Importe vendido
    Total final Total empleado NULL NULL 2364,386
      Total empleado 101 NULL 266,28
        101 2102 39,78
        101 2108 1,50
        101 2113 225,00
      Total empleado 102 NULL 77,76
        102 2106 40,26
        102 2120 37,50
      Total empleado 103 NULL 21,00
        103 2111 21,00
        104 NULL NULL
      Total empleado 104 NULL NULL
    ... (sigue) ... ... .... ...

    Puedes consultar aquí las soluciones propuestas.
  8. Ahora queremos que "Total empleado" aparezca en la columna clie. Piensa primero en cuántas columnas quieres y luego en cada columna que tiene que salir.

    Resultado:

    Agrupa
    numemp
    numemp clie Importe vendido
    Total final NULL Total empleado 2364,386
      101 Total empleado 266,28
      101 2102 39,78
      101 2108 1,50
      101 2113 225,00
      102 Total empleado 77,76
      102 2106 40,26
      102 2120 37,50
      103 Total empleado 21,00
      103 2111 21,00
      104 NULL NULL
      104 Total empleado NULL
    ... (sigue) ... .... ...

    Puedes consultar aquí las soluciones propuestas.
  9. El empleado 104 (y otros) no ha vendido a nadie y por eso sale en la columna clie la palabra NULL, queremos que en estos casos no aparezca nada (se deje en blanco), y el importe si es NULL que salga un cero.

    Resultado:

    Agrupa
    numemp
    numemp clie Importe vendido
    Total final NULL Total empleado 2364,386
      101 2102 39,78
      101 2108 1,50
      101 2113 225,00
      101 Total empleado 266,28
      102 2106 40,26
      102 2120 37,50
      102 Total empleado 77,76
      103 2111 21,00
      103 Total empleado 21,00
      104   0,00
      104 Total empleado 0,00
    ... (sigue) ... .... ...

    Nota: Recuerda la función  ISNULL() (para la columna importe vendido)  y la función CASE con diferentes condiciones (para la columna clie).
    Puedes consultar aquí las soluciones propuestas.

  10. Lo rematamos para que el resultado quede así:
      numemp clie Importe vendido
    Total final ... ... 2364,386
      101 2102 39,78
      101 2108 1,50
      101 2113 225,00
      101 Total empleado 266,28
      102 2106 40,26
      102 2120 37,50
      102 Total empleado 77,76
      103 2111 21,00
      103 Total empleado 21,00
      104   0,00
      104 Total empleado 0,00
    ... (sigue) ... .... ...

Puedes consultar aquí las soluciones propuestas.

Atrás  Inicio  Adelante



.