sql >> Databáze >  >> RDS >> Sqlserver

T Formát dotazu SQL pro sestavení dynamické tabulky

To, co chcete udělat, se nazývá pivot

Zkuste použít tento kód

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

Dokumentaci sql na PIVOT a UNPIVOT můžete zkontrolovat na PIVOT, UNPIVOT SQL , Také pokud chcete něco dynamičtějšího pro svá transdatová pole, můžete zkontrolovat Dynamický pivot



  1. Jak nastavit konfiguraci v OpenCart?

  2. Vraťte na serveru SQL Server 2008 více než 24 hodin ve formátu hh:mm:ss

  3. Převést „smalldatetime“ na „čas“ v SQL Server (příklady T-SQL)

  4. Chyba MARKER konstantního přepsání Symfony2