데이터베이스 개발자 질문과 답변 게시판

데이터베이스 개발/운영 관련 질문과 답변을 올리는 게시판입니다. 궁금하신 내용을 이곳에서 문의하시면 SQLER 분들의 답변을 받으실 수 있습니다. 문의를 하실때에는 최근 작업하신 특이 사항이나, 장애 발생 전 상황을 상세히 올려 주시면 답글을 적어주시는 SQLER분들의 답변이 더 정확할 수 있으니 도움 되시길 바랍니다. 쿼리 문의일 경우, 실제 문제가 재현되는 테이블생성, 샘플데이터 생성 쿼리를 함께 올려 주시면 더 빠르고 정확한 쿼리 문의 응답이 가능합니다.

근태조회문의 드립니다.

다은빈아빠 2014.06.03 09:25 Views : 3496

nEventLogIdn nDateTime nReaderIdn nEventIdn nUserID nIsLog nTNAEvent nIsUseTA nType

2001613

1401784173

32166

55

183

0

0

0

0

2000546

1401663527

32166

55

183

0

1

0

0

2000346

1401611581

32166

55

183

0

0

0

0

2000113

1401526007

32166

55

183

0

0

0

0

1999986

1401490693

32165

55

183

1

1

0

0

1999635

1401439378

32166

55

183

0

0

0

0

1999497

1401397114

32166

55

183

0

0

0

0

1999301

1401352654

32166

55

183

0

0

0

0

위와같이 데이터가 있을 경우 nDateTime 가 출퇴근시간이고 출근일 경우 nTNAEvent 가 0 퇴근일 경우 1 이 됩니다.

단지 출근이나 퇴근기록이 여러개가 있을수 있어 출근은 nDateTime 가 같은날 최소값일때 퇴근은 최대값일때로 뽑아야 합니다.

문제는 주간 야간 2교대로 되어있어서 만약 nTNAEvent가 0인데 시간이 17시 보다 크면 야간조로 판단해서

다음날 09시 이전에 최대 nDateTime으로 해서 퇴근을 조회하고 싶습니다. 정리하자면 아래 표와 같습니다.

Nuserid ADATE

nTNAEvent1

STIME

nTNAEvent2

ETIME

183

2014-05-31

0

08:46:47

1

08:46:47

183

2014-05-30

0

08:42:58

1

22:58:13

183

2014-05-29

0

08:37:34

1

20:58:34

183

2014-05-28

0

08:54:25

1

20:59:26

183

2014-05-27

0

08:32:40

1

22:58:05

183

2014-05-26

0

08:51:05

1

21:00:09

183

2014-05-24

0

08:47:22

1

20:58:39

 

부족한 쿼리는 아래 처럼 했지만 주야간구분과 nTNAEvent1,nTNAEvent2를 어떻게 처리해야 될지 헤매고 있습니다.

 

SELECT Nuserid

, CONVERT(CHAR(10), DATEADD(s,ndatetime,'1970-01-01 00:00:00'), 121) ADATE

, MIN(SUBSTRING(CONVERT(VARCHAR(30),DATEADD(s,ndatetime,'1970-01-01 00:00:00'),121),12,8) ) STIME

, MAX(SUBSTRING(CONVERT(VARCHAR(30),DATEADD(s,ndatetime,'1970-01-01 00:00:00'),121),12,8) ) ETIME

FROM TB_EVENT_LOG  

WHERE nUserID=183 AND CONVERT(CHAR(10), DATEADD(s,ndatetime,'1970-01-01 00:00:00'), 121) BETWEEN '2014-01-01' AND '2014-05-31'

GROUP BY Nuserid,CONVERT(CHAR(10), DATEADD(s,ndatetime,'1970-01-01 00:00:00'), 121)

ORDER BY 2 DESC

No. Subject Author Date Views
7912 테이블 가공 질문입니다.. 쿼리.. [3] 스타카토 2014.06.03 2551
7911 2008 버전에는 백분률 함수가 없나요? [2] ssunsori 2014.06.03 2634
7910 업데이트 방법... [2] 마힐링 2014.06.03 2262
» 근태조회문의 드립니다. [2] 다은빈아빠 2014.06.03 3496
7908 데이터 형식 ntext 및 varchar이(가) not equal to 연산자에서 호환되지 않습니다. [1] SQL은힘들다 2014.06.02 12519
7907 밑에 프로시저 재질문~ㅠ [2] 잉유 2014.06.02 2488
7906 MSSQL 2005에서 [1] 우잘쓰 2014.06.02 2958
7905 Disk Writing 성능 이슈 [6] 서지채 2014.06.02 3061
7904 프로시저 모니터링 관련 DMV 질문이요..(dm_exec_procedure_stats) [8] 쿨키이드 2014.06.02 3921
7903 저장프로시저 질문 [1] 잉유 2014.06.01 2178
7902 쿼리 질문 드립니다.. [2] 마약중독 2014.06.01 2292
7901 조인후 증감수? [4] 마힐링 2014.05.30 2690
7900 월별 기간검색 질문드립니다~ [3] 뽀챙 2014.05.30 3542
7899 64bit OS에서 AWE [6] 캔디 2014.05.30 5393
7898 sp에서 open symmetric key 호출시 sp cache miss [2] 프로비 2014.05.30 3552
7897 SELECT INTO 문의 드립니다. [2] 죠리퐁 2014.05.30 3349
7896 두개 비교하는 쿼리좀 한번 조언좀 부탁드립니다. [4] 아싸라비아콜롬비아 2014.05.29 2795
7895 버전 넘버 version number 정렬에 대한 문의 [3] 쎔군 2014.05.29 2587
7894 안녕하세요 . 간만에 질문 좀 올립니다. [5] ssunsori 2014.05.29 2421
7893 최대 최소조건에 따른 참조 문의 [1] 다은빈아빠 2014.05.29 8318





XE Login