2013-12-20 57 views
-1

总和SQL列下面是一个示例SQL表:缺失数据条目

Account Date      Balance 
A   2013-12-19 17:01:00.000 500 
B   2013-12-19 17:01:00.000 400 
C   2013-12-19 17:01:00.000 300 
A   2013-12-19 17:02:00.000 200 
C   2013-12-19 17:02:00.000 100 
B   2013-12-19 17:03:00.000 600 
C   2013-12-19 17:03:00.000 700 

我要总结为每分钟所有帐户,并使用最新的入门,如果有一个丢失的条目。结果应该是这样的:

2013-12-19 17:01:00.000 1200 
2013-12-19 17:02:00.000 700 
2013-12-19 17:03:00.000 1500 

有人可以在SQLServer中做到这一点吗?

这件事我已经试过:

var query = (from r in table.AsEnumerable() let eventTime = (DateTime)r[1] group r by new DateTime(eventTime.Year, eventTime.Month, eventTime.Day, eventTime.Hour, eventTime.Minute, eventTime.Second) into g select table.LoadDataRow(new object[] { g.Key, g.Sum(r => (double)r[2])},false)).ToList(); 

如果一个人缺少然而,这不拉的最新记录。

+0

你尝试过什么声明? –

+1

使用[GroupBy](http://technet.microsoft.com/ru-ru/library/ms177673.aspx)和[Sum](http://technet.microsoft.com/ru-ru/library/ms187810.aspx ) – Grundy

+1

你需要使用'GROUP BY'帐户和分钟的日期列和获取余额列:) http://dba.stackexchange.com/questions/17999/group-by-minute-and-two-minute-间隔 – Damith

回答

2

如果你给该表是假设表A,则:

选择日期,SUM(平衡) 从表一 集团按日期

+1

如果你的表格真的叫做'表格A',那么你需要在表格名称周围加上方括号。 '从[表A]组中......' – paqogomez