【发布时间】:2010-04-04 15:46:24
【问题描述】:
请帮我用这个简单的 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)";
这就是我所拥有的。
我有一个名为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 = "标识符 'o' 无效,因为它既没有包含在聚合函数中,也没有包含在 GROUP BY 子句中。"
如果我在 group by 子句中包含 o,例如:FROM XACCModel.OrdersIncomes as o group by o
然后我没有得到汇总和汇总的结果。
这是一个错误,还是我做错了什么?
这是一个 Linq to 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) };
【问题讨论】:
标签: c# group-by entity-sql