62,041
社区成员
发帖
与我相关
我的任务
分享
[Test]
public void DataSetTest()
{
DataTable dt = new DataTable();
dt.TableName = "aa";
// cat_id gdp_id qty
//1 2 3
//1 2 4
//1 2 5
//2 1 1
//2 1 2
dt.Columns.Add("cat_id");
dt.Columns.Add("gdp_id");
dt.Columns.Add("qty");
DataRow dr = dt.NewRow();
dr[0] = 1;
dr[1] = 2;
dr[2] = 3;
dt.Rows.Add(dr);
dr = dt.NewRow();
dr[0] = 1;
dr[1] = 2;
dr[2] = 4;
dt.Rows.Add(dr);
dr = dt.NewRow();
dr[0] = 1;
dr[1] = 2;
dr[2] = 5;
dt.Rows.Add(dr);
dr = dt.NewRow();
dr[0] = 2;
dr[1] = 1;
dr[2] = 1;
dt.Rows.Add(dr);
dr = dt.NewRow();
dr[0] = 2;
dr[1] = 1;
dr[2] = 2;
dt.Rows.Add(dr);
DataSetHelper ds = new DataSetHelper();
DataTable outdt = ds.SelectGroupByInto("aa", dt, "cat_id,gdp_id,sum(qty) sumqty", "cat_id>0", "cat_id,gdp_id");
Console.WriteLine(outdt.Columns[0] + " " + outdt.Columns[1] + " " + outdt.Columns[2]);
foreach (DataRow tdr in outdt.Rows)
{
Console.WriteLine(dr[0]+" "+ tdr[1]+" "+ tdr[2]);
}
}
DataTable dt = new DataTable();
dt.Columns.AddRange(new DataColumn[] { new DataColumn("cat_id"), new DataColumn("gdp_id"), new DataColumn("qty") });
dt.Rows.Add(1, 2, 3);
dt.Rows.Add(1, 2, 4);
dt.Rows.Add(1, 2, 5);
dt.Rows.Add(2, 1, 1);
dt.Rows.Add(2, 1, 2);
DataTable dtResult = new DataTable();
foreach (DataColumn dc in dt.Columns)
dtResult.Columns.Add(new DataColumn(dc.ColumnName));
var rows = dt.Rows.Cast<DataRow>();
var result = from row in rows group row by new { cat_id = row["cat_id"], gdp_id = row["gdp_id"] } into g select new { g.Key.cat_id, g.Key.gdp_id, qty = g.Average(r => Convert.ToInt32(r["qty"])) };
foreach (var r in result)
dtResult.Rows.Add(r.cat_id, r.gdp_id, r.qty);