c_date | qty | 현재 | ||
20211025 | 100 | 20211101 | 100 | |
20211026 | 100 | |||
20211027 | 100 | |||
20211028 | 100 | 원하는값 | ||
20211029 | 100 | 20211101 | 400 | |
20211030 | 100 | |||
20211031 | 100 | |||
20211101 | 100 |
현재와 원하는값에는
TO_CHAR(SYSDATE,'YYYYMMDD')로 해서 현재일로 넣어줄거에요.
즉, 현재는 월~일 = SUM(qty) 100개의 수량을 보여주고있지만
기준이 월~일 이아닌
금~목으로 변경되어야하므로 SUM(QTY) 400이 되어야해요
c_date의 데이터는 해당일에 insert됩니다.
내일이면 20211102가 추가되므로 수량이 500이 되어야합니다.
WITH t AS ( SELECT '20211025' c_date, 100 qty FROM dual UNION ALL SELECT '20211026', 100 FROM dual UNION ALL SELECT '20211027', 100 FROM dual UNION ALL SELECT '20211028', 100 FROM dual UNION ALL SELECT '20211029', 100 FROM dual UNION ALL SELECT '20211030', 100 FROM dual UNION ALL SELECT '20211031', 100 FROM dual UNION ALL SELECT '20211101', 100 FROM dual ) SELECT * FROM t WHERE c_date >= TO_CHAR(NEXT_DAY(sysdate - 7, 6), 'yyyymmdd') AND c_date <= TO_CHAR(NEXT_DAY(sysdate - 1, 5), 'yyyymmdd') ;