me aider s'il vous plaît avec cette simple requête E-sql:Entité Sql Groupe par problème, s'il vous plaît aider
var qStr = "SELECT SqlServer.Month(o.DatePaid) as month, SqlServer.Sum(o.PaidMoney) as PaidMoney FROM XACCModel.OrdersIncomes as o group by SqlServer.Month(o.DatePaid)";
Voici ce que j'ai.
J'ai simplement entité appelée OrdersIncomes
avec ID,PaidMoney,DatePaid,Order_ID
propriétés
Je veux choisir le mois et Summed PaidMoney comme ceci:
month Paidmoney
1 500
2 700
3 1200
T-SQL looks like this and works fine:
select MONTH(o.DatePaid), SUM(o.PaidMoney)
from OrdersIncomes as o
group by MONTH(o.DatePaid)
results:
-----------
3 31.0000
4 127.0000
5 20.0000
(3 row(s) affected)
mais E-SQL doesnot travail et je ne sais pas quoi faire. ici mon E-SQL qui a besoin refactoring:
var qStr = "SELECT SqlServer.Month(o.DatePaid) as month, SqlServer.Sum(o.PaidMoney) as PaidMoney FROM XACCModel.OrdersIncomes as o group by SqlServer.Month(o.DatePaid)";
il y a une exception: ErrorDescription = « L'identifiant « o » est pas valide car il ne figure pas non plus dans une fonction d'agrégation ou dans la clause GROUP BY. » Si j'inclus o dans la clause group by, par exemple: FROM XACCModel.OrdersIncomes as o group by o
alors je ne reçois pas les résultats cumulés. Est-ce un bug, ou ce que je fais mal?
Voici une requête Linq à des entités et il fonctionne aussi:
var incomeResult = from ic in _context.OrdersIncomes
group ic by ic.DatePaid.Month into gr
select new { Month = gr.Key, PaidMoney = gr.Sum(i => i.PaidMoney) };
merci! . . . . . . . . . – Zviadi