0

您好,感谢您提前回复。我是 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

任何帮助都感激不尽。我希望我的问题很清楚。谢谢!

4

1 回答 1

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;

我希望这可以帮到你。

于 2012-11-28T18:32:41.170 回答