database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
ㆍOracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
Oracle Q&A 41702 게시물 읽기
No. 41702
출퇴근 쿼리 해결이 잘안되어서 글올려 봅니다.
작성자
정준민(over200k)
작성일
2019-03-28 00:17:35ⓒ
2019-03-28 21:54:41ⓜ
조회수
145

 

  NAME DATE  
1 홍길동 20190206000915  -> 2019년02월06일00시09분15초
2 홍길동 20190206001032  
3 홍길동 20190206011930  
4 홍길동 20190206040119  -> 2019년02월06일04시01분19초
5 홍길동 20190206081547  
6 홍길동 20190206235145  
7 홍길동 20190207000723  
8 홍길동 20190207002043  -> 2019년02월07일00시20분43초
9 홍길동 20190207045515  -> 2019년02월07일04시55분15초
10 홍길동 20190207050216  
11 홍길동 20190207074634  
12 홍길동 20190207084300  
13 홍길동 20190207090259  
14 홍길동 20190207094536  
15 홍길동 20190207100218  
16 홍길동 20190207100430  -> 2019년02월07일10시04분30초

DB에 출입내역 데이터입니다.

새벽4시에 가까운 시간이 출근이고, 다음날 새벽4시에 가까운 시간이 퇴근입니다.

화면에서, 조회기간을 FROM : 2019-02-06, TO : 2019-02-08을 입력 받아서

 

NAME 출근 퇴근
홍길동 20190206040119 20190207002043
홍길동 20190207045515 20190207100430

 

위처럼  출력하고 싶습니다. 해결이 안되어서 글적어 봅니다.

 

 

 

이 글에 대한 댓글이 총 6건 있습니다.

기준이 모호하네요.
새벽4시에 가까운 시간?
출퇴근 시간이 어떻게 같은 시간대일 수 있죠?
 - 24시간 근무 하나요?
 - 퇴근하자마자 출근하나요?
 - 새벽4시 가까운 시간을 출근시간으로 볼지 퇴근시간으로 볼지? 뭘로 판단하나요?
모호한 표현 대신 명확한 기준이 제시되어야 할 것 같습니다.
  - 예) 새벽 4시 이후 출근 -> 다음날 새벽 4시 이전 퇴근

마농(manon94)님이 2019-03-28 10:30:55에 작성한 댓글입니다.
이 댓글은 2019-03-28 10:31:18에 마지막으로 수정되었습니다.
출퇴근 시간이 어떻게 같은 시간대일 수 있죠? 같은시간대인게 이상하긴 한데, DB에 카드태깅 내역이라...
 - 24시간 근무 하나요?
    : 주간 근무만 하시는 분도 있고, 야간에 근무하시는 분도 있습니다.
 - 퇴근하자마자 출근하나요?
    : 퇴근하자마자 출근하지는 않는데, 위에 보시는 데이터가 카드태깅했는 내역이라 내역 기준으로
      출력을 해야 됩니다.
 - 새벽4시 가까운 시간을 출근시간으로 볼지 퇴근시간으로새벽 4시 이후 출근
    : 새벽 4시 이후 출근이고, 다음날 새벽 4시 이전이 퇴근이 맞습니다.
 
 
 
정준민(over200k)님이 2019-03-28 22:05:31에 작성한 댓글입니다.

새벽 4시 이후 출근, 다음날 새벽 4시 이전 퇴근 -> 이거로 충분한데요.
다른 답변들은 전혀 도움이 안되고, 오히려 방해만 되는 모호한 답변들이네요.


WITH t AS
(
SELECT  1 seq, '홍길동' nm, '20190206000915' dt FROM dual
UNION ALL SELECT  2, '홍길동', '20190206001032' FROM dual
UNION ALL SELECT  3, '홍길동', '20190206011930' FROM dual
UNION ALL SELECT  4, '홍길동', '20190206040119' FROM dual
UNION ALL SELECT  5, '홍길동', '20190206081547' FROM dual
UNION ALL SELECT  6, '홍길동', '20190206235145' FROM dual
UNION ALL SELECT  7, '홍길동', '20190207000723' FROM dual
UNION ALL SELECT  8, '홍길동', '20190207002043' FROM dual
UNION ALL SELECT  9, '홍길동', '20190207045515' FROM dual
UNION ALL SELECT 10, '홍길동', '20190207050216' FROM dual
UNION ALL SELECT 11, '홍길동', '20190207074634' FROM dual
UNION ALL SELECT 12, '홍길동', '20190207084300' FROM dual
UNION ALL SELECT 13, '홍길동', '20190207090259' FROM dual
UNION ALL SELECT 14, '홍길동', '20190207094536' FROM dual
UNION ALL SELECT 15, '홍길동', '20190207100218' FROM dual
UNION ALL SELECT 16, '홍길동', '20190207100430' FROM dual
)
SELECT nm
     , MIN(dt) sdt
     , MAX(dt) edt
  FROM t
 WHERE dt >= '20190206' || '040000'
   AND dt <= TO_CHAR(TO_DATE('20190208','yyyymmdd')+1,'yyyymmdd')||'035959'
 GROUP BY nm, TRUNC(TO_DATE(dt, 'yyyymmddhh24miss') - 4/24)
 ORDER BY nm, sdt
;

마농(manon94)님이 2019-03-29 08:03:55에 작성한 댓글입니다.
이 댓글은 2019-03-29 08:04:11에 마지막으로 수정되었습니다.

많이 배웠습니다. 감사합니다~^^

정준민(over200k)님이 2019-03-29 09:46:08에 작성한 댓글입니다.

위 기준대로 하면 2019-02-06 04:01:19  출근인데요.
홍길동이 2분만 더 일찍 출근했다면?
해당 시간은 출근시간이 아닌 전날 퇴근시간이 될 수 있습니다.
명확한 기준을 제시하지 못한다면? 쿼리 작성은 힘듭니다.

마농(manon94)님이 2019-03-29 10:14:25에 작성한 댓글입니다.

 넵, 참고하겠습니다.

정준민(over200k)님이 2019-03-29 14:26:58에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
41705오라클 소유자명 입력 없이 그냥 검색하고 싶은데 어떻게할까요? [5]
오라클어려워ㅠ
2019-04-02
149
41704구분자 Data를 행으로 변경할려고 합니다. [2]
이희곤
2019-04-02
143
41703락(Lock)이 여러개일 경우 Kill 방법 문의드립니다. [2]
서준용
2019-03-28
133
41702출퇴근 쿼리 해결이 잘안되어서 글올려 봅니다. [6]
정준민
2019-03-28
145
41701index 생성 문의
마루아라
2019-03-22
101
41700가장최근에 입력된 로우 20개 가져오는 쿼리는 어떻게하나요? [1]
asdf
2019-03-21
195
41699instance client 설치 및 client pc 연결오류 [1]
하리보마이쪄
2019-03-12
146
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2019 DSN, All rights reserved.
작업시간: 0.095초, 이곳 서비스는
	PostgreSQL v11.1로 자료를 관리합니다