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

Wstawianie i przekształcanie danych z tabeli SQL

Nie ma potrzeby WHILE pętla.

SELECT
    date,
    id,
    SUM(CASE WHEN status_id = 1 THEN status_time ELSE 0 END) AS lunch,
    SUM(CASE WHEN status_id = 2 THEN status_time ELSE 0 END) AS break,
    SUM(CASE WHEN status_id = 3 THEN status_time ELSE 0 END) AS vacation
FROM
    My_Table
GROUP BY
    date,
    id

Również zachowanie status_time w tabeli jest błędem (chyba że jest to nietrwała, obliczona kolumna). Skutecznie przechowujesz te same dane w dwóch miejscach w bazie danych, co spowoduje niespójności. To samo dotyczy przesłania tych danych do innej tabeli z czasami podzielonymi według typu statusu. Nie twórz nowej tabeli do przechowywania danych, użyj zapytania, aby uzyskać dane, kiedy ich potrzebujesz.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Dlaczego opcja indeksowania pełnotekstowego jest wyszarzona?

  2. Różnica między sys.parameters, sys.system_parameters i sys.all_parameters w programie SQL Server

  3. Zmień wartości NULL w formacie Datetime na pusty ciąg

  4. Przygotowane parametry Instrukcja LIKE Nie działa z SQLSRV

  5. Obsługa wartości NULL w UNPIVOT