库D中表A : 设备状态表
字段:
{
mineid --区域id
…
}
数据:
{
1,1,1,2,2
}
库C中表B : 区域表
字段:
{
minecode --区域ID
area --区域名称
…
}
数据:
{
1 河南 ,2 北京
}
库D表A中筛选出来如下数据
{1,1,1,2,2}
而我想要的是以下的格式:
河南(3),北京(2)数字代表的个数,下边的代码块中就是处理方法
var area = ""; //定义一个保存输出的字段
datatable dt = new datatable(); //假设dt就是筛选出来的来自库D中的数据
var query = from t in 库D中查询出来的.AsEnumerable()
group t by new { t1 = t.Field("mineid") } into m
select new
{
MineID = m.Key.t1,
count = m.Count()
};
area = "'("; //这里开始拼接字符串
foreach (var q in query) //遍历循环分组统计出来的数据
{
string sql = "select area from (库C) where mineCode = '" + q.MineID + "'"; //拼接sql语句
DataTable dtS;
using (MAction action = new MAction(sql, conStrBase))
{
dtS = action.Select();
area += "" + dtS.Rows[0]["area"] + "(" + q.count + "),"; //拼接省份+个数
}
}
if (area.Length > 2)
area = area.Substring(0, area.Length - 1) + ")'"; //拼接结尾字符串
else
area = "''";
最后输出出来的结果就是 河南(3),北京(2) 这种



