(from item in _dbEntities.Bills
where item.Year == year
select item).GroupBy(x => x.MonthID).Sum(x => x.Phone);
1 月のようにすべての公共料金を月単位で合計したいのですが、電気、電話、水道、ガスの 4 つの請求書があります。
(from item in _dbEntities.Bills
where item.Year == year
select item).GroupBy(x => x.MonthID).Sum(x => x.Phone);
1 月のようにすべての公共料金を月単位で合計したいのですが、電気、電話、水道、ガスの 4 つの請求書があります。
これは、各月のすべての請求書の合計を返します (2 つのフィールドMonthID、Total ):
var result = items.Where(b => b.Year == year)
.Select(b => new { b.MonthID, Total = b.Electricity + b.Gas + b.Phone + b.Water })
.GroupBy(b => b.MonthID)
.Select(g => new { MonthID = g.Key, Total = g.Sum(i => i.Total) });
そして、これは各月の各請求書の合計を返します (5 つのフィールド: MonthID、TotalElectricity、TotalPhone、TotalWater、TotalGas ):
var result = items.Where(b => b.Year == year)
.GroupBy(b => b.MonthID)
.Select(
g => new {
MonthID = g.Key,
TotalElectricity = g.Sum(b => b.Electricity),
TotalPhone = g.Sum(b => b.Phone),
TotalWater = g.Sum(b => b.Water),
TotalGas = g.Sum(b => b.Gas)
}
);
これを試すことができます。:
var result= _dbEntities.Bills.Where(b => b.Year == year)
.GroupBy(b => b.MonthId)
.Select(g=> new { MonthId=g.Key,
Phone=g.Sum(b=>b.Phone),
Water = g.Sum(b => b.Water),
Gas = g.Sum(b => b.Gas),
Electricity = g.Sum(b => b.Electricity)
}).ToList();
結果を 5 つのプロパティを持つ匿名型に保存します。最初のプロパティは を保存しMonthId
、残りはその特定の月のすべてのサービスの合計を保存します。