Está en la página 1de 26

CONSULTAS

¿Qué es una consulta?


• 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

También podría gustarte