안녕하세요
SQL 쿼리 작성중 어려운 부분이 있어서 문의해 봅니다.
요일별 근무조의 근무 시간이 작성된 테이블이 있습니다.
TBL_SHIFT
SHIFT_CD | DAY_TYPE | START_TIME | SART_TIME_DAY_TYPE | END_TIME | END_TIME_DAY_TYPE |
FRI1_S1 | FRI | 0630 | D | 1500 | D |
FRI1_S2 | FRI | 1500 | D | 2300 | D |
FRI1_S3 | FRI | 2300 | D | 0630 | D1 |
NOR1_S1 | NOR | 0630 | D | 1430 | D |
NOR1_S2 | NOR | 1430 | D | 2230 | D |
NOR1_S3 | NOR | 2230 | D | 0630 | D1 |
SAT6_S1 | SAT | 0630 | D | 1130 | D |
SAT6_S2 | SAT | 1130 | D | 1630 | D |
SAT6_S3 | SAT | 1630 | D | 2130 | D |
테이블의 구성은 FRI 금요일과 SAT 토요일을 제외한 일자는 NOR로 조를 구성하고 있습니다.
각조의 업무 시작시간(START_TIME) 과 종료시간(END_TIME)으로 구성되어 있으며
3번째 조(S3)의 경우 종료시간 다음날 0630 입니다. 구분을 위해 END_TIME_DAY_TYPE에 당일일 경우 'D', 익일일경우 'D1'으로 표기 하고 있습니다.
그러니까 화~토요일 0630 이전은 이전일 3조의 근무시간 입니다.
TBL_WORK_PLAN | ||||
PLAN_WORK_DT | ITEM_CD | PLANT_QTY | RESULT_QTY | COMP_YN |
20240717 | ITEM_A | 120 | 0 | N |
20240717 | ITEM_B | 120 | 0 | N |
20240718 | ITEM_A | 120 | 0 | N |
20240718 | ITEM_B | 120 | 0 | N |
20240719 | ITEM_A | 120 | 0 | N |
20240719 | ITEM_C | 110 | 0 |
N |
품목별 작업계획 테이블이 있습니다.
실적 테이블
TBL_WORK_RESULT | |||
WORK_YMD | WORK_HMS | ITEM_CD | RESULT_QTY |
20240717 | 063832 | ITEM_A | 10 |
20240717 | 063925 | ITEM_B | 12 |
20240717 | 064002 | ITEM_A | 2 |
20240717 | 091002 | ITME_A | 48 |
20240717 | 093020 | ITEM_A | 24 |
20240717 | 094002 | ITEM_B | 24 |
20240717 | 134002 | ITEM_A | 12 |
20240717 | 142000 | ITEM_B | 12 |
20240717 | 230000 | ITEM_A | 2 |
20240717 | 235021 | ITEM_B | 20 |
20240718 | 002000 | ITEM_A | 12 |
20240718 | 032300 | ITEM_B | 20 |
20240718 | 042240 | ITEM_B | 10 |
20240718 | 062258 | ITEM_A | 10 |
20240718 | 063140 | ITEM_B | 13 |
20240718 | 063640 | ITEM_B | 12 |
20240718 | 064240 | ITEM_A | 10 |
20240718 | 065240 | ITEM_A | 10 |
20240718 | 063832 | ITEM_A | 10 |
20240718 | 063925 | ITEM_B | 12 |
20240718 | 064002 | ITEM_A | 2 |
20240718 | 091002 | ITME_A | 48 |
20240718 | 093020 | ITEM_A | 24 |
20240718 | 094002 | ITEM_B | 24 |
20240718 | 134002 | ITEM_A | 12 |
20240718 | 142000 | ITEM_B | 12 |
20240718 | 230000 | ITEM_A | 2 |
20240718 | 235021 | ITEM_B | 20 |
20240718 | 002000 | ITEM_A | 12 |
20240718 | 032300 | ITEM_B | 20 |
20240718 | 042240 | ITEM_B | 10 |
20240718 | 062258 | ITEM_A | 10 |
20240718 | 063140 | ITEM_A | 13 |
20240718 | 063640 | ITEM_C | 12 |
20240718 | 064240 | ITEM_C | 10 |
20240718 | 065240 | ITEM_A | 10 |
이 있습니다.
실적 테이블은 작업한 품목의 실제 날짜와 시간, 수량을 등록 하고 있습니다..
실적 등록시 조별로 등록 하는게 아니라 기계에 찍힌 일자와 시간만으로 등록을 하고 있어서
실적을 집계시 해당 실적이 어떤 계획일의 실적인지를 TBL_SHIFT를 참조해서 가지고 오려고 합니다.
결과적으로 계획 테이블에
TBL_WORK_PLAN | ||||
PLAN_WORK_DT | ITEM_CD | PLANT_QTY | RESULT_QTY | COMP_YN |
20240717 | ITEM_A | 120 | 120 | Y |
20240717 | ITEM_B | 120 | 98 | N |
20240718 | ITEM_A | 120 | 130 | Y |
20240718 | ITEM_B | 120 | 123 | Y |
20240719 | ITEM_A | 120 | 33 | N |
20240719 | ITEM_C | 110 | 22 | N |
집계를 하고 싶은데,
TBL_SHIFT를 참조해서 실적일자별로 계획일을 어떻게 구하면 좋을지 조언 부탁드립니다.