Quantcast
Channel: SQLServerCentral » SQL Server 2014 » Development - SQL Server 2014 » Latest topics
Viewing all articles
Browse latest Browse all 3145

Bugs in pivot

$
0
0
Hi,please check some bugs in pivotALTER PROCEDURE Emp_Shift1(@empcode INT,@FromDate datetime,@EndDate datetime)AS BEGIN--DROP TABLE #tCREATE TABLE #t( [Date] date, [Empid] INT, [shift] int,[shifttype] int) INSERT INTO #tSELECT SS.EndDate,SS.[Shift], SS.ShiftType, e.empidFROM dbo.ShiftScheduler SS,dbo.Emploee e WHERE e.empcode=SS.Emp_CodeAND e.empid = @empcodeand FromDate >= @FromDateand EndDate <= @EndDateUNION ALLSELECT @EndDate,[Shift], ShiftType, empidFROM dbo.EmploeeWHERE empid = @empcodeSELECT *, ROW_NUMBER() OVER(PARTITION BY [Empid] ORDER BY [Date]) AS row_numINTO #tmpFROM #tDeclare @sql varchar(max);set @sql= STUFF((select ', MAX(case when row_num = ' + CONVERT(varchar, row_num) + ' then [shift] end ) as ' + QUOTENAME('d' + CONVERT(varchar, row_num) + 'shift') + ', MAX(case when row_num = ' + CONVERT(varchar, row_num) + ' then [shifttype] end ) as ' + QUOTENAME('d' + CONVERT(varchar, row_num) + 'shifttype')from #tmpGROUP BY row_numORDER BY row_numFOR XML PATH('')), 1, 1, '');set @sql= 'select [Empid], ' + @sql + 'from #tmpGroup by [Empid]';-- print @sqlexec(@sql);ENDoutput is Empid d1shift d1shifttype1 1 21902 4 2190Problem here is empid coming in d1shifttype column.. also i want all the shift details in single column like d1shift,d1shiftype,d2shift,d2shifttype,d3shidt,d3shifttype (these d1shift (1/1/2015) d1shifttype (1/1/2015)d2shift (1/1/2015) d2shifttype (1/2/2015)d3shift (1/1/2015) d3shifttype (1/3/2015)...like that for month or date rangePlease helpFor your reference added some DDLCREATE TABLE dbo.ShiftScheduler(FromDate DATETIME,Shift INT,ShiftType INT ,Emp_Code VARCHAR(50))CREATE TABLE dbo.Employee(FromDate DATETIME,Shift INT,ShiftType INT ,Emp_Code VARCHAR(50))INSERT INTO dbo.Employee values('1/1/2015','1/4/2015',1,1,3321)INSERT INTO dbo.Employee values('1/7/2015 ','1/8/2015 ',1,1,3321)INSERT INTO dbo.ShiftScheduler VALUES('1/5/2015','1/6/2015',2,4,3321)INSERT INTO dbo.ShiftScheduler VALUES('1/9/2015','1/10/2015',2,4,3321)

Viewing all articles
Browse latest Browse all 3145

Trending Articles