[SQL] 어떻게 열로 MySQL의 테이블 행을 바꾸어하기
SQL어떻게 열로 MySQL의 테이블 행을 바꾸어하기
여기에 내 현재 MySQL의 테이블 모습입니다 :
PunchID EmpID PunchEvent PunchDateTime
1 0456 clockin 5/14/2013 8:36:26 AM
48 0456 breakout 5/14/2013 12:01:29 PM
53 0456 breakin 5/14/2013 12:28:31 PM
54 0456 clockout 5/14/2013 2:28:33 PM
57 0456 clockin 5/15/2013 7:38:34 AM
58 0456 breakout 5/15/2013 7:38:39 AM
59 0456 breakin 5/15/2013 7:38:41 AM
60 0456 clockout 5/15/2013 7:38:42 AM
지금은 이렇게 같은 요일에 따라 그룹화 된 결과 집합을 반환하려면 :
Day ClockIn BreakOut BreakIn ClockOut
Tuesday 8:36:26 AM 12:01:29 PM 12:28:31 PM 2:28:33 PM
Wednesday 7:38:34 AM etc, etc...
이것은 나의 현재 쿼리입니다. 그러나 각 일에 대한 첫 번째 펀치를 반환합니다.
SELECT DATE_FORMAT(PunchDateTime, '%W') as day, PunchEvent, DATE_FORMAT(PunchDateTime, '%l:%m:%s %p') as time FROM timeclock_punchlog WHERE EmpID = '0456' GROUP BY DATE(PunchDateTime) ORDER BY PunchDateTime ASC;
이와 캔 사람의 도움 나? 감사 마이크
해결법
-
==============================
1.
SELECT DATE_FORMAT(PunchDateTime, '%W') DAY, MAX(CASE WHEN PunchEvent = 'ClockIn' THEN DATE_FORMAT(PunchDateTime, '%r') END) ClockIn, MAX(CASE WHEN PunchEvent = 'BreakOut' THEN DATE_FORMAT(PunchDateTime, '%r') END) BreakOut, MAX(CASE WHEN PunchEvent = 'BreakIn' THEN DATE_FORMAT(PunchDateTime, '%r') END) BreakIn, MAX(CASE WHEN PunchEvent = 'ClockOut' THEN DATE_FORMAT(PunchDateTime, '%r') END) ClockOut FROM tableName WHERE EmpID = 456 GROUP BY DATE_FORMAT(PunchDateTime, '%W') ORDER BY PunchDateTime
산출
╔═══════════╦═════════════╦═════════════╦═════════════╦═════════════╗ ║ DAY ║ CLOCKIN ║ BREAKOUT ║ BREAKIN ║ CLOCKOUT ║ ╠═══════════╬═════════════╬═════════════╬═════════════╬═════════════╣ ║ Tuesday ║ 08:36:26 AM ║ 12:01:29 PM ║ 12:28:31 PM ║ 02:28:33 PM ║ ║ Wednesday ║ 07:38:34 AM ║ 07:38:39 AM ║ 07:38:41 AM ║ 07:38:42 AM ║ ╚═══════════╩═════════════╩═════════════╩═════════════╩═════════════╝
from https://stackoverflow.com/questions/16568228/how-to-transpose-mysql-table-rows-into-columns by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] SQL 서버에서 오라클의 ROWID의 등가 (0) | 2020.04.14 |
---|---|
[SQL] PHP - MySQL 데이터베이스로 가져 오기 CSV 파일을 사용하여 LOAD DATA INFILE (0) | 2020.04.14 |
[SQL] C #에서 SQL UPDATE 문 (0) | 2020.04.14 |
[SQL] 자바 도구 LINQ [폐쇄] (0) | 2020.04.14 |
[SQL] SQL의 달의 마지막 날을 받기 (0) | 2020.04.14 |