Това, което искате да направите, се нарича завъртане
Опитайте да използвате този код
SELECT employeeid
,case when [2018-10-1] > 0 then '1' else '' end as [2018-10-1]
,case when [2018-10-2] > 0 then '1' else '' end as [2018-10-2]
,case when [2018-10-3] > 0 then '1' else '' end as [2018-10-3]
FROM(
SELECT employeeid
, TranDate
, 1 as num
FROM History
WHERE (CAST(trandate as DATE) = '2018-10-1'
or CAST(trandate as DATE) = '2018-10-2'
or CAST(trandate as DATE) = '2018-10-3' )
)
PIVOT(
COUNT(num)
FOR TranDate IN ([2018-10-1],[2018-10-2],[2018-10-3])
) as pvt
Можете да проверите sql документацията за PIVOT и UNPIVOT на PIVOT, UNPIVOT SQL , Освен това, ако искате нещо по-динамично за вашите полета за преобразуване, можете да проверите Динамична осова точка