每天收入总和,每天最后30天

时间:2014-05-16 00:27:47

标签: sql

我有一张简单的桌子。

 Date | Revenue
 5/1    12
 5/2    25
 5/3    93
 .
 .
 11/15  47

我正在尝试编写一个返回两列的查询。第一列是日期,每天,与原始表一样。第二列是30天收入,它是过去30天内原始表格中“收入”列的总和,以显示的日期结束。总结时有很多重叠。提前谢谢!

3 个答案:

答案 0 :(得分:1)

我有另一种解决方案(假设您的表名为revenue_table):

SELECT a.Date, SUM(b.Revenue)
FROM revenue_table a, revenue_table b
WHERE b.Date <= a.Date AND b.Date > a.Date - 30
GROUP BY a.Date;

答案 1 :(得分:0)

您可以使用subqueries执行此操作。 E.g。

SELECT outer.date, (SELECT SUM(inner.revenue) 
                    FROM table inner 
                    WHERE inner.date > outer.date-30) AS thirtydayrevenue
FROM table outer

答案 2 :(得分:0)

SELECT table1.Date, table1.Revenue, Past30DayRevenue = SUM(table2.Revenue)
FROM    insert_your_table_name_here table1
        JOIN insert_your_table_name_here table2 ON DATEDIFF(day, table2.Date, table1.Date) BETWEEN 0 AND 29
GROUP BY table1.Date, table1.Revenue
ORDER BY table1.Date;