Try this:
DECLARE @cols NVARCHAR(200)
DECLARE @dt NVARCHAR(2000)
DECLARE @pt NVARCHAR(MAX)
SET @cols = STUFF((SELECT DISTINCT '],[' + CONVERT(NVARCHAR(10),[Date],120)
FROM [Table1]
ORDER BY '],[' + CONVERT(NVARCHAR(10),[Date],120)
FOR XML PATH('')),1,2,'') + ']'
SET @dt = 'SELECT * FROM Table1'
SET @pt = 'SELECT [E.No], [Name], ' + @cols + ' ' +
'FROM (' + @dt + ') AS DT ' +
'PIVOT(MAX([Status]) FOR [Date] IN (' + @cols + ')) AS PT'
EXEC(@pt)