親子行を持つリレーショナルテーブルがあります。一部の行にはがありtypeId
、タイプごとの合計コストの概要を取得したいと思います。
左側のリストはいくつかのサンプルデータであり、右側のリストは予想される要約結果です。
データはデータテーブルにあります。誰かがこれで私を助けることができますか?
すなわち:
typeId = 1
:これは次のように計算されます:30(合計コスト3,2)x 5(数量2,1)x 3(数量1、null)
(30 x 5 x 3)= 450
typeId = 2
:これは次のように計算されます:12(合計コスト5,1)x 3(数量1、null)x 15(合計コスト4,2)x 5(数量2,1)x 3(数量1ヌル)
(12 x 3)+(15 x 5 x 3)= 261
ここにいくつかのサンプルコードがあります
DataTable dt = new DataTable( "Summary" );
dt.Columns.Add( "Id", Type.GetType( "System.Int32" ) );
dt.Columns.Add( "ParentId", Type.GetType( "System.Int32" ) );
dt.Columns.Add( "Qty", Type.GetType( "System.Int32" ) );
dt.Columns.Add( "Cost", Type.GetType( "System.Decimal" ) );
dt.Columns.Add( "TotalCost", Type.GetType( "System.Decimal" ) );
dt.Columns.Add( "TypeId", Type.GetType( "System.Int32" ) );
dt.Rows.Clear();
DataRow row = dt.NewRow();
row["Id"] = 1;
row["ParentId"] = DBNull.Value;
row["Qty"] = 3;
row["Cost"] = 237.00;
row["TotalCost"] = 711.00;
row["TypeId"] = DBNull.Value;
dt.Rows.Add( row );
row = dt.NewRow();
row["Id"] = 2;
row["ParentId"] = 1;
row["Qty"] = 5;
row["Cost"] = 45.00;
row["TotalCost"] = 225.00;
row["TypeId"] = DBNull.Value;
dt.Rows.Add( row );
row = dt.NewRow();
row["Id"] = 3;
row["ParentId"] = 2;
row["Qty"] = 30;
row["Cost"] = 1.00;
row["TotalCost"] = 30.00;
row["TypeId"] = 1;
dt.Rows.Add( row );
row = dt.NewRow();
row["Id"] = 4;
row["ParentId"] = 2;
row["Qty"] = 1;
row["Cost"] = 15.00;
row["TotalCost"] = 15.00;
row["TypeId"] = 2;
dt.Rows.Add( row );
row = dt.NewRow();
row["Id"] = 5;
row["ParentId"] = 1;
row["Qty"] = 4;
row["Cost"] = 3.00;
row["TotalCost"] = 12.00;
row["TypeId"] = 2;
dt.Rows.Add( row );