12
Ejercicios Tema 5 03-02-2009 1.-) Listado de Facultades con sus alumnos. Añadiremos el numero de alumnos al final. A partir de la conexión ODBC sobre la base de datos comedor seleccionamos las tablas Facultad y Alumno: Seleccionamos los campos sin repeticiones y activamos el grupo cFclCdg: No vamos a escoger ninguno de los campos estadísticos propuestos ni vamos a establecer Filtro. Reordenamos nuestro Informe agrupando los campos en la de Facultad en la cabecera y los de alumno dentro del detalle obteniendo el siguiente informe Básico: Enrique Mora Moral Pag: 1/12

1.-) Listado de Facultades con sus alumnos. … · Ejercicios Tema 5 03-02-2009 Selección de Campos; ... Para manejar las tablas cruzadas e introducir un repaso a la sintaxis

  • Upload
    vanthuy

  • View
    214

  • Download
    0

Embed Size (px)

Citation preview

Ejercicios Tema 5 03-02-2009

1.-) Listado de Facultades con sus alumnos. Añadiremos el numero de alumnos al final.

A partir de la conexión ODBC sobre la base de datos comedor seleccionamos las tablas Facultad y Alumno:

Seleccionamos los campos sin repeticiones y activamos el grupo cFclCdg:

No vamos a escoger ninguno de los campos estadísticos propuestos ni vamos a establecer Filtro. Reordenamos nuestro Informe agrupando los campos en la de Facultad en la cabecera y los de alumno dentro del detalle obteniendo el siguiente informe Básico:

Enrique Mora Moral Pag: 1/12

Ejercicios Tema 5 03-02-2009

Sobre este informe añadimos el campo Total “numeroAlumnos” con el siguiente formato:

Por último, arrastramos dicho campo al Pie del Informe.

2.-) Listado de las comidas que ha realizado un alumno durante un mes.

Es preciso pedir tres parámetros para poder realizar la consulta, el código del alumno, el año y el mes. Partimos de un listado base de alumnos/comidas creado según el siguiente formato:

Selección de tablas:

Enrique Mora Moral Pag: 2/12

Ejercicios Tema 5 03-02-2009

Selección de Campos;

Agrupamiento por el campo Alumno.cAlmCdg:

Y en este caso se puede aprovechar el resumen de la suma de los importes de cada una de las comidas servidas.

No realizamos filtros, ni ningún otro tipo de proceso adicional durante la fase inicial de creación del Informe. Una vez obtenido el diseño básico se ajusta a un diseño maestro/detalle:

Enrique Mora Moral Pag: 3/12

Ejercicios Tema 5 03-02-2009

En este punto creamos los tres parametros.● CalmCdg de tipo cadena.● Año de tipo numérico.● Mes de tipo numérico.

Accedemos a “Informe-Asistente de selección” donde escogemos el campo cAlmCdg u otro cualquiera. Pulsamos el botón “Nuevo” y pulsamos el botón “Editor de formulas” donde escribimos la siguiente formula:

Que como podemos observar, corresponde con la parte Where de una sentencia Select. Observese, el uso de las llaves para encerrar el nombre de los campos y el uso del simbolo “?” como prefijo al nombre de los parámetros.

Por último, una vez salvada la formula. Se procede a actualizar el listado y se nos pide los valores de los parámetros que hemos definido y usado en la formula de selección:

Enrique Mora Moral Pag: 4/12

Ejercicios Tema 5 03-02-2009

3.-) Listado tabla cruzada con el numero de menús servidos por cada año.

Existen diferentes métodos para obtener esta consulta. Uno valido puede ser construir el siguiente comando:

Aunque la sentencia más correcta y optima desde el punto de vista SQL sería:

select cMenCdg, year(dCmdFch) año, count(*) numerofrom comidagroup by cMenCdg, year(dCmdFch);

Esta sentencia realiza la consulta solicitada y no necesita totales ni nada para construir la tabla cruzada.

Para manejar las tablas cruzadas e introducir un repaso a la sintaxis vamos a usar el primer modelo gráfico mucho más ineficiente que el segundo.

Sobre este modelo ejecutamos los siguientes pasos:

Campos a mostrar: en este caso ninguno:

Enrique Mora Moral Pag: 5/12

Ejercicios Tema 5 03-02-2009

Ni agrupamientos ni filtro, hasta obtener el siguiente diseño en blanco:

Donde comenzamos a “Insertar tablas cruzadas”

Accedemos al asistente y rellenamos hasta obtener un modelo semejante a:

Enrique Mora Moral Pag: 6/12

Ejercicios Tema 5 03-02-2009

En las columnas arrastro el año, en las filas arrastro cMenCdg y vuelvo a arrastrar a Campos resumidos cMenCdg. En este caso es preciso desde la edición del campo resumen verificar que se esta realizando un count(cMenCdg) sobre dicho campo. El count distinct o recuento diferente no es válido para este caso, donde todos los menús son iguales. Estamos contando las veces que se ha servido dicho menú (macarrones) en un año.

Obteniendo definitivamente:

4.-) Consumiciones realizadas entre dos fechas.Partimos de un Informe base con todos los campos y registros de la tabla consumición:

Añadimos los paramentos fechaInicial y fechaFinal de tipo fecha. Y escribimos la siguiente formula utilizando el editor de formulas del “Asistente de Selección”:

Enrique Mora Moral Pag: 7/12

Ejercicios Tema 5 03-02-2009

Desde el “Asistente de Selección!:

Con esto, al actualizar el Informe debería de solicitar los valores de fechaInicial y fechaFinal para poder generar un Informe con las consumiciones servidas entre ambas fechas.

Enrique Mora Moral Pag: 8/12

Ejercicios Tema 5 03-02-2009

5.-) Listado que nos muestre las facultades y numero de alumnos que tiene.

El formato más simple, es obtener un comando o sentencia SQL que nos calcule los valores. Una de las sentencias validas sería:

Para facilitar la creación de la sentencia anterior, la podemos construir desde el analizador de consultas de SQL Server y copiarla posteriormente a esta ventana. Esto nos permitiría aprovechar el entorno de trabajo SQL Server.

Sobre este comando construimos el Informe más simple posible, añadiendo los campos y poco más. Obteniendo un resultado tan simple y claro como:

Podemos construir el listado sin la compleja sentencia SQL anterior. Este formato aprovechando los campos totales de Crystal Report es mucho menos eficiente que el anterior, que se puede considerar un modelo optimo y mínimo tanto en diseño como en velocidad.

Partimos de escoger las tablas Facultad y alumno:

Enrique Mora Moral Pag: 9/12

Ejercicios Tema 5 03-02-2009

Seleccionamos únicamente los campos de facultad y agrupamos por cFclCdg:

No utilizamos ningún total aportado por Crystal Report y construimos un formato básico de Informe. Movemos los campos de Facultad al Pie de grupo y eliminamos los campos extras que Crystal Report haya introducido.

Una vez reorganizado el listado, procedemos a insertar un campo total que nos cuente el numero de alumnos de facultad con el siguiente formato:

Enrique Mora Moral Pag: 10/12

Ejercicios Tema 5 03-02-2009

Y añadimos el campo al Pie de grupo.Las facultades que no tienen alumnos no aparecen, para que se muestren tenemos que

cambiar la relación establecida entere Facultad y alumno colocando un “outer join” de parte de facultad. Accedemos al “Asistente de Base de datos”

Y fijamos “outer join” al lado de facultad:

Enrique Mora Moral Pag: 11/12

Ejercicios Tema 5 03-02-2009

Con esto, se obtiene el siguiente listado definitivo:

Recordamos que este segundo formato es totalmente ineficiente en comparación con el primero. El tiempo de calculo tanto del cliente como el del servidor se dispara y en algunos casos sería inoperativo.

Enrique Mora Moral Pag: 12/12