안녕하세요?
제가 주 단위 누적치 계산(더하기, 빼기, 곱하기 등등)을 하고 있는데..
결과는 나오는데 좀 무식한 방법인것 같아서 다른 방법으로 표현 할수 있는 방법이 있나해서요..조언좀 얻을려 합니다.
WITH TEMP_TEST AS
(
SELECT '001' CODE, 'TEST1' DESCT , '120' W40, '132' W41, '155' W42, '167' W43, '189' W44,
'230278' STCK, '64869' OVERDUE_W40, '136274' OVERDUE_W41, '72485' OVERDUE_W42, '60063' OVERDUE_W43 FROM DUAL
UNION ALL
SELECT '002','TEST2', '342', '178', '122', '765', '669',
'150', '34', '17', '58', '24' FROM DUAL
UNION ALL
SELECT '003', 'TEST3', '334', '987', '765', '343', '232',
'180', '34', '231', '48', '34' FROM DUAL
UNION ALL
SELECT '004', 'TEST4', '234', '287', '565', '3403', '1232',
'240', '34', '244', '38', '78' FROM DUAL
UNION ALL
SELECT '005', 'TEST5', '304', '907', '705', '393', '5232',
'220', '34', '24', '28', '9' FROM DUAL
)
SELECT CODE, DESCT,
(STCK - OVERDUE_W40) W40,
(STCK - OVERDUE_W40 - OVERDUE_W41) W41,
(STCK - OVERDUE_W40 - OVERDUE_W41- OVERDUE_W42) W42,
(STCK - OVERDUE_W40 - OVERDUE_W41- OVERDUE_W42 - OVERDUE_W43) W43
FROM TEMP_TEST
위와 같이 주차에서 나온 값을 가지고 계산을 하고, 나온 값을 가지고 다음주차에 계산하고, 그 다음 또 그값을 가지고 계산하고....
주차가 늘어나면 위 같은 방법으로 계산면 되겠지만,,,,,, 무식한 방법 같습니다..
정녕 이런 방법 밖에 없는지 궁금합니다..
감사합니다.
|