2015-12-29 2 views
0

это мой стол, который у меня есть. здесь у меня есть участие студентов, относящихся к одному разделу. ежедневное посещение одного года.ежемесячное посещение каждого студента

student_name  id  attendance  dates 
-------------------------------------------------------------------- 
    abc    1   p    2015-12-29 11:58:29.143 
    def    2   a    2015-12-28 11:58:29.143 
    ghk    3   p    2015-12-27 11:58:29.143 

--------------------------------------------------------------------- 

здесь моя потребность напечатать как следующий

student_name id month 1 2 3 4 5 6 7 8 9 10....31 
------------------------------------------------------------ 
abc   1 jan  p f p p p p p p............... 
pqr   2 feb  p p p p p p p p ........... 

, пожалуйста, помогите мне, чтобы написать сценарий, как это. я должен напечатать ежемесячно посещаемость каждого студента каждый месяц

+0

я все еще пытаюсь занять дни 1 до 31 как столбцы –

+0

я думал, что поворот только помогает моему желанию плодотворно –

ответ

1

Вы можете использовать следующий SQL-запрос, чтобы получить выход в формате, который вы просили:

SELECT * FROM(
SELECT [Name] 
    ,[Id] 
    ,[attendance] 
    ,DATENAME(M, [date])as [MonthValue] 
    ,DAY([date]) as [DayValue] 
FROM [students]) as stud 
PIVOT 
(
MAX([attendance]) 
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]) 
) AS PivotTable; 
+0

поблагодарить u так много. его правильная работа –