首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

对取款机的数据统计有关问题

2013-10-11 
对取款机的数据统计问题本帖最后由 payp1016 于 2013-10-07 17:05:11 编辑假设有表字段 ATM表 有字段ATM编

对取款机的数据统计问题
本帖最后由 payp1016 于 2013-10-07 17:05:11 编辑 假设有表字段 ATM表 有字段ATM编号,金额  ,插入时间
 上午导入一次,下午导入一次
数据为
ATM编号  金额  插入时间为
test1    10    2013-10-07 08:00
test2    20    2013-10-07 08:00
tstt1    10    2013-10-07 14:00
test2    12    2013-10-07 14:00
tstt1    10    2013-10-08 08:00
test2    5    2013-10-08 08:00

那么test1数据连续3次都是10万,很明显这个机子不正常。就是把这种记录给统计出来。
[解决办法]
这不是很简单嘛,这就是普通的查询,加上一点点判断而已。比如说:

public class ResultType
{
    public string ATM;
    public DateTime dt;
    public decimal money;
}

public IEnumerable<ResultType> Search()
{
    using (var db = new SqlCeConnection(engine.LocalConnectionString))
    {
        db.Open();
        var cmd = db.CreateCommand();
        cmd.CommandText = "select * from yourTable order by ATM编号,插入时间";
        var row = cmd.ExecuteReader();
        var founds = new List<ResultType>();
        while (row.Read())
        {
            var obj = new ResultType
            {
                ATM = (string)row["ATM编号"],
                dt = (DateTime)row["插入时间"],
                money = (decimal)row["金额"]
            };
            if (founds.Count > 0)
            {
                var last = founds.Last();
                if (obj.ATM != last.ATM 
[解决办法]
 obj.money != last.money)      //如果当前行与上一行并不重复
                    founds.Clear();
            }
            founds.Add(obj);
            if (founds.Count >= 3)  //最近3条记录(或者更多条记录)的ATM编号和金额都是重复的
                yield return obj;
        };
    }
}

热点排行