SQL / Access 2010 - Grupo por nombre y datos de filtrado -- sql campo con ms-access campo con filter campo con group-by camp Relacionados El problema

SQL/Access 2010 - Group by Name and filtering data


0
vote

problema

Español

Tengo la siguiente tabla como ejemplo en MS Access 2010. Necesito filtrar la tabla para que solo haya una fila para cada nombre.

El criterio es que la fecha debe ser más reciente pero a más tardar la fecha de hoy (6 de abril).

  MessageSource0  

Este es el resultado que estoy buscando para obtener.

  MessageSource1  

Mi problema ha estado tratando de filtrar estos datos mientras agrupamos los nombres.

Original en ingles

I have the following table as an example in MS Access 2010. I need to filter the table so there is only one row for each Name.

The criteria is that the Date must be most recent BUT no later than today's date (6th April).

Name   Date        Team John   04/04/2018  A John   02/02/2018  B James  10/10/2018  A James  03/03/2018  C Matt   08/09/2018  D 

This is the result I'm looking to get.

Name   Date        Team John   04/04/2018  A James  03/03/2018  C 

My problem has been trying to filter this data while grouping the Names.

           
     
     

Lista de respuestas

3
 
vote
vote
La mejor respuesta
 

Intenta por debajo de la consulta. Utiliza una subconsía correlacionada, y filtra las filas que no tienen la fecha máxima:

  id9  
 

Try below query. It uses a correlated subquery, and filters out rows who don't have the max date:

SELECT *   FROM table1 t  WHERE t.Date = (SELECT MAX(s.date)                      FROM table1 s                     WHERE t.Name = s.Name                       AND s.Date <= Date()) 
 
 
 
 
0
 
vote

¿Qué tal si se utiliza una subconsulta para obtener los primeros criterios se reunieron (todas las fechas y lt; = hoy, y luego elige el máximo y agruparlos después)

  SELECT Student, Max(Date) AS MaxDate, First(Team) AS FirstOfTeam FROM (SELECT tbl_name.Student, Date, Team FROM tbl_name where Date <= Date())  GROUP BY Student;   

Suponiendo que desea agrupar los equipos por primera vez, como usted, después de la fecha más reciente, no debería importar, ya que estoy asumiendo que no tendrá la misma entrada de fecha para una persona en diferentes equipos.

Si este es un supuesto incorrecto, házmelo saberlo!

Si quisiste obtener los nombres de los equipos ordenados con DlookUp, puedes probar esto

  SELECT Student, Max(Date) AS MaxDate, First(TeamID) AS FirstOfTeam FROM (SELECT tbl_name.Student, tbl_name.Date, DLookUp("[TEAM]","TBL_TEAM","TeamID='" & Team & "'") AS TeamID FROM tbl_name WHERE (((tbl_name.[Date])<=Date()))) GROUP BY Student;   
 

How about using a subquery to get the first criteria met (all dates <= today, and then pick the max and group them after)

SELECT Student, Max(Date) AS MaxDate, First(Team) AS FirstOfTeam FROM (SELECT tbl_name.Student, Date, Team FROM tbl_name where Date <= Date())  GROUP BY Student; 

Assuming you want to group teams by the first - As you are after the most recent date it shouldn't matter, as im assuming you wont have the same date entry for a person on different teams.

If this is an incorrect assumption let me know!

If you wanted to get the team names sorted with DLookup you can try this

SELECT Student, Max(Date) AS MaxDate, First(TeamID) AS FirstOfTeam FROM (SELECT tbl_name.Student, tbl_name.Date, DLookUp("[TEAM]","TBL_TEAM","TeamID='" & Team & "'") AS TeamID FROM tbl_name WHERE (((tbl_name.[Date])<=Date()))) GROUP BY Student; 
 
 
       
       

Relacionados problema

1  Cómo salirse con el campo que no se agrupa en tener cláusula  ( How to get away with non grouping field in having clause ) 
Cuando se ejecuta en el modo only_full_group_full_group_by , obtengo el error "El campo no agrupado 'distancia' se usa en Tener cláusula" cuando se ejecuta...

0  "Indexación" (también conocido como mantener una tabla de) datos agregados en SQL Server 2005  ( Indexing aka maintaining a table of aggregate data in sql server 2005 ) 
Tengo una tabla que mantiene los datos de rendimiento de un sistema, cada registro es una llamada realizada con un método importante y consiste en el nombre d...

0  ¿Cómo puedo obtener las identificaciones de las filas que conforman un grupo por ... habiendo consultado?  ( How can i get the ids of the rows that make up a group by having query ) 
Tengo la siguiente consulta que busca transacciones que se cancelan del mismo cliente (algunas transacciones son negativas). SELECT c, ABS(r) magnitude, SU...

85  ¿El orden de las columnas importan en un grupo por cláusula?  ( Does the order of columns matter in a group by clause ) 
Si tengo dos columnas, una con cardinalidad muy alta y una con cardinalidad muy baja (# de valores únicos), ¿importa en qué orden en el que agrupo? Aquí hay...

1  Grupo de Oracle por y el conjunto resultante vacío  ( Oracle group by and the empty resulting set ) 
Tengo el siguiente problema de SQL. Escenario: Tengo dos mesas: CAMBIO Y CANKETICKET. Hay una relación 1: N. Un cambio tiene cero o muchos cambios. Ningún...

1  El conteo MySQL de las dos columnas agrupadas  ( Mysql count of the grouped two columns ) 
Tengo este user_logs Tabla: user_id | operation | table --------+-----------+----------- 1 | create | restaurant 1 | create | restauran...

2  MySQL - obtener suma () Agrupada Max () del Grupo  ( Mysql get sum grouped max of group ) 
Tengo estructura de mesa como a continuación. Cada fila es un juego jugado, cada persona puede jugar muchas o ninguna veces en cada mes. ID | persona | Punt...

33  ¿Cómo uso el grupo T-SQL por  ( How do i use t sql group by ) 
Sé que tengo que tener (aunque no sé por qué) una cláusula GROUP BY en el extremo de una consulta de SQL que utiliza cualquier función agregada como count ...

1  Lista de C # - grupo por - sin linq  ( C sharp list group by without linq ) 
Tengo un objeto: IObject { string Account, decimal Amount } ¿Cómo se agrupo por cuenta y suma la cantidad, devolviendo una lista sin LINQ? 2....

7  SQL Server: Solo Última entrada en grupo por  ( Sql server only last entry in group by ) 
Tengo la siguiente tabla en MSSQL2005 id | business_key | result 1 | 1 | 0 2 | 1 | 1 3 | 2 | 1 4 | 3 | 1 5 | 4 | 1 6 | 4 | 0 y ahora quiero agrupar en ...




© 2022 respuesta.top Reservados todos los derechos. Centro de preguntas y respuestas reservados todos los derechos