SQL到LINQ、分组依据和求和
尝试以LINQ的形式编写一个简单的SQL查询 这是SQL:SQL到LINQ、分组依据和求和,sql,linq,group-by,Sql,Linq,Group By,尝试以LINQ的形式编写一个简单的SQL查询 这是SQL: SELECT p.id, p.customer, SUM(pd.total_price) FROM purchases p JOIN purchases_details pd ON p.id = pd.purchase_id GROUP BY pd.purchase_id 到目前为止,我最好的LINQ: var purchases_with_details = from p in db.Purchases
SELECT p.id, p.customer, SUM(pd.total_price)
FROM purchases p JOIN purchases_details pd ON p.id = pd.purchase_id
GROUP BY pd.purchase_id
到目前为止,我最好的LINQ:
var purchases_with_details = from p in db.Purchases
join pd in db.Purchases_details on p.Id equals pd.purchase_id
group pd by pd.purchase_id into pdg
select new { ??? };
问题是我只能在选择新{}
中写入pdg.*
我想写一些类似于{p.id,p.customer,pdg.Sum(o=>o.total_price)}
有人知道怎么做吗?试试:
var purchases_with_details = from pd in db.Purchases_details
group pd by pd.purchase_id into pdg
//join *after* group
join p in db.Purchases on pdg.Key equals p.Id
select new
{
Id = p.Id,
Cust =p.customer,
TotalPrice = pdg.Sum(y => y.total_price)
};
你可以试试这个
var purchases_with_details = from p in db.Purchases
join pd in db.Purchases_details on p.Id equals pd.purchase_id
group pd by pd.purchase_id into pdg
select new {
PurchaseID=pdg.Key.purchase_id,
TOTAL=pdg.Sum(x=>x.total_price)
};
该求和表达式对您不起作用吗?求和表达式起作用,但我无法编写p.*部分(即p.id和p.customer)请尝试pdg.id、pdg.customers,直到获得“名称“p”在当前上下文中不存在”的SQL甚至无效
p.customer
无效,因为您没有将其包括在group by子句中。。。您是否也按该列进行分组?