出席時間をカテゴリ別に合計し、「週」別にグループ化する必要があります。「週」の開始日はその週の月曜日によって定義されますが、日曜日も有効です。カテゴリ値が「芸術」または「体育」にある場合、それらを非教育に組み合わせる必要があります。また、生徒が 120 時間に達した日にフラグを立てる必要もあります。
次のように構成されている私のテーブル:
CREATE TABLE Attendance (
ID int,
Category varchar(20),
Title varchar(20),
Date datetime,
Hours int,
)
INSERT INTO Attendance VALUES
(4504498, 'GED Program', '7/1/2012', 7),
(4504498, 'GED Program', '7/2/2012', 3),
(4504498, 'GED Program', '7/3/2012', 3),
(4504498, 'GED Program', '7/4/2012', 7),
(4504498, 'GED Program', '7/5/2012', 3),
(4504498, 'GED Program', '7/8/2012', 3),
(4504498, 'GED Program', '7/9/2012', 7),
(4504498, 'GED Program', '7/10/2012',7),
(4504498, 'GED Program', '7/11/2012',3),
(4504498, 'GED Program', '7/12/2012',3),
(4504498, 'High School', '7/1/2012', 7),
(4504498, 'High School', '7/2/2012', 3),
(4504498, 'High School', '7/3/2012', 3),
(4504498, 'High School', '7/4/2012', 3),
(4504498, 'High School', '7/5/2012', 3),
(4504498, 'High School', '7/8/2012', 7),
(4504498, 'High School', '7/9/2012', 3),
(4504498, 'High School', '7/10/2012',8),
(4504498, 'High School', '7/11/2012',3),
(4504498, 'High School', '7/12/2012',7),
(9201052, 'Art', '7/15/2012', 6),
(9201052, 'Art', '7/16/2012', 3),
(9201052, 'Art', '7/17/2012', 7),
(9201052, 'PE', '7/17/2012', 7),
(9201052, 'PE', '7/18/2012', 7)
次のような最終結果が必要です。
ID Category Week of Total Hours
4504498 GED Program 7/1/2012 26
4504498 GED Program 7/8/2012 23
4504498 High School 7/1/2012 19
4504498 High School 7/8/2012 28
9201052 Non Educational 7/15/2012 30
ID Day_120_Hours_Reached
356485 6/30/2012
356485 11/15/2012
555666 10/12/2012
555666 2/25/2013
MS Sql Server を使用して日付から「週」を取り出す Week 関数の例を探していましたが、多くの情報が見つかりません。どんなフィードバックでも大歓迎です