Bonjour,
c'est possible d'avoir la conversion de cette requet sql to Linq :
Code:
1
2
3
4
5
6
7 select * from ( select m.*, row_number() over ( partition by IDDevice order by MessageDate desc) as rn from CANBusData1 m ) m2 where m2.rn = 1;
Merci
Version imprimable
Bonjour,
c'est possible d'avoir la conversion de cette requet sql to Linq :
Code:
1
2
3
4
5
6
7 select * from ( select m.*, row_number() over ( partition by IDDevice order by MessageDate desc) as rn from CANBusData1 m ) m2 where m2.rn = 1;
Merci
Tu veux juste récupérer la ligne la plus récente, c'est ça ? dans ce cas tu peux faire ça :
Code:db.CANBusData1.OrderByDescending(m => m.MessageDate).FirstOrDefault();
Merci,
Oui mais avant je dois les grouper par IDDevice
IDDevice Date
1 dt11
1 dt12
1 dt13
2 dt21
2 dt22
3 dt31
Merci
Excuse moi ya eu un probleme dans les espaces
IDDevice Date
1 ------- dt11
1 -------dt12
1------- dt13
2------- dt21
2------- dt22
3------- dt31
Ah ok, j'avais pas bien compris le PARTITION BY...
Donc tu veux grouper par IDDevice, et prendre le plus récent de chaque groupe ?
Code:
1
2
3
4 from m in db.CANBusData1 orderby m.MessageDate descending group m by m.IDDevice into g select g.First()
Ok merci,
j'ai essayé mais ce la ne marche pas !!
var result = query .... il me renvois aucun résultat !
Merci,
Oui j'ai des données on db.CANBusData1
ya quelque chose qui ne va pas dans la select du group.
group m by m.IDDevice into g
select g.First()
Merci
Si la table n'est pas vide, il est impossible que cette requête ne renvoie rien... Montre le code où tu utilises la requête, le problème doit être ailleurs.
bonjour,
rien de speciale si je fais ce la
Code:
1
2
3
4 var val =(from m in db.CANBusData1 orderby m.MessageDate descending group m by m.IDDevice into g select g.First()).ToList();
je ne trouve rien dan val
et si je fais
Code:var val = (from m in db.CANBusData1 orderby m.MessageDate descending group m by m.IDDevice select m).ToList();
Merci
Bonjour tu as raison
count me retourne 13 record.
la raquette qui fonctionne c'est celle ci .
var val = (from m in db.CANBusData1 orderby m.MessageDate descending select m).ToList()
je pense le problème c'est après le groupement.
Merci
Bah je comprends pas comment c'est possible... j'ai fait un test de mon côté, cette requête renvoie bien les résultats attendus, du moment qu'il y a quelque chose dans la table.
Essaie de regarder la requête SQL qui est générée en faisant ça :
Code:
1
2
3
4
5
6 var query = (ObjectQuery) (from m in db.CANBusData1 orderby m.MessageDate descending group m by m.IDDevice into g select g.First()); string sql = query.ToTraceString();