日期:2014-05-17  浏览次数:20539 次

对取款机的数据统计问题
本帖最后由 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();