0
 (from item in _dbEntities.Bills
             where item.Year == year
             select item).GroupBy(x => x.MonthID).Sum(x => x.Phone);

1 月のようにすべての公共料金を月単位で合計したいのですが、電気、電話、水道、ガスの 4 つの請求書があります。

4

2 に答える 2

1

これは、各月のすべての請求書の合計を返します (2 つのフィールドMonthIDTotal ):

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 つのフィールド: MonthIDTotalElectricityTotalPhoneTotalWaterTotalGas ):

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)
        }
    );
于 2015-02-21T21:18:43.337 に答える
0

これを試すことができます。:

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、残りはその特定の月のすべてのサービスの合計を保存します。

于 2015-02-21T21:18:01.423 に答える