與陣列查詢我有數組編號= {2,3,4,5,6}凡在LINQ
現在我不得不從表「dtlRecord」,其中此號碼是一個列選擇行。
Number count 2 10 3 23 4 20
所以,我需要的是
select sum(count) from dtlRecord where number in (2,3,4,5,6) group by number
我需要上面的LINQ查詢到SQL
與陣列查詢我有數組編號= {2,3,4,5,6}凡在LINQ
現在我不得不從表「dtlRecord」,其中此號碼是一個列選擇行。
Number count 2 10 3 23 4 20
所以,我需要的是
select sum(count) from dtlRecord where number in (2,3,4,5,6) group by number
我需要上面的LINQ查詢到SQL
如何只使用內部聯接:
int[] numbers = new[] { 2, 3, 4, 5, 6 };
from r in dtlRecord
join number in numbers on r.Number equals number
group r by r.Number into g
select new {
Number = g.Key,
Sum = g.Sum(r => r.Count)
};
或
dtlRecord
.Join(numbers, r => r.Number, number => number, (r, number) => new {r, number})
.GroupBy(arg => arg.r.Number, arg => arg.r)
.Select(g => new
{
Number = g.Key,
Sum = g.Sum(r => r.Count)
});
使用Enumerable.Contains
作者:
int[] numbers = new[] { 2, 3, 4, 5, 6 };
var query = from r in dtlRecords
where numbers.Contains(r.Number)
group r by r.Number into g
select new {
Number = g.Key,
Sum = g.Sum(r => r.Count)
};
foreach(var result in query) {
Console.WriteLine("Number = {0}, Sum = {1}", result.Number, result.Sum);
}
+1因爲我的答案似乎混淆了OP。也許他會用你的榜樣運氣好些。 – 2010-01-27 00:26:54
謝謝大家。解決。 – jvm 2010-01-27 00:31:17
這將涵蓋部分:http://stackoverflow.com/questions/857973 – 2010-01-27 00:23:28