DataTable drt = new DataTable();
//整理-求和
if (newdt != null && newdt.Rows.Count > 0)
{
DataView dv = new DataView(newdt);
distinctTable = dv.ToTable(true, "category");
}
//日期
DataTable distinctTable_ = null;
if (newdt != null && newdt.Rows.Count > 0)
{
DataView dv = new DataView(newdt);
distinctTable_ = dv.ToTable(true, "yearmonth");
}
//重新定义DataTable-接收转换转换的值
DataTable newdt_ = new DataTable();
newdt_.Columns.Add("category", typeof(string));
newdt_.Columns.Add("yearmonth", typeof(string));
newdt_.Columns.Add("value", typeof(int));
DataRow drr = newdt_.NewRow();
//日期区间大于1
if (distinctTable_.Rows.Count > 1)
{
DataRow[] dr_ = newdt.Select("yearmonth='" + distinctTable_.Rows[jz]["yearmonth"].ToString() + "' ");
{
DataRow[] dr = newdt.Select("category='" + distinctTable.Rows[j]["category"].ToString() + "' ");
int td = 0;
drr = newdt_.NewRow();
for (int i = 0; i < dr.Length; i++)
{
int df = Convert.ToInt32(dr[i]["value"].ToString());
td += Convert.ToInt32(dr[i]["value"].ToString());
}
}
drr["category"] = distinctTable.Rows[j]["category"];
drr["yearmonth"] = ym;
drr["value"] = td;
newdt_.Rows.Add(drr);
}
}
drt = newdt_;
}
else //当日期区间为1
{
DataRow[] dr = newdt.Select("category='" + distinctTable.Rows[j]["category"].ToString() + "' ");
drr = newdt_.NewRow();
int sd = 0;
for (int i = 0; i < dr.Length; i++)
{
int df = Convert.ToInt32(dr[i]["value"].ToString());
sd += Convert.ToInt32(dr[i]["value"].ToString());
}
drr["category"] = distinctTable.Rows[j]["category"];
drr["yearmonth"] = distinctTable_.Rows[0]["yearmonth"];//日期固定
drr["value"] = sd;
newdt_.Rows.Add(drr);
}
drt = newdt_;
}
//整理-求和
//利用原有基础表的数据进行整合操作
//厂家
if (newdt != null && newdt.Rows.Count > 0)
{
DataView dv = new DataView(newdt);
distinctTable = dv.ToTable(true, "category");
}
//日期
DataTable distinctTable_ = null;
if (newdt != null && newdt.Rows.Count > 0)
{
DataView dv = new DataView(newdt);
distinctTable_ = dv.ToTable(true, "yearmonth");
}
//重新定义DataTable-接收转换转换的值
DataTable newdt_ = new DataTable();
newdt_.Columns.Add("category", typeof(string));
newdt_.Columns.Add("yearmonth", typeof(string));
newdt_.Columns.Add("value", typeof(int));
DataRow drr = newdt_.NewRow();
//日期区间大于1
if (distinctTable_.Rows.Count > 1)
{
//日期
for (int jz = 0; jz < distinctTable_.Rows.Count; jz++){
DataRow[] dr_ = newdt.Select("yearmonth='" + distinctTable_.Rows[jz]["yearmonth"].ToString() + "' ");
string ym = dr_[jz]["yearmonth"].ToString();
//厂家
for (int j = 0; j < distinctTable.Rows.Count; j++){
DataRow[] dr = newdt.Select("category='" + distinctTable.Rows[j]["category"].ToString() + "' ");
int td = 0;
drr = newdt_.NewRow();
for (int i = 0; i < dr.Length; i++)
{
//日期-厂家=相同的情况下值相加
if (distinctTable_.Rows[jz]["yearmonth"].ToString() == dr[i]["yearmonth"].ToString()){
int df = Convert.ToInt32(dr[i]["value"].ToString());
td += Convert.ToInt32(dr[i]["value"].ToString());
}
}
drr["category"] = distinctTable.Rows[j]["category"];
drr["yearmonth"] = ym;
drr["value"] = td;
newdt_.Rows.Add(drr);
}
}
drt = newdt_;
}
else //当日期区间为1
{
//厂家
for (int j = 0; j < distinctTable.Rows.Count; j++){
DataRow[] dr = newdt.Select("category='" + distinctTable.Rows[j]["category"].ToString() + "' ");
drr = newdt_.NewRow();
int sd = 0;
for (int i = 0; i < dr.Length; i++)
{
int df = Convert.ToInt32(dr[i]["value"].ToString());
sd += Convert.ToInt32(dr[i]["value"].ToString());
}
drr["category"] = distinctTable.Rows[j]["category"];
drr["yearmonth"] = distinctTable_.Rows[0]["yearmonth"];//日期固定
drr["value"] = sd;
newdt_.Rows.Add(drr);
}
drt = newdt_;
}