我正在使用大型数据表。我需要做一些过滤来计算某些行的总和值。对于以下代码,它会过滤相同的ID文件并计算总和。我的问题是,如果我想添加一个与IDfile结合的其他条件
for (int i = 0; i < LoadIDcount; i++)
{
string IDnow = LoadID[i, 0];
for (int j = 0; j < 8760; j++)
{
string colPnow = SP_dt.Columns[j * 2 + 4].ColumnName.ToString();
double ColP_sum = (double)SP_dt.Compute(String.Format("Sum([{0}])", colPnow), String.Format("Load_ID = '{0}'", IDnow));
string colQnow = SP_dt.Columns[j * 2 + 5].ColumnName.ToString();
double ColQ_sum = (double)SP_dt.Compute(String.Format("Sum([{0}])", colQnow), String.Format("Load_ID = '{0}'", IDnow));
LoadP_dt.Rows[i][j + 2] = ColP_sum;
LoadQ_dt.Rows[i][j + 2] = ColQ_sum;
Console.WriteLine("{0} {1}", i, j);
}
}
数据表就像:
SP_ID Load_ID CUSTOMER_TYPE Phase 1/1/2015 0:00
1234567 11111111111 DOM ABC 3.8928
2345678 2222222222 DOM ABC 1.9608
3456788 33333333 IND ABC 3.742
23242 4444444444 IND ABC 6.9856
23890583 55555555555 IND ABC 1.0628
我想在计算中添加两个条件来过滤ID和客户类型
答案 0 :(得分:1)
只需将第二个条件添加到过滤器即可。像这样:
double ColP_sum = (double)SP_dt.Compute(String.Format("Sum([{0}])", colPnow), String.Format("Load_ID = '{0}' AND Phase = '{1}'", IDnow, 'ABC'));
Here是Compute方法的文档。