TSQL订单数据根据日期

时间:2012-11-28 18:23:33

标签: sql database tsql

您好,谢谢您的回复。我是TSQL的新手,目前正在实习。 我正在使用VB创建一个网页,我没有问题显示下面第一个表格中的内容 给用户。

----------Name--------------------Date----------------Points

1--------Mike---------------------10/01/2012----------4

2--------Mike---------------------10/05/2012----------2

3--------Mike---------------------10/03/2012----------1

4--------Mike---------------------10/17/2012----------4

5--------Mike---------------------10/24/2012----------4

6--------Simon---------------------11/05/2012--------1

7--------Simon---------------------11/11/2012--------3

8--------Simon---------------------11/20/2012--------4

9--------Simon---------------------11/22/2012--------2

10  Simon   11/27/2012  3

但是,我有一个包含日期和星期的下拉列表,用于对第一个数据进行排序 上面的表格在一天或一周到一周的间隔。

当用户选择以MIN(Date)开始的每周间隔显示数据时输出 表中的每个名称MAX(Date)应该是这样的。我用

SELECT  Name, MIN(Date) AS StartDate, DATEADD(DD, 7, MIN(Date)) AS EndDate, SUM(Points) 

我知道我不应该将EndDate设置为固定点,因为接下来的7天 数据不会显示。

-----Name-------StartDate-------EndDate---------Points

1----Mike-------10/01/2012------10/05/2012----------7

2----Mike-------10/17/2012------10/24/2012----------8

3----Simon-----11/05/2012-----11/11/2012----------4

4----Simon-----11/20/2012-----11/27/2012----------9

任何帮助将不胜感激。我希望我的问题清楚。谢谢!

1 个答案:

答案 0 :(得分:1)

我希望我的问题清楚。

要根据一系列日期获取sql记录,您可以使用BETWEEN运算符

像这样:

SELECT Name, MIN(Date) AS StartDate, MAX(Date) AS EndDate, SUM(Points)
FROM people
WHERE Date between to_date ('2003/01/01', 'yyyy/mm/dd')
AND to_date ('2003/12/31', 'yyyy/mm/dd') 
GROUP BY name
ORDER BY Points;

我希望这很有帮助。