2012-07-23 87 views
0

我想计算表中的数据,其中包含日期和数据..表中有很多数据。示例如下:根据月份计算并汇总表中的数据

DATE  hour data1 data2 
------------------------------- 
01/01/2010 1 10860 1234  
01/01/2010 2 10861 1234  
01/01/2010 3 10862 1234  
01/01/2010 4 10863 567 
01/01/2010 5 10864 458  
02/01/2010 1 10865 3467  
02/01/2010 2 10866 7890  
02/01/2010 3 10867 863  
02/01/2010 4 10868 0  
02/01/2010 5 10868 698 
03/01/2010 1 10868 4693 
03/01/2010 2 10868 7853 
03/01/2010 3 10868 5987 

并从上面的数据。我想计算它变成像这样的表:

DATE   sdata1 sdata2 
------------------------------- 
01/01/2010  54310 4727  
02/01/2010  54334 12918  
03/01/2010  32604 18533 

的sdata1和sdata2是计算出的数据的总和......有没有什么办法,我计算数据转换成上述数据显示?谢谢你......嘿嘿...

+1

请问'DATE'列总是在每个月的第一天? – 2012-07-23 07:24:38

+0

这些日期是美式还是欧式? – podiluska 2012-07-23 07:35:58

+0

承担这个新的线程来看看 http://stackoverflow.com/questions/11645576/sum-up-the-data-from-today-specific-data-to-the-next-day-data-剩下的 – newbieHQ 2012-07-25 08:28:00

回答

3
SELECT DATE, SUM(data1) AS sdata1, SUM(data2) AS sdata2 FROM table1 GROUP BY DATE; 

试试这个,让我知道如果这就是你要找的。如果你需要一个范围,你也可以在startDate和endDate之间使用WHERE DATE BETWEEN。


,如果你想在另一个表这个数据做“东西”与另一个技巧,将是:

CREATE TABLE table2 (SELECT DATE, SUM(data1) AS sdata1, SUM(data2) AS sdata2 FROM table1 GROUP BY DATE); 

这将执行上面的查询,但创建一个新表的结果。我不知道为什么你可能需要这样做,但有时会解除规范并在桌面上显示计算信息以加快显示速度,这可能会加速您的应用程序。


如果你有一个表已经那么你可以做到以下几点:

INSERT INTO table2 (DATE, sdata1, sdata2) VALUES (SELECT DATE, SUM(data1) AS sdata1, SUM(data2) AS sdata2 FROM table1 GROUP BY DATE); 
+0

增加了另一个可能对你有用的“技巧”。 – 2012-07-23 07:56:49

+0

guys ..看看这个新线程 http://stackoverflow.com/questions/11645576/sum-up-the-data-from-today-specific-data-to-the-next-day-data-和在休息-的个 – newbieHQ 2012-07-25 08:28:48