0

こんにちは、事前にご回答いただきありがとうございます。私は TSQL を初めて使用し、現在インターンシップに参加しています。VB を使用して Web ページを作成していますが、下の最初の表の内容をユーザーに表示するのに問題はありません。

----------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

ただし、上記の最初のテーブルのデータを日ごとまたは週ごとに並べ替える日と週のドロップダウンリストがあります。

ユーザーがテーブル内の各 NameのMIN(Date)to から始まる週間隔でデータを表示することを選択した場合の出力は、次のようになります。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 に答える