Необходимо объявить SQL-запрос Pivot скалярной переменной - PullRequest
0 голосов
/ 21 сентября 2019

Я создаю отчет о посещаемости с помощью сводного SQL на основе данных, полученных с помощью большого пальца, но запрос показывает ошибку. Необходимо объявить скалярную переменную "@abc".вот мой запрос

DECLARE @cols NVARCHAR(MAX)
DECLARE @abc NVARCHAR(MAX)


set  @abc='00:00'
 SELECT  


  top 1   @cols = COALESCE(@cols + ',[' + CONVERT(varchar, DateIn ,106 )    
            + ']','[' + CONVERT(varchar, DateIn ,106) + ']'  )       
              FROM    DailyAttendanceMaster  where 
                DateIn between '2019-01-01  00:00:00.000' and '2019-01-01 00:00:00.000'  
                  group by  DateIn order by DateIn asc   
   DECLARE @qry NVARCHAR(4000) SET  
     @qry = 'SELECT * FROM (SELECT Employee_Master.Employee_Name, 
       case when convert(char(5), TimeIn, 108)= convert(char(5),  @abc, 108) then "A"
        else "B"
        end "TimeIn"  , 
        DailyAttendanceMaster.DateIn FROM DailyAttendanceMaster inner 
        join Employee_Master on Employee_Master.essl_EmpID=DailyAttendanceMaster.EMPID)emp  
              PIVOT (MAX(TimeIn) FOR DateIn IN (' + @cols + ')) AS stat'    
                  EXEC(@qry) 

1 Ответ

0 голосов
/ 21 сентября 2019

Вам необходимо передать переменную:

EXEC sp_executesql @qry, N'@abc NVARCHAR(MAX)', @abc 
...