員工姓名(name) | 排班日期(calendar_date) | 排班內容(calss_name) |
---|---|---|
張三 | 2005-05-01 00:00:00 | 日班 |
張三 | 2005-05-02 00:00:00 | 日班 |
張三 | 2005-05-03 00:00:00 | 日班 |
張三 | 2005-05-04 00:00:00 | 夜班 |
張三 | 2005-05-05 00:00:00 | 夜班 |
李四 | 2005-05-01 00:00:00 | 日班 |
李四 | 2005-05-02 00:00:00 | 日班 |
李四 | 2005-05-03 00:00:00 | 日班 |
王五 | 2005-05-02 00:00:00 | 日班 |
王五 | 2005-05-03 00:00:00 | 夜班 |
王五 | 2005-05-04 00:00:00 | 夜班 |
王五 | 2005-05-05 00:00:00 | 夜班 |
- 請寫出一條sql語句,生成以下結果
name | D20050501 | D20050502 | D20050503 | D20050504 | D20050505 |
---|---|---|---|---|---|
張三 | 日班 | 日班 | 日班 | 夜班 | 夜班 |
李四 | 日班 | 日班 | 日班 | ||
王五 | 日班 | 夜班 | 夜班 | 夜班 |
sql
select name,
MAX(CASE calendar_date WHEN ‘2005-05-01 00:00:00’ THEN calss_name ELSE ‘’ END ) D20050501,
MAX(CASE calendar_date WHEN ‘2005-05-02 00:00:00’ THEN calss_name ELSE ‘’ END ) D20050502,
MAX(CASE calendar_date WHEN ‘2005-05-03 00:00:00’ THEN calss_name ELSE ‘’ END ) D20050503,
MAX(CASE calendar_date WHEN ‘2005-05-04 00:00:00’ THEN calss_name ELSE ‘’ END ) D20050504,
MAX(CASE calendar_date WHEN ‘2005-05-05 00:00:00’ THEN calss_name ELSE ‘’ END ) D20050505
from emp_calendar group by name
- 看效果