sql >> Database >  >> RDS >> Mysql

MySQL - Probleem met dynamische draaitabelgroepering

De volgende SQL kan een startpunt zijn om het probleem op te lossen:

SELECT
  es.employee_id,
  CONCAT(e.first_name, " ", e.last_name) AS employee,
  MAX(IF (es.skill_id = 1, es.date_trained, null)) AS '1',
  MAX(IF (es.skill_id = 2, es.date_trained, null)) AS '2',
  MAX(IF (es.skill_id = 3, es.date_trained, null)) AS '3'
FROM
  employee_skills es
  LEFT JOIN employees e ON es.employee_id = e.id
GROUP BY
  es.employee_id 

Het resultaat is een draaitabel zoals deze:

| employee_id | employee   | 1          | 2          | 3          |
+-------------+------------+------------+------------+------------+
| 1001675     | Person Two | (null)     | 2016-07-02 | 2016-07-04 |
| 1006111     | Person One | 2016-07-01 | 2016-07-11 | (null)     |

Als SQL dynamisch wordt gemaakt, kunnen de vaardigheids-ID's worden vervangen door de vaardigheidsnaam. Het is ook mogelijk om de ID's achteraf te vervangen.




  1. MySQL Workbench:kan geen verbinding maken met MySQL-server op 127.0.0.1' (10061) fout

  2. TIME() Voorbeelden – MySQL

  3. Gegevensmigratie van Oracle naar SQL Server

  4. Datumconversie en cultuur:verschil tussen DATE en DATETIME