En este artículo se explica cómo usar consultas de valores superiores y consultas de totales para buscar las fechas más recientes o más tempranas de un conjunto de registros. Esto puede ayudarle a responder a una variedad de preguntas empresariales, como cuando un cliente ha realizado un pedido por última vez o cuáles cinco trimestres han sido los mejores para las ventas, por ciudad.
En este artículo
Información general
Puede clasificar datos y revisar los elementos de mayor jerarquía mediante una consulta de valores superiores. Una consulta de valor superior es una consulta de selección que devuelve un número especificado o un porcentaje de valores de la parte superior de los resultados, por ejemplo, las cinco páginas más populares de un sitio web. Puede usar una consulta de valores superiores con cualquier tipo de valores: no tienen que ser números.
Si desea agrupar o resumir los datos antes de clasificarlo, no tiene que usar una consulta de valores superiores. Por ejemplo, supongamos que necesita buscar los números de ventas de una fecha determinada para cada ciudad en la que opera su empresa. En ese caso, las ciudades se convierten en categorías (necesita buscar los datos por ciudad), por lo que usa una consulta de totales.
Al usar una consulta de valores superiores para buscar registros que contengan las fechas más recientes o más tempranas en una tabla o grupo de registros, puede responder a una variedad de preguntas empresariales, como las siguientes:
-
¿Quién ha estado haciendo más ventas últimamente?
-
¿Cuándo hizo un cliente por última vez un pedido?
-
¿Cuándo están los próximos tres cumpleaños en el equipo?
Para realizar una consulta de valor superior, empiece creando una consulta de selección. A continuación, ordene los datos según su pregunta, tanto si busca la parte superior como la inferior. Si necesita agrupar o resumir los datos, convierta la consulta de selección en una consulta de totales. A continuación, puede usar una función de agregado, como Max o Min para devolver el valor más alto o más bajo, o Primero o Último para devolver la fecha más temprana o más reciente.
En este artículo se presupone que los valores de fecha que usa tienen el tipo de datos Fecha y hora. Si los valores de fecha están en un campo Texto, .
Considere la posibilidad de usar un filtro en lugar de una consulta de valores superiores
Un filtro suele ser mejor si tiene una fecha específica en mente. Para determinar si debe crear una consulta de valores superiores o aplicar un filtro, tenga en cuenta lo siguiente:
-
Si desea devolver todos los registros en los que la fecha coincide, es anterior o posterior a una fecha específica, use un filtro. Por ejemplo, para ver las fechas de ventas entre abril y julio, aplique un filtro.
-
Si desea devolver una cantidad especificada de registros que tienen las fechas más recientes o más recientes de un campo y no conoce los valores de fecha exactos, o que no importan, cree una consulta de valores superiores. Por ejemplo, para ver los cinco mejores trimestres de ventas, use una consulta de valores superiores.
Para obtener más información sobre cómo crear y usar filtros, vea el artículo Aplicar un filtro para ver registros de selección en una base de datos de Access.
Preparar datos de ejemplo para seguirlos junto con los ejemplos
En los pasos de este artículo se usan los datos de las tablas de ejemplo siguientes.
La tabla Empleados
Apellidos |
Nombre |
Dirección |
Ciudad |
Egion de CountryOrR |
Fecha de nacimiento |
Fecha de contratación |
Bernabé |
Josh |
Rodeo de la Cruz 477 |
Caracas |
EE. UU. |
05-feb-1968 |
10-jun-1994 |
Heloo |
Waleed |
Carlos Pellegrini 1263 |
San Cristóbal |
EE. UU. |
22 de mayo de 1957 |
22-Nov-1996 |
Parra |
Guido |
3122 75th Ave. S.W. |
I. de Margarita |
EE. UU. |
11-Nov-1960 |
11-Mar-2000 |
Bagel |
Jean Felipe |
Av. Benavides 4858 |
Lima |
Reino Unido |
22-Mar-1964 |
22-jun-1998 |
Precio |
Julián |
Av. de la Constitución 2222 |
Ciudad de México |
México |
05-Jun-1972 |
05-Ene-2002 |
Hughes |
Christine |
3122 75th St. S. |
Seattle |
EE. UU. |
23-Ene-1970 |
23-abr-1999 |
Riley |
Steve |
Cerrito 333 |
Buenos Aires |
EE. UU. |
14-abr-1964 |
14-Oct-2004 |
Birkby |
Dana |
2 Nosey Pkwy |
Barinas |
EE. UU. |
29-Oct-1959 |
29-mar-1997 |
La tabla EventType
TypeID |
Tipo de evento |
1 |
Lanzamiento del producto |
2 |
Función corporativa |
3 |
Función privada |
4 |
Recaudador de fondos |
5 |
Feria |
6 |
Conferencia |
7 |
Concierto |
8 |
Exhibir |
9 |
Street Fair |
La tabla Compradores
Id. de cliente |
Compañía |
Contacto |
1 |
Contoso, Ltd. Gráfico |
Jonathan Haas |
2 |
Tailspin Toys |
Elena de Adams |
3 |
Fabrikam |
Carol Philips |
4 |
Wingtip Toys |
Lucio Iallo |
5 |
A. Datum |
Mandar Samant |
6 |
Adventure Works |
Brian Burke |
7 |
Instituto de diseño |
Estela jaka |
8 |
Escuela de Bellas Artes |
Milena Duomanova |
La tabla Eventos
EventID |
Tipo de evento |
Clientes |
Fecha del evento |
Precio |
1 |
Lanzamiento del producto |
Contoso, Ltd. |
4/14/2011 |
10.000 $ |
2 |
Función corporativa |
Tailspin Toys |
4/21/2011 |
8.000 $ |
3 |
Feria |
Tailspin Toys |
1/5/2011 |
25.000 $ |
4 |
Exhibir |
Graphic Design Institute |
5/13/2011 |
$4.500 |
5 |
Feria |
Contoso, Ltd. |
5/14/2011 |
55.000 $ |
6 |
Concierto |
Escuela de Bellas Artes |
5/23/2011 |
12 000 $ |
7 |
Lanzamiento del producto |
A. Datum |
6/1/2011 |
15 000 $ |
8 |
Lanzamiento del producto |
Wingtip Toys |
6/18/2011 |
21 000 $ |
9 |
Recaudador de fondos |
Adventure Works |
6/22/2011 |
1.300 $ |
10 |
Conferencia |
Graphic Design Institute |
6/25/2011 |
2.450 $ |
11 |
Conferencia |
Contoso, Ltd. |
04/07/2011 |
3.800 $ |
1,2 |
Street Fair |
Graphic Design Institute |
04/07/2011 |
5.500 € |
Nota: En los pasos de esta sección se presupone que las tablas Clientes y Tipo de evento se encuentran en el lado "uno" de las relaciones uno a varios con la tabla Eventos. En este caso, la tabla Eventos comparte los campos Id. de cliente y Id.tipo. Las consultas de totales descritas en las secciones siguientes no funcionarán sin esas relaciones.
Pegar los datos de ejemplo en hojas de cálculo de Excel
-
Inicie Excel. Se abrirá un libro vacío.
-
Presione MAYÚS+F11 para insertar una hoja de cálculo (necesitará cuatro).
-
Copie los datos de cada tabla de ejemplo en una hoja de cálculo vacía. Incluya los encabezados de columna (la primera fila).
Crear tablas de base de datos a partir de las hojas de cálculo
-
Seleccione los datos de la primera hoja de cálculo, incluidos los encabezados de columna.
-
Haga clic con el botón derecho en el panel de navegación y, a continuación, haga clic en Pegar.
-
Haga clic en Sí para confirmar que la primera fila contiene encabezados de columna.
-
Repita los pasos del 1 al 3 para cada una de las hojas de cálculo restantes.
Buscar la fecha más o menos reciente
En los pasos de esta sección se usan los datos de ejemplo para ilustrar el proceso de creación de una consulta de valores superiores.
Crear una consulta de valores superiores básicos
-
En la pestaña Crear del grupo Consultas, haga clic en Diseño de consulta.
-
Haga doble clic en la tabla Empleados y, a continuación, haga clic en Cerrar.
Si usa los datos de ejemplo, agregue la tabla Empleados a la consulta.
-
Agregue los campos que desea usar en la consulta a la cuadrícula de diseño. Puede hacer doble clic en cada campo o arrastrar y colocar cada campo en una celda en blanco en la fila Campo.
Si usa la tabla de ejemplo, agregue los campos Nombre, Apellidos y Fecha de nacimiento.
-
En el campo que contiene los valores superiores o inferiores (el campo Fecha de nacimiento, si usa la tabla de ejemplo), haga clic en la fila Ordenar y seleccione Ascendente oDescendente.
El criterio de ordenación descendente devuelve la fecha más reciente y el criterio de ordenación ascendente devuelve la fecha más temprana.
Importante: Debe establecer un valor en la fila Ordenar solo para los campos que contienen las fechas. Si especifica un criterio de ordenación para otro campo, la consulta no devuelve los resultados que desee.
-
En la pestaña Diseño, en el grupo Herramientas, haga clic en la flecha abajo situada junto a Todos (la lista Valores principales) y escriba el número de registros que desea ver o seleccione una opción de la lista.
-
Haga clic en para ejecutar la consulta y mostrar los resultados en la vista Hoja de datos.
-
Guarde la consulta como NextBirthDays.
Puede ver que este tipo de consulta de valores superiores puede responder a preguntas básicas, como quién es la persona más antigua o más joven de la compañía. Los pasos siguientes explican cómo usar expresiones y otros criterios para agregar potencia y flexibilidad a la consulta. Los criterios que se muestran en el paso siguiente devuelven los próximos tres cumpleaños de empleados.
Agregar criterios a la consulta
En estos pasos se usa la consulta creada en el procedimiento anterior. Puede seguir junto con una consulta de valores superiores diferente siempre que contenga datos reales de fecha y hora, no valores de texto.
Sugerencia: Si desea comprender mejor cómo funciona esta consulta, cambie entre la vista Diseño y la vista Hoja de datos en cada paso. Si desea ver el código de consulta real, cambie a SQL consulta. Para cambiar entre vistas, haga clic con el botón derecho en la pestaña de la parte superior de la consulta y, a continuación, haga clic en la vista que desee.
-
En el panel de navegación, haga clic con el botón derecho en la consulta NextBirthDays y, a continuación, haga clic en Vista Diseño.
-
En la cuadrícula de diseño de la consulta, en la columna a la derecha de FechaNacido, escriba lo siguiente:
MonthBorn: DatePart("m",[BirthDate]).
Esta expresión extrae el mes de BirthDate mediante la función DatePart. -
En la siguiente columna de la cuadrícula de diseño de la consulta, escriba lo siguiente:
DayOfMonthBorn: DatePart("d",[BirthDate])Esta expresión extrae el día del mes desde BirthDate mediante la
función DatePart. -
Desactive las casillas de la fila Mostrar para cada una de las dos expresiones que acaba de introducir.
-
Haga clic en la fila Ordenar para cada expresión y, a continuación, seleccione Ascendente.
-
En la fila Criterios de la columna Fecha de nacimiento, escriba la siguiente expresión:
Mes([Fecha de nacimiento]) > Mes(Fecha()) O Mes([Fecha de nacimiento])= Mes(Fecha()) Y Día([Fecha])>Día(Fecha())Esta expresión
hace lo siguiente:-
Month( [Birth Date]) > Month(Date()) especifica que la fecha de nacimiento de cada empleado se encuentra en un mes futuro.
-
El Mes([Fecha denacimiento])= Mes(Fecha()) Y Día([Fecha de nacimiento])>Día(Fecha()) especifica que si la fecha de nacimiento se produce en el mes actual, el cumpleaños corresponde al día actual o después de él.
En resumen, esta expresión excluye los registros en los que el cumpleaños se produce entre el 1 de enero y la fecha actual.
Sugerencia: Para obtener más ejemplos de expresiones de criterios de consulta, vea el artículo Ejemplos de criterios de consulta.
-
-
En la pestaña Diseño, en el grupo Configurar consulta, escriba 3 en el cuadro Retorno.
-
En la pestaña Diseño, en el grupo Resultados, haga clic en Ejecutar .
Nota: En su propia consulta con sus propios datos, es posible que a veces vea más registros de los especificados. Si los datos contienen varios registros que comparten un valor que se encuentra entre los valores superiores, la consulta devolverá todos estos registros incluso si significa devolver más registros de los que quería.
Buscar las fechas más o menos recientes para grupos de registros
Use una consulta de totales para buscar las fechas más tempranas o más recientes de los registros que se encuentran en grupos, como eventos agrupados por ciudad. Una consulta de totales es una consulta de selección que usa funciones de agregado (como Agrupar por , Men, Max, Contar, Primeray Última) para calcular valores para cada campo de salida.
Incluya el campo que desea usar para categorías ( para agrupar por ) y el campo con valores que desea resumir. Si incluye otros campos de salida (por ejemplo, los nombres de los clientes al agrupar por tipo de evento), la consulta también usará esos campos para crear grupos, cambiando los resultados para que no respondan a su pregunta original. Para etiquetar las filas con otros campos, cree una consulta adicional que use la consulta de totales como origen y agregue los campos adicionales a esa consulta.
Sugerencia: Crear consultas en pasos es una estrategia muy eficaz para responder a preguntas más avanzadas. Si tiene problemas para que una consulta complicada funcione, considere si podría dividirla en una serie de consultas más sencillas.
Crear una consulta de totales
Este procedimiento usa la tabla de ejemplo Eventos y la tabla de ejemplo EventType para responder a esta pregunta:
¿Cuándo fue el evento más reciente de cada tipo de evento, excluyendo los conciertos?
-
En la pestaña Crear del grupo Consultas, haga clic en Diseño de consulta.
-
Haga doble clic en las tablas Events y EventType.
Cada tabla aparece en la sección superior del diseñador de consultas. -
Haga doble clic en el campo EventType de la tabla EventType y en el campo EventDate de la tabla Eventos para agregar los campos a la cuadrícula de diseño de la consulta.
-
En la cuadrícula de diseño de la consulta, en la fila Criterios del campo EventType, escriba<>Concert.
Sugerencia: Para obtener más ejemplos de expresiones de criterios, vea el artículo Ejemplos de criterios de consulta.
-
En la pestaña Diseño, en el grupo Mostrar u ocultar, haga clic en Totales.
-
En la cuadrícula de diseño de la consulta, haga clic en la fila Total del campo EventDate y, a continuación, haga clic en Máx.
-
En el grupo Resultados de la pestaña Diseño, haga clic en Ver y, después, en Vista SQL.
-
En la SQL, al final de la cláusula SELECT, justo después de la palabra clave AS, reemplace MaxOfEventDate por MostRecent.
-
Guarde la consulta como MostRecentEventByType.
Crear una segunda consulta para agregar más datos
Este procedimiento usa la consulta MostRecentEventByType del procedimiento anterior para responder a esta pregunta:
¿Quién era el cliente en el evento más reciente de cada tipo de evento?
-
En la pestaña Crear del grupo Consultas, haga clic en Diseño de consulta.
-
En la pestaña Consultas, haga doble clic en la consulta MostRecentEventByType.
-
En la pestaña Tablas, haga doble clic en la tabla Eventos y en la tabla Clientes.
-
En el diseñador de consultas, haga doble clic en los siguientes campos:
-
En la tabla Eventos, haga doble clic en Tipo De Evento.
-
En la consulta MostRecentEventByType, haga doble clic en MostRecent.
-
En la tabla Clientes, haga doble clic en Empresa.
-
-
En la cuadrícula de diseño de la consulta, en la fila Ordenar de la columna EventType, seleccione Ascendente.
-
En la pestaña Diseño, en el grupo Resultados, haga clic en Ejecutar.