Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

T SQL Query Format do budowania dynamicznej tabeli

To, co chcesz zrobić, nazywa się osią

Spróbuj użyć tego kodu

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

Możesz sprawdzić dokumentację sql na PIVOT i UNPIVOT na PIVOT, UNPIVOT SQL , Również jeśli chcesz czegoś bardziej dynamicznego dla swoich pól transdatu, możesz sprawdzić Dynamiczny obrót



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak przekonwertować ciąg na datę/godzinę w SQL Server za pomocą PARSE()

  2. Wyświetlanie historii zadań agenta programu SQL Server za pomocą usługi Azure Data Studio

  3. Jaka jest domyślna nazwa ograniczenia w programie SQL Server?

  4. Oświadczenie się skończyło. Maksymalna rekurencja 100 została wyczerpana przed zakończeniem instrukcji

  5. Jak zmodyfikować okres przechowywania zmian przechwytywania danych (CDC) w programie SQL Server — samouczek dotyczący programu SQL Server