我有一個數據庫表,我將它用作報表的來源。表格佈局看起來像 。表1是較大數據庫表的子集。但報告我只需要某些列所以我用下面基於來自另一列的值在數據表中對列進行求和
Value Description Hours
1 A 2
2 B 3
3 C 5
1 A 3
2 B 4
2 B 3
3 C 3
private DataTable CreateFocusOfEffortData()
{
var dtChartData = new DataTable();
dtChartData.Columns.Add("Description", typeof(string));
dtChartData.Columns.Add("Hours", typeof(Double));
var myDataView = ReportData.DefaultView;
myDataView.RowFilter = "ActivityUnitID = " + _ActivityUnitID;
for (var i = 0; i < myDataView.ToTable().Rows.Count; i++)
{
var dataRow = new Object[dtChartData.Columns.Count];
dataRow[0] = ReportData.Rows[i]["Description"];
dataRow[1] = csaConvert.ToDouble(ReportData.Rows[i]["Hours"]);
dataRow[2] = ReportData.Rows[i]["Value"];
dtChartData.Rows.Add(dataRow);
}
return dtChartData;
}
給出的函數創建一個新的數據表現在,我需要設計從上面的表格彙總數據的另一份報告。這個表應該根據Column [「Value]結合所有列的數據,例如在我的情況下,Value列1,2,3中有三個不同的值,結果表中的所有三個值。
Value Description Hours
1 A 5
2 B 10
3 C 8
現在我可以在SQL中通過創建另一個存儲過程做到這一點,但我寧願用我現有的數據表,寫一個C#函數來得到結果。有沒有一種更簡單的方式來實現這一目標使用LINQ ?
謝謝你的幫助。奇蹟般有效。 –
@Cuong le:它給我什麼我完全搜索.Thanq非常多 – shafi7468