помочь мне, пожалуйста, с этой простой E-SQL запроса:Entity Sql Group By проблемы, пожалуйста, помогите
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)";
Вот что у меня есть.
У меня есть простой объект, называемый OrdersIncomes
с ID,PaidMoney,DatePaid,Order_ID
свойствами
Я хочу, чтобы выбрать месяц и суммируется PaidMoney как это:
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)
но E-SQL оленьей кожи работы, и я не знаю, что делать. вот мой E-SQL, который нуждается в рефакторинге:
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)";
есть исключение: ErrorDescription = «Идентификатор„о“не является допустимым, поскольку он не содержится ни в статистической функции или в GROUP BY предложения.»
Если я включаю o в группу по предложению, например: FROM XACCModel.OrdersIncomes as o group by o
, то я не получу суммированных и агрегированных результатов. Является ли это ошибкой или что я делаю неправильно?
Вот Linq к Entities запрос и он тоже работает:
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) };
спасибо! . . . . . . . . . – Zviadi