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 39415 게시물 읽기
No. 39415
sql 도움 부탁드립니다
작성자
초보
작성일
2012-04-25 13:50
조회수
4,924

안녕하세요!

쿼리 도움을 요청합니다

바쁘시겠지만 여러분들의 고견을 부탁드립니다 

 

 
급여테이블
======================================================
사번   시작근무일     종료근무일    일수   지급액
======================================================
001      20111112      20111113        2    20,000 
001      20111202      20111230       16   160,000
001      20120105      20120115        8    80,000
001      20120118      20120130       10   100,000
001      20120210      20120229       17   170,000
001      20120304      20120325       20   200,000 
002      20120103      20120110        7    70,000                                      
002      20120120      20120130        2    20,000                                      
002      20120207      20120130       16   160,000                                      
002      20120301      20120130       18   180,000                                      
003      20120103      20120130       20   200,000                                      
003      20120207      20120130       16   160,000                                      
003      20120301      20120130       18   180,000                                      
 
 
 
** 결과물 **
==================================================================================
사번   연속근무최초시작일  연속근무최초시작일(15일)  201201월일수 201201월지급액   201202월일수 201202월지급액    201203월일수 201203월지급액      
==================================================================================
001       20111112           20111202                     18         180,000           17            170,000           20         200,000  
003       20120103           20120103                     20         200,000           16            160,000           18         180,000 
 
 
 
 
 
급여테이블에서 월 15일 이상,  3개월(2012.01~2012.03) 연속 근무자 중 
연속으로 근무한 최초 시작근무일과
연속으로 월 15일 이상 근무한 최초 시작근무일을 알고 싶습니다
 
 
시작근무일의 년월과 종료근무일의 년월은 같음.
 
 
 
이 글에 대한 댓글이 총 3건 있습니다.

WITH t AS
(
SELECT '001' eno, '20111112' sdt, '20111113' edt, 2 cnt, 20000 amt FROM dual
UNION ALL SELECT '001', '20111202', '20111230', 16, 160000 FROM dual
UNION ALL SELECT '001', '20120105', '20120115',  8,  80000 FROM dual
UNION ALL SELECT '001', '20120118', '20120130', 10, 100000 FROM dual
UNION ALL SELECT '001', '20120210', '20120229', 17, 170000 FROM dual
UNION ALL SELECT '001', '20120304', '20120325', 20, 200000 FROM dual
UNION ALL SELECT '002', '20120103', '20120110',  7,  70000 FROM dual
UNION ALL SELECT '002', '20120120', '20120130',  2,  20000 FROM dual
UNION ALL SELECT '002', '20120207', '20120130', 16, 160000 FROM dual
UNION ALL SELECT '002', '20120301', '20120130', 18, 180000 FROM dual
UNION ALL SELECT '003', '20120103', '20120130', 20, 200000 FROM dual
UNION ALL SELECT '003', '20120207', '20120130', 16, 160000 FROM dual
UNION ALL SELECT '003', '20120301', '20120130', 18, 180000 FROM dual
)
SELECT eno
     , MIN(sdt) sdt
     , MIN(CASE WHEN cnt >= 15 THEN sdt END) sdt15
     , SUM(CASE WHEN sdt LIKE '201201%' THEN cnt END) cnt01
     , SUM(CASE WHEN sdt LIKE '201201%' THEN amt END) amt01
     , SUM(CASE WHEN sdt LIKE '201202%' THEN cnt END) cnt02
     , SUM(CASE WHEN sdt LIKE '201202%' THEN amt END) amt02
     , SUM(CASE WHEN sdt LIKE '201203%' THEN cnt END) cnt03
     , SUM(CASE WHEN sdt LIKE '201203%' THEN amt END) amt03
  FROM t
 GROUP BY eno
 ORDER BY eno
;

마농(manon94)님이 2012-04-25 17:19에 작성한 댓글입니다.

 마농님!!!

제가 설명을 잘못드린것 같습니다
 
일단 첫번째 전재조건은 1~3월까지 3개월 모두 월별로 근무일수가 15일이상이여야합니다
(사번 002는 2012.01월에 근무일수가 15일 미만이라서 결과물에서 빠져야합니다)
 
그리고 연속근무최초시작일, 연속근무최초시작일(15일)도 위의 조건이 충족되면서
   연속으로 근무한 최초시작일을 구해야합니다
 
만약 사번 001의 경우 2011.10월 근무일수가 3일,
                     2011.12월 근무일수가 10일,
                     2012.01월 근무일수가 16일,
                     2012.02월 근무일수가 16일,
                     2012.03월 근무일수가 16일,   이면
 
 
   연속근무최초시작일        =>   2011.12월      
   연속근무최초시작일(15일)  =>   2012.01월
 
 
이렇게 값이 나와야합니다
 
 
마농님  번거로우시겠지만  다시 한번 부탁드립니다
저는 아무리 생각해도 잘 모르겠습니다
 
 
초보님이 2012-04-25 18:21에 작성한 댓글입니다. Edit

설명이 모호한데다가

설명과 결과와 원본이 모두 불일치 하네요.

일관성있게 만들어서 질문해 주세요.

마농(manon94)님이 2012-04-25 18:24에 작성한 댓글입니다.
이 댓글은 2012-04-25 18:25에 마지막으로 수정되었습니다.
[Top]
No.
제목
작성자
작성일
조회
39418케릭터셋 utf-8 환경에서 한글 2000자 이상 저장하려면 어떻게 해야하나요? [2]
조동건
2012-04-25
4199
39417nvarchar2 관련 질문입니다. [1]
조동건
2012-04-25
4022
39416쿼리 질문 좀 드리겠습니다. [1]
선한양심
2012-04-25
4176
39415sql 도움 부탁드립니다 [3]
초보
2012-04-25
4924
39414ORA-01841 오류 [2]
신동화
2012-04-25
6394
39413쿼리 문의 [1]
진희
2012-04-24
4257
39412쿼리문 문의 드립니다 SELECT ROW별 검색 조건 [3]
최상민
2012-04-24
5425
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.021초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다