У меня есть таблица посещаемости со столбцами studentid, atDate и status, которая сохраняет статус только для отсутствующих учащихся. учащиеся без статуса считаются присутствующими на дату регистрации посещаемости.
Мне нужно показать посещаемость студентов. Ниже мой запрос, который успешно генерирует записи о посещаемости за выбранный месяц. проблема в том, что я не могу генерировать дни в выбранном месяце динамически, так как каждый месяц имеет разное количество дней. плюс я хочу показать статус для воскресенья как 'S'
SELECT fkStudentID, [1], [2], [3], [4],[5], [6], [7], [8], [9],
[10], [11], [12], [13], [14],[15], [16], [17], [18], [19],
[20], [21], [22], [23], [24],[25], [26], [27], [28], [29],[30], [31]
FROM(
Select
fkStudentID, Status, DAY(Dated) as [DayValue]
From tblAttendance Where Month(Dated) = Month(@Dated) and Year(Dated) = Year(@Dated) and fkClassID = 1
) AS studAttd
PIVOT
(
MAX(Status)
FOR [DayValue] IN ([1], [2], [3], [4],[5], [6], [7], [8], [9],
[10], [11], [12], [13], [14],[15], [16], [17], [18], [19],
[20], [21], [22], [23], [24],[25], [26], [27], [28], [29],[30], [31])
) AS pvt
Вот мой токовый выход
Вывод My Desired, если значение равно нулю, его следует заменить на статус «P», а если день - на воскресенье, его следует заменить на статус «S»; также должно быть создано количество дней в соответствии с выбранным месяцем даты.