Click here to Skip to main content
15,884,092 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
SQL
declare @day  int
   set @day = 2

   declare @days varchar(8000)
   set @days = '[1]'
   -- Declare final column names for Pivot 
   Declare @columnsday NVARCHAR(MAX)
  set @columnsday = 'isnull(cast([1] as varchar(10)),'''') as [1]'
   WHILE (@day <= 31)
   BEGIN
       set @days = @days + ', ' + quotename(convert(varchar, @day)) 
       set @columnsday = @columnsday + ',ISNULL(cast(' + quotename(convert(varchar, @day)) + ' as varchar(10)) ,'''') as '+ quotename(convert(varchar, @day))
      set @day  = @day + 1
       --print @days   
   END
   --print @days 
   --print @columnsday

   DECLARE @query varchar(8000)  
   set @query = 'SELECT (StudentCode)as StudentCode,(Stuname) as StudentName,' + @columnsday  + ' from 
     (SELECT tbl_StudentAttendanceDetails.StuAttendId,tbl_StudentAttendanceDetails.StudentCurrId,
     StudentCode,upper(First_Name + '' '' + Middle_Name + '' '' + Last_Name) as Stuname,
     day(StudentAttendanceDate) as day,Stuattend FROM tbl_StudentAttendanceDetails 
     inner join 
     tbl_StudentAttendanceMaster 
     on tbl_StudentAttendanceDetails.StuAttendId=tbl_StudentAttendanceMaster.StuAttendId
   inner join tbl_Student_Current 
   on tbl_StudentAttendanceDetails.StudentCurrId=tbl_Student_Current.StuCurrentId
   inner join StudentAdmission on tbl_Student_Current.StudentId=StudentAdmission.StudentId


         ) AS SourceTable   

      pivot ( 
            MAX(Stuattend)
               for day in (' + @days +')
             )p'

 print('pivoted report')    
--exec(@query)  
EXECUTE  (@query)
Posted
Updated 20-Dec-14 4:56am
v2
Comments
Maciej Los 20-Dec-14 10:57am    
What is the description of issue?
We can't read in your mind or direct from your screen. Please, be more specific and provide more details.

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900