Explora Libros electrónicos
Categorías
Explora Audiolibros
Categorías
Explora Revistas
Categorías
Explora Documentos
Categorías
Consultas Avanzadas
CAMPOS CALCULADOS
Algunas veces los usuarios requieren que los datos se muestren dándoles algún tipo de
tratamiento o estableciendo algún tipo de operación con sus datos. Para lograr obtener más
calidad de información.
Cunado a un campo se trata con algún tipo de operación el resultado que se muestra en la
consulta se llama Campo calculado
Consulta 19
Presentar una proyección de los precios de los productos con un descuento del 10%
Mostrar: código, nombre, precio actual, descuento proyectado, Precio al público (proyectado)
Solución:
Todos los datos solicitados se encuentran en la Tabla Producto Luego creamos una nueva
consulta
Pero además se solicita presentar el descuento que se va efectuar, que es el 10% del Precio
actual; este valor tendría que ir en la columna siguiente a la columna del Precio. Pero este
valor no existe en la Tabla, luego hay que calcularlo; este valor seria PrecioUnidad * 0.1
También hay que presentar el precio al público. Este valor sería el 90% del Precio actual o sea
PrecioUnidad * 0.9; esta sería la siguiente columna.
Así tenemos entonces:
Estas dos columnas creadas, se presentan como Columna calculada, que en realidad es un
Expresión creada `por nosotros; por eso ACCESS le pone un nombre a dad columna calculada
como Expr1 y Expr2.
Al verificar el resultado de la consulta con Ver Hoja de datos, tenemos
El resultado es lo que se quería; pero el nombre que aparece en cada campo calculado es la
expresión que considero Access por defecto.
Si se quiere cambiar el Texto de estos encabezados tenemos
Como se observa las dos últimas columnas son los campos calculados a través de valores
existentes en otra columna. Son Campos Calculados.
Consulta de Totales
Consulta 20
Creamos una nueva consulta con estas dos Tablas como origen de datos
Pasamos a Vista Hoja de datos para los resultados hasta el momento
Lo que se requiere es agrupar todos los productos que tengan un mismo valor en un campo
llamado Criterio de Agrupacion, en este casoeste campo es NombreCategoria y todos los datos
del segundo de los registros que correspondan al mismo criterio de agrupacion Sumales
(aplicarles una Funcion de Agrupacion)
Del Primer grupo agrupado por Bebidas debe presentarse un solo registro done se presenta
El valor Bebidas y es segundo valor es la suma de 39 + 17 + …. +125 + 57 = 559
Del Segundo grupo agrupado por Condimentos debe presentarse un solo registro donde se
presenta
El valor Condimentos y es segundo valor es la suma de 13 + 53 + 0 + ………. + 4 + 32 = 507
Y asi sucesivamente
Para realizar esto en ACCES tenemos que convertir esta consulta en una Consulta Agrupada.
Para ello regresamos a Vista Diseño
En la Ficha Diseño se elige el boton Totales para convertir a la consulta en una consulta
agrupada.
Se va agrupar por los valores de la primera columna, en este caso pon NombreCategoria.
Pero al segundo campo de salida se le debe aplicar una Funcion de Agrupacion; ene este caso
la Funcion Suma
Encontramos que lo resultados de las dos categorias que tomamos como muestra coinciden
Pero ademas los 77 registros se han acumulado en 8; es que en total hay 8 categorias de
productos
En una Consula agrupoada entonces siempre hay un campo criterio de agrupacion(prodria ser
mas de uno), y tambien al otro campo de salida se le aplica una Funcion de Agrupacion ( podria
tambien existir mas de un campo afectado por otra Funcion de Agrupacion) .
Ahora pásemos a ver la Vista SQL para observar el Codigo SQl generado
Consulta 21
Solución:
En este resultado se muestra a los clientes y cuantos pedidos ha realizado cada uno de ellos.
Es un resultado bastante útil para el Gerente de Ventas, seguro; pero también es posible que
el Gerente quiera observar el resultado ordenado por la cantidad de pedidos realizados; de
esta manera podrá darse cuenta cuales son los cliente que han realizado más pedidos y
quienes tiene menos pedidos; luego hay que presentar esta lista de resultados ordenados por
la segunda columna en orden descendente.
Regresamos a Vista Diseño y
En la fila Mostar en la segunda columna elegimos la opción Descendente.
El resultado es ahora
Se nota claramente que la lista esta ordenada desde el cliente que realizo más pedidos hasta
los que hicieron menos pedidos.
Pasamos a la Vista SQL para ver el código SQL generado.
Ejercicios propuestos
Solución:
Creamos una nueva consulta con las Tablas Productos y [Detalles de pedidos]
También elegimos en este caso la funcion Suma para aplicar al segundo campo de salida
Asimismo conviene presentar los resultados ordenados por la segunda columna (Monto) en
descendente.
Luego el resultado es
Se observa que todos los registros se acumularon en 77
Además se puede apreciar que el producto con mayor monto de ingreso por venta es el Vino
Côte de Blaye
Pasamos a la Vista SQL para ver el código SQL generado.
Consulta 23
Presentar el total de unidades vendidas por producto y el Monto total de ventas por Producto.
Solución:
Se debe presentar el nombre del Producto, pero hay dos operaciones que realizar; una en
Sumar las cantidades vendidas por producto, y otra es Sumar los Montos de venta por
producto.
Luego hay que usar dos Funciones de agrupación. Para que la consulta permita analizar mejor
los resultados vamos a mostrar también el Precio promedio de cada producto.
Esta consulta requiere a la tabla Productos y la tabla de [Detalles de pedidos]
Creamos una nueva consulta Agrupada
El criterio de Agrupación es el campo Nombre Producto; pero tenemos actuando a tres
Funciones de agrupación
Pasamos a la Vista Hoja de datos para observar los resultados de la consulta
Analice por que el Producto Vino Côte de Blaye tiene un mayor volumen de ventas
comparándolo con el producto Camembert Pierrot que tiene más unidades vendidas y si
embargo en esta lista está en el quinto puesto.
Pasamos a la Vista SQL para ver el código SQL generado.
Presentar la cantidad de pedidos realizados por cada cliente. Mostrar los 4 primeros.Guardar
como Consulta25
Mostrar el total de gastos de envió de pedidos que se ha pagado a cada empresa transportista.
Guardar como Consulta26
Consulta 27
Solución:
Usaremos al Formula Precio * cantidad * ( 1 – Descuento ) para calcular el subtotal por cada
venta y luego los agruparemos por cada pedido (IdPedido)
El resultado es
Se observa el monto total por pedido realizado.
Consulta 28
Presentar los pedidos realizados, mostrado el número de pedido, Nombre del cliente, Fecha y
monto total de cada pedido.
Solución:
Se requiere la Tabla Clientes para obtener el Nombre del Cliente, también se requiere la Tabla
Pedidos para obtener la fecha de cada pedido; pero los totales por pedido se pueden obtener
de la consulta 27 realizada anteriormente. Esto quiere decir que el origen de datos de una
consulta pueden ser tablas o también otras consultas;
Como podemos concluir; en lugar de agrupar y realizar una consulta más compleja, hemos
usado el resultado de una consulta realizada anteriormente, para que se nos facilite la tarea;
ya que parte de los requerimientos estaban ya presentes en los resultados de una consulta
existente. Este método puede ayudar a simplificar el trabajo.
Consulta 29
Solución:
Se puede utilizar la consulta anterior (Consulta28), ya que allí se encuentran justos los datos
que se requieren.
Creamos entonces una nueva consulta y tomamos como origen de datos a la Consulta28
El resultado es el siguiente:
La consulta se resuelve de una manera bastante fácil, ya que hemos reutilizado lo que ya tenía
la Consulta28.
CONSULTAS PARAMETRIZADAS
Cuando se usan filtros en una consulta los criterios del filtro se escriben directamente al
momento de diseñar y construir la consulta; luego estos criterios quedan grabados junta con la
consulta y el usuario final no los puede cambiar.
Podría darse el caso de un criterio que pueda variar de acuerdo a cada usuario entonces
tendríamos que estar creando consultas para cada usuario aunque sean prácticamente iguales
y solo cambie el criterio que necesita cada usuario.
En estos casos es conveniente crear una consulta que le permita al usuario final ingresar su
requerimiento de filtro específico al momento de ejecutar la consulta. Esto permitirá que la
misma consulta se pueda usar muchas veces para requerimientos cambiantes.
Consulta 30
Crear una consulta que permita ver los pedidos realizados en una determinada fecha ingresada
por el usuario. Se debe mostrar en el resultado el número del pedido, el nombre del cliente y
el monto del pedido.
Solución:
Creamos una nueva consulta tomando como origen de datos a esta consulta.
Esto para el ACCESS significa que hay un Parámetro en el criterio del filtro; es decir, el usuario
tendrá que ingresar el dato solicitado por el filtro al momento que ejecute la consulta.
Esta ventana está solicitando que se escriba el valor del parámetro (en este caso una fecha)
para poder ejecutar finalmente la consulta.
El resultado es
Si se ingresa otra fecha devolverá otros resultados y así sucesivamente. Luego el resultado de
lo devuelva la consulta ahora está en las manos del usuario; él decide qué fecha ingresar.
Ejercicio propuesto
Usando la Tabla de Productos y Categorías, crear una consulta que solicite el código de una
categoría y que muestre el nombre de la Categoría y los artículos correspondientes a dicha
categoría.
Guardar como Consulta 30_b
Consulta 31
Crear una consulta que solicite una fecha inicial y una fecha final para mostrar el nombre del
cliente, la fecha del pedido y el monto del pedido para ese intervalo de fechas ingresados por
el usuario.
Solución:
Luego creamos una nueva consulta teniendo como origen de datos a la Consulta28.
Ejecutamos la consulta para probar Cada Mensaje escrito entre corchetes indica un Parámetro
cuyo valor será ingresado cuando se ejecute la consulta.
Solo 10 registros cumplen con los valores que se ingresan para los Parámetros.
Consulta 32
Crear una consulta que permita ver el monto total de ventas de un cliente determinado que
haya sido atendido por un empleado determinado.
Solución:
Se requieren las Tablas Empleados, Clientes, Pedidos y la Consulta 28 que tiene los totales por
pedido. Luego creamos una nueva consulta con este origen de datos.
Es una consulta agrupada por los cinco primeros campos de la salida de la consulta; se está
aplicando una Función SUMA al campo Monto para sumar los mostos de cada pedido por cada
grupo que se forma.
Los Parámetros de entrada son el IdCliente y el IdEmpleado, cuyos datos se ingresarán cunado
se ejecuta la consulta.
en cambio, para el mismo cliente, pero con el vendedor 2 el Monto de ventas es diferente.
Pasamos a la Vista SQL para ver el código SQL generado.
Este tipo de consultas se presentan cuando se requiere agrupar por un criterio por fila y
también por otro criterio por columna. Permiten analizar datos entonces usando dos entradas
(de filas y columnas), agrupando registros y calculando totales con los valores incluidos.
Consulta 33
Solución:
En el grupo Tipo de consulta elegimos el botón General para cambiar la consulta Referencia
Cruzada.
Luego se muestran dos filas adicionales
Como vamos agrupar por encabezado de fila respecto al Nombre del Cliente
En la Segunda fila usamos la Función Año para extraer el Año del campo FechaPedido
Nótese que la segunda columna se transformó en una Expresión. Además, elegimos Agrupar
por Encabezado de Columna.
El resultado muestra 89 clientes y por cada uno de ellos se está presentando el total de pedios
que ha realizado en cada año (se tienen registrados tres años de ventas).
Por ejemplo, el cliente Berglunds snabbköp en el año 1996 realizo 3 pedidos, en el año 1997
realizo 11 pedidos y en el año 1998 realizo 5 pedidos. Estos resultados muestran una
información bastante detallada.
Nótese que la cláusula para agrupar por fila sigue siendo GROUP BY, en cambio para agrupar
por columna se usa la cláusula PIVOT. Además, la función de agrupación está involucrada en la
Cláusula TRANSFORM
Guardar el código SQL generado y lo añadirlo al documento “Consultas SQL en ACCESS” creado
anteriormente.
Regresamos a la Vista Diseño y luego guardamos la consulta como Consulta33.
Cerramos la ventana Diseño Consulta.
La consulta se puede observar en el panel Izquierdo.
Ejercicio propuesto
Mostrar el número de pedidos mensuales emitidos por cliente, durante el año 1996
Usando la tabla de Productos, Detalles, Pedidos, Clientes y Categorías, genere una consulta
que muestre el total de unidades despachadas por Cliente y por Categoría.
Solución:
Creamos una nueva consulta y usamos la herramienta General para convertirla en consulta de
referencias cruzadas
Nótese que se va Agrupar por NombreCompañía como Encabezado de fila y se va agrupar por
NombreCategoría como Encabezado de columna. Al campo Cantidad se la plica la función
SUMA, y se presenta como Valor en la Fila de Tab ref cruz.
Pasamos a la Vista Hoja de datos para ver el resultado de la consulta y tenemos entonces:
Consultas de Acción
En las consultas de selección, los datos originales de las tablas que son el origen de datos no se
alteran para nada.
Se pide realizar una actualización de los precios de los productos incrementándolos en un 25%
En primer lugar, abrimos la tabla de los Productos para observar sus precios actuales.
Existen 77 productos observe los precios actuales de los tres primeros 18,00 19,00 10,00
Cerramos la tabla y creamos una nueva consulta con esta tabla. Agregamos el campo
PrecioUnidad
[PrecioUnidad] * 1.25
Si estamos seguro que vamos a cambiar los datos en la tabla, aceptamos eligiendo el botón Si
Terminado el proceso hay que abrir nuevamente la tabla original para ver si cambiaron los
datos en los precios.
Comparamos los precios delos tres primeros de la lista y observamos que si han cambiado los
precios con un aumento del 25%
los precios anteriores de los tres primeros fueron 18,00 19,00 10,00
los precios actualizados de los tres primeros son 22,5 23,75 12,50
Cerramos la tabla y regresamos a la Vista Diseño de la consulta36.
Ejercicio propuesto.
Cree una consulta de acción para que los precios de los productos regresen a su estado inicial.
Consulta 38
Solución:
Lo vamos a utilizar como Criterio de filtro para que solo se actualicen los productos que
cumplan con esta condición.
Tomemos como muestra que los dos primeros corresponden a la categoría 1 y tres más para
luego hacer la comparación después que se realicen los cambios.
1 1 39
2 1 17
3 2 13
4 2 53
5 2 0
Cerramos la tabla
1 1 39 89
2 1 17 67
3 2 13 13
4 2 53 53
5 2 0 0
Solo cambiaron el Stock los que tiene la categoría 1, el resto sigue igual
Ejercicios propuestos.
Regrese el Stock de los productos al estado inicial. Guarde la consulta de acción como
Consulta39
Normalmente las consultas de selección muestran sus resultados y luego al cerrar la consulta
estos daos desaparecen del espacio temporal donde se ubicaron.
Se podría enviar los resultados de una consulta a una tabla para que se guarden de manera
permanente en la base de datos como una tabla Libre.
Per esta atabla cada vez que la abramos muestra los datos tal y como estaban en el momento
que la creamos; es decir si los datos del origen de datos original (las tablas) cambian esta tabla
libre no se actualizará con esos cambios. Estas tablas se crean generalmente cuando se
quieren guardar valores históricos en un momento dado de la existencia de la Base de datos.
Consulta 40
Crear un Tabla que muestre el total de ventas por categoría para las ventas realizadas durante
el año 1996
Solución:
Creamos una consulta agrupada por categorías. Además, usamos la expresión del subtotal de
venta PrecioUnidad * Cantidad * (1 – Descuento)
Pero como debemos filtrar por año nos ubicamos en tercera columna para establecer este
criterio
Observamos que se necita el dato de la fecha del pedido, luego añadimos la Tabla Pedidos
para poder establecer esta condición.
Si queremos consérvalos y pasar los datos a una tabla permanente, debemos el tipo de esta
consulta a una consulta de creación de tabla.
Ahora tenemos esta ventana que nos pide el nombre de la nueva tabla que va a ser creada con
los resultados de esta consulta escribimos VentasCate1996
Además, elegimos que se guarde en la Base de datos activa (la que estamos usando).
Luego elegimos el botón Aceptar.
Cerramos la consulta
Ahora desde el panel de la izquierda la elegimos e intentamos abrirla. Aparece una ventana de
aviso
Aceptamos eligiendo el botón Si. Aparece otra ventana de aviso indicándonos que se va crear
una tabla con 8 registros. Aceptos eligiendo el botón Si
Estos resultados son históricos si las tablas orinales cambiaran no van a afectar estos
resultados.
Cerrar la tabla.
Ejercicios propuestos.
Crear una Tabla VentasCate1997 que muestre el monto de ventas realizados por categoría,
para las ventas realizadas durante el año de 1997. Guardar la consulta como Consulta41.
Crear una Tabla VentasCate1998 que muestre el monto de ventas realizados por categoría,
para las ventas realizadas durante el año de 1998. Guardar la consulta como Consulta42.