2010-05-12 7 views
1

Quelqu'un peut-il m'aider à convertir la requête SQL suivante en LINQ?LINQ Aide à la requête!

select 
    convert(varchar(10),date,110) as 'Date', 
    max(users) as 'Maximum Number of Users', 
    max(transactions) as 'Maximum Number of Transactions' 
from 
    stats 
where 
    datepart(Year, Date) = '2010' 
group by 
    convert(varchar(10),date,110) 
order by 
    convert(varchar(10),date,110) 

Merci d'avance!

Répondre

0

Il est difficile de dire à partir des informations limitées que vous avez fourni, mais cela pourrait faire le travail:

var results = from stat in db.Stats 
       group stat by stat.Date.Date into statGroup 
       orderby statGroup.Key 
       select new 
       { 
       Date = statGroup.Key, 
       MaximumNumberOfUsers = statGroup.Max(c => c.Users), 
       MaximumNumberOfTransactions = statGroup.Max(c => c.Transactions) 
       }; 
+0

DateTime.ToString() ne sont pas pris en charge dans L2E. Mais je ne pense pas que ce soit vraiment nécessaire ici de toute façon. –

+0

Merci beaucoup pour votre réponse rapide. J'ai couru cette requête dans Linqpad et j'ai obtenu cette erreur: La méthode "System.String ToString (System.String)" n'a pas de traduction supportée par SQL ". Le champ Date contient à la fois la date et l'heure. Je veux grouper seulement par date, pas par le temps. Je ne suis pas sûr de comment cela peut être fait. – rk1962

+0

La version modifiée fonctionne-t-elle (utilisez la propriété Date au lieu de la méthode ToString)? Désolé, je n'ai aucun moyen de tester cela maintenant. –