幫助中找到的LINQ等效於以下SQL查詢:需要的LINQ相當於
select sum(weight) from (
select weight from pers p
join list l on l.persindex= p.persindex
group by p.persindex,weight) a
幫助中找到的LINQ等效於以下SQL查詢:需要的LINQ相當於
select sum(weight) from (
select weight from pers p
join list l on l.persindex= p.persindex
group by p.persindex,weight) a
VB.NET版本
Dim customerList = From p In pers
Group Join l In list On
p.persindex Equals l.persindex
Into joineddata = Group,
TotalOweight = Sum(p.weight)
Select p.persindex, TotalOweight
嘗試:Linquer SQL to LINQ convertion tool:
from p in pers
joins l in list on l.persindex equals p.persindex
group by new {p.persindex,l.weight } into grp
select new { sum = grp.sum(x=>x.weight)}
我在vb.net使用此。它與vb.net不同嗎? – user1451208
下面是我現在正在使用的查詢,它跳過一些值(相同的權重) Double =(從p入行加入l入列表p(「persindex」)等於l(「persindex」)選擇CDbl(p(「 「)))Distinct.Sum() 我試過你查詢但得到錯誤TotalOweight =總和(p.weight) – user1451208
@ user1451208 - 現在我混淆了你真正想要的.........沒有得到你在所有 –
from p in context.pers
join l in context.list on l.persindex equals p.persindex
group by new
{ p.persindex,
l.weight
} into myGroup
select new()
{ Key = myGroup.Key,
GroupSum = myGroup.sum(x=>x.weight)
}
我想這就是你需要:
public int CalcWeight(IEnumerable<Person> pers, IEnumerable<Person> list)
{
return
pers
.Join(list, p=>p.PersIndex, l=>l.PersIndex, (p, l) => new {p.PersIndex, l.Weight})
.GroupBy(a => new {a.PersIndex, a.Weight})
.Sum(group=>group.Key.Weight);
}
數據類人是decalerd這樣的:
public class Person
{
public int PersIndex;
public int Weight;
}
那你試試這麼遠嗎? –
不要忘記標記爲接受,如果你有你想要的信息.. –
我已經更新了我的答案與vb.net版本看看它... –