データセットに2つのデータセットがあります。 1つの表には、「コストタイプ」というリストがあります。 IDと説明フィールドだけです。LINQと2つのデータセット
もう1つのデータテーブルはマスタテーブルであり、多数のレコードを持ち、そのうちの1つがコストタイプです。このデータテーブルで参照されていないコストタイプがあります。このデータベースにはコストという別の列があります。
私がしようとしているのは、費用の合計でコストタイプ別の要約を得ることです。しかし、私はすべてのコストタイプがマスタテーブルにない任意の値がゼロになることを記載したい。
CostTypeテーブル
Id, Description
1,Marketing
2,Sales
3,Production
4,Service
Master table
Id, Cost, CostTypeId
1,10,1
2,120,1
3,40,3
だから私はdatableで結果を見たいのですが(可能ならば)私はDataGridViewのにため
Marketing 130
Sales 0
Production 40
Service 0
感謝をバインドすることができます誰も助けてください、これは私が答えから思いついたものです - 誰でも改善を提案できますか?
また、クエリ1の結果をデータテーブルに変換する方法はありますか?
var query1 =
from rowCT in costTypes.AsEnumerable()
from rowSTD in stdRates.AsEnumerable()
.Where(d => d.Field<int?>("CostTypeId") == rowCT.Field<int?>("CostTypeId"))
.DefaultIfEmpty()
group new { row0 = rowCT, row1 = rowSTD }
by rowCT.Field<string>("Description") into g
select new
{
g.Key,
Cost = g.Sum(x => x.row1 == null ? 0 : x.row1.Field<decimal>("Cost")),
TotalCost = g.Sum(x => x.row1 == null ? 0 : x.row1.Field<decimal>("TotalCost")),
TotalHours = g.Sum(x => x.row1 == null ? 0 : x.row1.Field<decimal>("TotalHours")),
TotalLabourCost = g.Sum(x => x.row1 == null ? 0 : x.row1.Field<decimal>("TotalLabourCost"))
}
;
私の答えでは、結果として「DataTable」をどのように作成できるかを示すコードがあります。 –