Những gì bạn muốn làm được gọi là pivot
Cố gắng sử dụng mã này
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
Bạn có thể kiểm tra tài liệu sql về PIVOT và UNPIVOT trên PIVOT, UNPIVOT SQL Ngoài ra, nếu bạn muốn điều gì đó năng động hơn cho các trường chuyển đổi của mình, bạn có thể kiểm tra Xoay vòng động