• Las consultas expresan los cuestionamientos a las que desea que sus datos respondan. • Ejemplos: – nombre del marinero que tiene reservado un bote rojo – Nombre de los clientes que han realizado su pago en efectivo – Nombre de los marineros que son mayores de 20 pero menores de 40 Tipos de consultas
• En nuestro curso solo realizaremos
consultas simples del tipo Selección, Parámetros y de referencias cruzadas Consulta 1 • "Se desea saber el nombre de los marineros que sean mayores de 18 y menores que 25 o que sean exactamente de 35 años" • primeramente seleccionar y posteriormente seleccionar la información que se desea obtener. Selección de los datos de la consulta • Modo Diseño • Modo ejecución Consulta 2 • Si sabemos que el 20% del monto por rentar un barco es la comisión de los marineros, entonces ¿Cuál es el monto de la comisión que los marineros reciben por el servicio al cliente con forma de pago a crédito? Asignaciones • Efectúe las siguientes consultas – Encuentre marinos cuyo rating estén por debajo del marino Horacio – Encuentre las claves de los marinos que tengan reservado un barco rojo – Cuántos marineros tienen de 20 a 25 años Caso 1 • Encuentre marinos cuyo rating estén por debajo del marino Horacio – La importancia de comprender la referencia es que se toma al Marinero Horacio como punto de partida, sin embargo hay que considerar que el rating de este puede variar con el tiempo, situación por la cual no podemos en la consulta fijar el valor actual de su rating Solución equivocada… • Si bien es cierto se produce el mismo resultado, con forme pase el tiempo el resultado puede ser un error Solución Generalizada • Utilización de la función Dbusq. • La función DBúsq es usada para obtener el valor de un campo en un conjunto especificado de registros (un dominio). • Sintaxis DBúsq(expr, dominio [, criterios] ) Caso 2 • Encuentre las claves de los marinos que tengan reservado un barco rojo • En este caso se puede dar la situación que los resultados pueden estar duplicados, por lo tanto no requerimos este tipo de información ya que podría generar una mala interpretación Solución equivocada Solución adecuada • Existen cláusulas que se pueden incorporar en las sentencias SQL que permiten la eliminación de duplicados • Una de estas es la sentencia DISTINCTROW (campo) Solución correcta SELECT DISTINCTROW [Marineros]![Mid] AS [Clave de marineros], Marineros.mnombre FROM (color INNER JOIN Barcos ON color.ID = Barcos.colorId_) INNER JOIN (Marineros INNER JOIN Reservas ON Marineros.Mid = Reservas.Mid) ON Barcos.Bid = Reservas.Bid WHERE (((color.color)="Rojo")); Caso 3 • Cuántos marineros tienen de 20 a 25 años – El error más común es no indicar la CANTIDAD de elementos que cumplen la condición, sino de proporcionar la lista de los que cumplen Solución incorrecta Solución correcta Consultas Parametrizadas • Cuando se desea que una consulta pida un valor o un modelo cada vez que se ejecuta, se puede crear una consulta de parámetros. Crear una consulta de parámetros 1. Cree una consulta de selección en vista Diseño. 2. En la fila Criterios del campo al que desee aplicar un parámetro, escriba entre corchetes el texto que debe aparecer en el cuadro de diálogo del parámetro; por ejemplo: [País o región de origen:] 3. Cuando ejecute la consulta de parámetros, el parámetro aparecerá sin corchetes en un cuadro de diálogo. 4. Repita el paso 2 por cada parámetro que la consulta debe recopilar y aplicar. Ejemplo… • En esta consulta, se solicita como parámetros dos colores de barcos y el año de reservación. Consultas de referencias cruzadas • Una consulta de tabla de referencias cruzadas calcula una suma, un promedio u otra función agregada y, a continuación, agrupa los resultados por dos conjuntos de valores: un conjunto en el lado de la hoja de datos y el otro, a lo largo de la parte superior. Recordemos la consulta 2 • Si sabemos que el 20% del monto por rentar un barco es la comisión de los marineros, entonces ¿Cuál es el monto de la comisión que los marineros reciben por el servicio al cliente con forma de pago a crédito? Observaciones • Observe que un mismo marinero (Donald) tiene 2 comisiones • Se pretende hacer una referencia cruzada sumando los que son iguales