DataTable dtSource = SQLHelp.RunSQLReturnDT("SELECT ID, GAMENAME, CONVERT(char(10), RECORDDT, 120) AS RECORDDT, GAMECOUNT, GAMETIME_H FROM tb_PlatformBaseData where Recorddt>='" + Convert.ToDateTime(startdata).AddDays(lastDays).ToString() + "' and Recorddt<='"
+ Convert.ToDateTime(enddate).ToString() + "'");
DataTable dt = dtSource.Clone();
DataTable dtS = dtSource.DefaultView.ToTable(true, "RECORDDT");
for (int i = 0; i < dtS.Rows.Count; i++)
{
DataRow[] rows = dtSource.Select(string.Format("RECORDDT>='{0}' and RECORDDT<='{0}'", dtS.Rows[i][0]));
DataTable temp = dtSource.Clone();
foreach (DataRow row in rows)
{
temp.Rows.Add(row.ItemArray);
}
DataRow dr = dt.NewRow();
dr["RECORDDT"] = dtS.Rows[i][0].ToString();
dr["GAMECOUNT"] = temp.Compute("sum(GAMECOUNT)", "");
dr["GAMETIME_H"] = temp.Compute("sum(GAMETIME_H)", "");
dt.Rows.Add(dr);
}
DataTable dt = dtSource.Clone();
DataTable dtS = dtSource.DefaultView.ToTable(true, "RECORDDT");
for (int i = 0; i < dtS.Rows.Count; i++)
{
DataRow[] rows = dtSource.Select(string.Format("RECORDDT>='{0}' and RECORDDT<='{0}'", dtS.Rows[i][0]));
DataTable temp = dtSource.Clone();
foreach (DataRow row in rows)
{
temp.Rows.Add(row.ItemArray);
}
DataRow dr = dt.NewRow();
dr["RECORDDT"] = dtS.Rows[i][0].ToString();
dr["GAMECOUNT"] = temp.Compute("sum(GAMECOUNT)", "");
dr["GAMETIME_H"] = temp.Compute("sum(GAMETIME_H)", "");
dt.Rows.Add(dr);
}
本文详细介绍了如何使用SQL查询来筛选特定日期范围内的数据,并通过数据视图和克隆表实现高效的数据聚合,计算游戏计数和游戏时长。重点突出了日期过滤、数据视图创建以及数据聚合计算过程。
3862

被折叠的 条评论
为什么被折叠?



