Se aplica a
Access 2010

En este artículo se explica cómo usar las consultas de valores principales y las 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 cuándo un cliente realizó un pedido por última vez, o cuáles cinco trimestres han sido las mejores para ventas, por ciudad.

En este artículo

Información general

Puede clasificar los datos y revisar los elementos de mayor rango mediante una consulta de valores superiores. Una consulta de valor superior es una consulta de selección que devuelve un número especificado o porcentaje de valores desde 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 clasificarlos, no es necesario usar una consulta de valores principales. 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.

Cuando usa una consulta de valores principales para buscar registros que contienen las fechas más recientes o más antiguas en una tabla o grupo de registros, puede responder a una variedad de preguntas empresariales, como las siguientes:

  • ¿Quién ha estado ganando más ventas últimamente?

  • ¿Cuándo realizó por última vez un cliente un pedido?

  • ¿Cuándo son los próximos tres cumpleaños del equipo?

Para crear una consulta de valor superior, empiece por crear una consulta de selección. Después, ordene los datos según su pregunta, tanto si está buscando 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 Máx o Mín 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 supone 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 principales

Un filtro suele ser mejor si tiene en mente una fecha específica. 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 coincide la fecha, 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 en un campo y no conoce los valores de fecha exactos o no son importantes, cree una consulta de valores superiores. Por ejemplo, para ver los cinco mejores trimestres de ventas, use una consulta de valores principales.

Para obtener más información sobre cómo crear y usar filtros, vea el artículo Aplicar un filtro para ver los registros seleccionados en una base de datos de Access.

Principio de página

Preparar datos de ejemplo para seguir los ejemplos

En los pasos de este artículo se usan los datos de las siguientes tablas de ejemplo.

La tabla Empleados   

Apellidos

Nombre

Dirección

Ciudad

Salida CountryOrR

Fecha de nacimiento

Fecha de contratación

Bernabé

Josh

Rodeo de la Cruz 477

Caracas

EE. UU.

05 de febrero de 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 Philippe

Av. Benavides 4858

Lima

Reino Unido

22-mar-1964

22-jun-1998

Precio

Juliano

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 de enero de 1970

23 de abril de 1999

Riley

Steve

Cerrito 333

Buenos Aires

EE. UU.

14 de abril de 1964

14 de octubre de 2004

Birkby

Dana

2 Pkwy nariz

Barinas

EE. UU.

29 de octubre de 1959

29-mar-1997

La tabla EventType   

Id. de tipo

Tipo de evento

1

Lanzamiento de productos

2

Función corporativa

3

Función Privada

4

Recaudación de fondos

5

Feria comercial

6

Conferencia

7

Concierto

8

Exhibir

9

Feria callejera

La tabla Compradores   

Id. de cliente

Compañía

Contacto

1

Contoso, Ltd. Gráfico

Jonathan Haas

2

Tailspin Toys

Ellen Adams

3

Fabrikam

Carol Philips

4

Wingtip Toys

Lucio Iallo

5

A. Datum

Mandar Samant

6

Adventure Works

Brian Burke

7

Design Institute

Jaka Stele

8

School of Fine Art

Milena Duomanova

La tabla Eventos   

EventID

Tipo de evento

Clientes

Fecha del evento

Precio

1

Lanzamiento de productos

Contoso, Ltd.

4/14/2011

10 000 $

2

Función corporativa

Tailspin Toys

4/21/2011

8.000 $

3

Feria comercial

Tailspin Toys

1/5/2011

$25,000

4

Exhibir

Graphic Design Institute

5/13/2011

$4.500

5

Feria comercial

Contoso, Ltd.

5/14/2011

$55,000

6

Concierto

School of Fine Art

5/23/2011

12.000 €

7

Lanzamiento de productos

A. Datum

6/1/2011

15 000 $

8

Lanzamiento de productos

Wingtip Toys

6/18/2011

21.000 €

9

Recaudación 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

Feria callejera

Graphic Design Institute

04/07/2011

5.500 €

Nota: En los pasos descritos en esta sección se supone que las tablas Clientes y Tipo de evento residen en el lado "uno" de las relaciones uno a varios con la tabla Eventos. En este caso, la tabla Events comparte los campos CustomerID y TypeID. Las consultas de totales descritas en las siguientes secciones no funcionarán sin esas relaciones.

Pegar los datos de ejemplo en hojas de cálculo de Excel

  1. Inicie Excel. Se abrirá un libro vacío.

  2. Presione MAYÚS+F11 para insertar una hoja de cálculo (necesitará cuatro).

  3. 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

  1. Seleccione los datos de la primera hoja de cálculo, incluidos los encabezados de columna.

  2. Haga clic con el botón secundario en el panel de navegación y, a continuación, haga clic en Pegar.

  3. Haga clic en para confirmar que la primera fila contiene encabezados de columna.

  4. Repita los pasos 1-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

  1. En el grupo Consultas de la pestaña Crear, haga clic en Diseño de la consulta.

  2. 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.

  3. Agregue los campos que desee 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 de la fila Campo .

    Si usa la tabla de ejemplo, agregue los campos Nombre, Apellidos y Fecha de nacimiento.

  4. 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 o Descendente.

    El criterio de ordenación descendente devuelve la fecha más reciente y el criterio de ordenación ascendente devuelve la primera fecha.

    Importante: Debe establecer un valor en la fila Ordenar solo para los campos que contengan las fechas. Si especifica un criterio de ordenación para otro campo, la consulta no devolverá los resultados que desee.

  5. En la pestaña Diseño , en el grupo Herramientas , haga clic en la flecha abajo situada junto a Todos (la lista Valores superiores ) y escriba el número de registros que desea ver o seleccione una opción de la lista.

  6. Haga clic en Ejecutar Imagen del botónpara ejecutar la consulta y mostrar los resultados en la vista Hoja de datos.

  7. Guarde la consulta como NextBirthDays.

Puede ver que este tipo de consulta de valores principales puede responder preguntas básicas, como quién es la persona más antigua o más joven de la empresa. En los pasos siguientes se explica 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 tres próximos cumpleaños de los empleados.

Agregar criterios a la consulta

En estos pasos se usa la consulta creada en el procedimiento anterior. Puede seguir una consulta de valores superiores diferente siempre que contenga datos de fecha y hora reales, 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 la vista SQL. Para cambiar entre vistas, haga clic con el botón secundario en la pestaña de la parte superior de la consulta y, a continuación, haga clic en la vista que desee.

  1. En el panel de navegación, haga clic con el botón secundario en la consulta NextBirthDays y, a continuación, haga clic en Vista Diseño.

  2. En la cuadrícula de diseño de la consulta, en la columna a la derecha de FechaNacimiento, escriba lo siguiente:MonthBorn: DatePart("m",[BirthDate])).Esta expresión extrae el mes de FechaNacimiento mediante la función ParcFecha .

  3. 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 de BirthDate mediante la función DatePart .

  4. Desactive las casillas de la fila Mostrar para cada una de las dos expresiones que acaba de escribir.

  5. Haga clic en la fila Ordenar para cada expresión y, después, seleccione Ascendente.

  6. En la fila Criterios de la columna Fecha de nacimiento , escriba la siguiente expresión:Mes([Fecha de nacimiento]) > Month(Date()) OR Month([Fecha de nacimiento])= Month(Date()) AND Day([Birth Date])>Day(Date())Esta expresión hace lo siguiente:

    • Month( [Birth Date]) > Month(Date()) especifica que la fecha de nacimiento de cada empleado corresponde a un mes futuro.

    • El Mes([Fecha de nacimiento])= Mes(Fecha()) Y Día([Fecha de nacimiento])>Día(Fecha()) especifica que si la fecha de nacimiento tiene lugar en el mes actual, el cumpleaños corresponde al día actual o posterior al día actual.

      En resumen, esta expresión excluye los registros en los que el cumpleaños tiene lugar 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.

  7. En la pestaña Diseño , en el grupo Configuración de consulta , escriba 3 en el cuadro Retorno .

  8. En la pestaña Diseño, en el grupo Resultados, haga clic en Ejecutar Imagen del botón.

Nota:  En su propia consulta con sus propios datos, es posible que a veces vea más registros de los que ha especificado. Si los datos contienen varios registros que comparten un valor que está entre los valores principales, la consulta devolverá todos esos registros incluso si significa devolver más registros de los que quería.

Principio de página

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 los eventos agrupados por ciudad. Una consulta de totales es una consulta de selección que usa funciones de agregado (como Agrupar por, Men, Máx., Contar, Primero y Último) para calcular valores para cada campo de salida.

Incluya el campo que desea usar para las categorías (por las que agrupar) y el campo con los 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 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 Events 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?

  1. En el grupo Consultas de la pestaña Crear, haga clic en Diseño de la consulta.

  2. Haga doble clic en las tablas Events y EventType. Cada tabla aparece en la sección superior del diseñador de consultas.

  3. Haga doble clic en el campo EventType de la tabla EventType y el campo EventDate de la tabla Events para agregar los campos a la cuadrícula de diseño de la consulta.

  4. En la cuadrícula de diseño de la consulta, en la fila Criterios del campo TipoDe Event, escriba <>Concierto.

    Sugerencia:  Para obtener más ejemplos de expresiones de criterios, vea el artículo Ejemplos de criterios de consulta.

  5. En la pestaña Diseño, en el grupo Mostrar u ocultar, haga clic en Totales.

  6. En la cuadrícula de diseño de la consulta, haga clic en la fila Total del campo FechaDe Event y, a continuación, haga clic en Máx.

  7. En el grupo Resultados de la pestaña Diseño, haga clic en Ver y, después, en Vista SQL.

  8. En la ventana SQL, al final de la cláusula SELECT, justo después de la palabra clave AS, reemplace MaxOfEventDate por MostRecent.

  9. 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 fue el cliente en el evento más reciente de cada tipo de evento?

  1. En el grupo Consultas de la pestaña Crear, haga clic en Diseño de la consulta.

  2. En la pestaña Consultas , haga doble clic en la consulta MostRecentEventByType.

  3. En la pestaña Tablas , haga doble clic en la tabla Eventos y en la tabla Clientes.

  4. En el diseñador de consultas, haga doble clic en los siguientes campos:

    1. En la tabla Eventos, haga doble clic en EventType.

    2. En la consulta MostRecentEventByType, haga doble clic en MostRecent.

    3. En la tabla Clientes, haga doble clic en Compañía.

  5. En la cuadrícula de diseño de la consulta, en la fila Ordenar de la columna TipoDe Event , seleccione Ascendente.

  6. En la pestaña Diseño, en el grupo Resultados, haga clic en Ejecutar.

Principio de página

¿Necesita más ayuda?

¿Quiere más opciones?

Explore las ventajas de las suscripciones, examine los cursos de aprendizaje, aprenda a proteger su dispositivo y mucho más.