시작 예정, 종료일자 자동 산출 0 6 3,318

by 천사원이 [SQL Query] mssql [2024.03.26 16:30:53]


IMG_2937.png (31,984Bytes)
IMG_2936.png (29,702Bytes)
IMG_2941.png (29,106Bytes)

mssql 질문드립니다.

아래 표에서 시작일자, 종료일자 산출 쿼리를

작성해야하는데... 혹시 방법이 있을까요?

하루를 8시간 단위로 생각하고

소요시간이 8시간이 넘으면 잔여시간은 다음날로 넘어가려고 합니다.

소요시간 시작일자 종료일자
8 20240327 20240327
2 20240328 20240328
6 20240328 20240328
10 20240330 20240331
4 20240331 20240331
6 20240331 20240401

이런식으로... 시작, 종료일자를 산출하고 싶습니다..

by 마농 [2024.03.26 16:43:00]

원본 데이터가 어떻게 생겼나요?
원본 대비 결과표를 보여 주세요.


by 천사원이 [2024.03.26 17:47:14]

본문에 스샷 첨부했습니다!

시작일자만 우선 작성해봤는데 결과값이 안 맞네요..ㅠㅠ


by 마농 [2024.03.27 08:10:40]

정렬 기준이 명확해야 합니다.
정렬 기준이 될 수 있는 항목이 필요합니다.


by 천사원이 [2024.03.27 09:21:49]

정렬기준 추가했습니다!


by 마농 [2024.03.27 09:52:27]
WITH t AS
(
SELECT 1 templatprocno, 1 proctypeprocno, 'a' procname,  8.00 stdworktime
UNION ALL SELECT 1, 2, 'b',  6.00
UNION ALL SELECT 1, 3, 'c',  2.00
UNION ALL SELECT 1, 4, 'd',  8.00
UNION ALL SELECT 1, 5, 'e', 10.00
UNION ALL SELECT 2, 1, 'f',  4.00
UNION ALL SELECT 2, 2, 'g',  6.00
UNION ALL SELECT 2, 3, 'h',  4.00
UNION ALL SELECT 2, 4, 'i',  4.00
UNION ALL SELECT 3, 1, 'j',  4.00
UNION ALL SELECT 3, 2, 'k',  8.00
UNION ALL SELECT 3, 3, 'l',  3.00
UNION ALL SELECT 4, 1, 'm',  2.00
UNION ALL SELECT 4, 2, 'n',  3.00
UNION ALL SELECT 4, 3, 'o',  3.00
UNION ALL SELECT 4, 4, 'p',  4.00
)
SELECT templatprocno, proctypeprocno, procname, stdworktime
     , FORMAT(DATEADD(DAY, (tm - stdworktime) / 8, dt), 'yyyyMMdd') sdt
     , FORMAT(DATEADD(DAY, (tm - 1          ) / 8, dt), 'yyyyMMdd') edt
  FROM (SELECT templatprocno, proctypeprocno, procname, stdworktime
             , FORMAT(GETDATE(), 'yyyyMMdd') dt
             , SUM(stdworktime) OVER(ORDER BY templatprocno, proctypeprocno) tm
          FROM t
        ) a
;

 


by 천사원이 [2024.03.27 10:04:29]

감사합니다! 적용해보겠습니다!

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입