c# - ultimo - select fecha mas reciente sql
Cómo seleccionar solo los registros con la fecha más alta en LINQ (5)
Tengo una tabla, ''lasttraces'', con los siguientes campos.
Id, AccountId, Version, DownloadNo, Date
Los datos se ven así:
28092|15240000|1.0.7.1782|2009040004731|2009-01-20 13:10:22.000
28094|61615000|1.0.7.1782|2009040007696|2009-01-20 13:11:38.000
28095|95317000|1.0.7.1782|2009040007695|2009-01-20 13:10:18.000
28101|15240000|1.0.7.1782|2009040004740|2009-01-20 14:10:22.000
28103|61615000|1.0.7.1782|2009040007690|2009-01-20 14:11:38.000
28104|95317000|1.0.7.1782|2009040007710|2009-01-20 14:10:18.000
¿Cómo puedo, en LINQ to SQL , obtener solo la última última ruta de cada AccountId (la que tiene la fecha más alta)?
Aquí hay una manera simple de hacerlo
var lastPlayerControlCommand = this.ObjectContext.PlayerControlCommands
.Where(c => c.PlayerID == player.ID)
.OrderByDescending(t=>t.CreationTime)
.FirstOrDefault();
También eche un vistazo a este gran lugar LINQ - Ejemplos de LINQ a SQL
Podría ser algo así como:
var qry = from t in db.Lasttraces
group t by t.AccountId into g
orderby t.Date
select new { g.AccountId, Date = g.Max(e => e.Date) };
Si quieres el registro completo, aquí hay una forma lambda:
var q = _context
.lasttraces
.GroupBy(s => s.AccountId)
.Select(s => s.OrderByDescending(x => x.Date).FirstOrDefault());
Si solo quiere la última fecha para cada cuenta, debería usar esto:
var q = from n in table
group n by n.AccountId into g
select new {AccountId = g.Key, Date = g.Max(t=>t.Date)};
Si quieres el registro completo:
var q = from n in table
group n by n.AccountId into g
select g.OrderByDescending(t=>t.Date).FirstOrDefault();
Vaya una manera simple de hacer esto: -
Creó una clase para contener la siguiente información
- Nivel (número)
- Url (URL del sitio)
Vaya a la lista de sitios almacenados en un objeto ArrayList. Y se ejecuta la siguiente consulta para ordenarlo en orden descendente por nivel.
var query = from MyClass object in objCollection
orderby object.Level descending
select object
Una vez que obtuve la colección ordenada en orden descendente, escribí el siguiente código para obtener el objeto que se encuentra en la fila superior
MyClass topObject = query.FirstRow<MyClass>()
Esto funcionó como el encanto.