how to get/set value in the middle of between date range in SQL Server 2008 R2 -
my hr project have 1 table field:
empname(nvarchar(50)),leavetype(nvarchar(10)),fromdate(datetime),todate(datetime) and sample data entry below:
empname leavetype fromdate todate aa al 22-may-13 28-may-13 bb spl 25-may-13 31-may-13 in report want select data daily day day below:
empname 22-may-13 23-may-13 24-may-13 25-may-13 26-may-13 27-may-13 28-may-13 29-may-13 30-may-13 31-may-13 aa al al al al al al al bb spl spl spl spl spl spl spl how done report stored procedure in sql server 2008 r2 ? appreciate. thanks!
try :
declare @emp table (empname varchar(10), leavetype varchar(10), fromdate date,todate date) insert @emp values('aa','al','22-may-13','28-may-13') insert @emp values('bb','spl','25-may-13','31-may-13') select * @emp ;with cte (select empname,leavetype, fromdate ,todate @emp union select empname,leavetype,dateadd(dd,1,fromdate),todate cte fromdate<todate) select * #demo (select empname,leavetype,fromdate cte ) declare @col varchar(2000) select @col=stuff( (select ',[' + cast(fromdate varchar) + ']' (select distinct fromdate #demo)b xml path('')), 1,1,'') print @col declare @query varchar(max) set @query = 'select empname, ' + @col + ' (select empname, leavetype, fromdate #demo ) pivot ( min([leavetype]) fromdate in (' + @col + ') ) pvt order pvt.empname' exec (@query) drop table #demo
Comments
Post a Comment