Я пытаюсь отобразить ежемесячную посещаемость сотрудника.Поэтому я создал хранимую процедуру, которая добавляет динамические столбцы, используя сводную таблицу.Я не знаю, как получить доступ к столбцам сводки.Поэтому я не могу создать класс с динамическим числом полей в качестве источника данных.
Хранимая процедура
ALTER procedure [dbo].[sps_AttendanceShow] @mon int, @year int As
begin DECLARE @cols AS NVARCHAR(MAX)=''; DECLARE @query AS
NVARCHAR(MAX)='';
SELECT @cols = @cols + QUOTENAME(AttendaceDate) + ',' FROM ( select
e.Name,a.WorkHours,a.AttendaceDate from Attendace a,employee e where
e.EmpID=a.EmpID AND MONTH(a.AttendaceDate)=@mon AND
YEAR(a.AttendaceDate)=@year) as temp3 select @cols = substring(@cols,
0, len(@cols))
set @query = 'SELECT * from (
select e.Name,a.WorkHours,a.AttendaceDate from Attendace a,employee e where e.EmpID=a.EmpID ) src pivot (
max(WorkHours) for AttendaceDate in (' + @cols + ') ) piv'
execute(@query) end
И результаты, как указано ниже: