sql >> Database teknologi >  >> RDS >> Sqlserver

Indsættelse og transformation af data fra SQL-tabel

Der er ikke behov for en WHILE løkke.

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

Bevar også status_time i tabellen er en fejl (medmindre det er en ikke-vedvarende, beregnet kolonne). Du gemmer effektivt de samme data to steder i databasen, hvilket vil ende med at resultere i uoverensstemmelser. Det samme gælder for at skubbe disse data ind i en anden tabel med tider opdelt efter statustype. Opret ikke en ny tabel til at opbevare dataene, brug forespørgslen til at hente dataene, når du har brug for dem.



  1. Er SET CHARACTER SET utf8 nødvendigt?

  2. Advarsel:mysql_query():3 er ikke en gyldig MySQL-Link-ressource

  3. Laravel 5.1 - Sorter efter to kolonner, der ikke fungerer efter hensigten

  4. MySQL eksporterer INTO OUTFILE --secure-file-priv fejl ved brug af set mappe