If you want all of the data...
WITH
cte_temp AS (
SELECT
rn = ROW_NUMBER() OVER (PARTITION BY t.[Date], t.[Type] ORDER BY t.[Value]),
t.Date,
t.Type,
t.Value
FROM
#temp t
)
SELECT
[Schema] = MIN(CASE WHEN t.Type = 'Schema' THEN t.Value END),
[Table] = MIN(CASE WHEN t.Type = 'Table' THEN t.Value END),
[Index] = MIN(CASE WHEN t.Type = 'Index' THEN t.Value END),
[fragmentation] = MIN(CASE WHEN t.Type = 'fragmentation' THEN t.Value END),
[page_count] = MIN(CASE WHEN t.Type = 'page_count' THEN t.Value END)
FROM
cte_temp t
GROUP BY
t.rn
Results...
Schema Table Index fragmentation page_count
---------------- ---------------- ---------------- ---------------- ----------------
dbo Employer EmployerIdx 43.851409052 23420
dbo Endorsement IdxAssociationId NULL NULL