개발자분들 더운 여름에 안녕하세요~
매일 눈팅하면서 지식을 얻다가, 저도 도움을 받고 싶어서 글을 올리게 되었습니다!
다름이 아니라, 가계부 만드는 과제를 하고 있는데 UPDATE쪽에서 잘 풀리지 않네요.
일자 |
식료품 A |
공산품 B |
합(A+B) |
누계(어제날짜누계+오늘합계) |
0801 |
1000 |
0 |
1000 |
1000 |
0802 |
0 |
2000 |
2000 |
3000 |
0803 |
500 |
1000 |
1500 |
4500 |
0804 |
0 |
0 |
0 |
4500 |
0805 |
1000 |
0 |
1000 |
5500 |
SELECT 일자, A, B, 합, 합+어제누계 AS 누계
FROM(
SELECT 일자, A, B, A+B AS 합, 누계, LAG(누계) OVER (ORDER BY 누계) AS 어제누계
FROM 가계부
)
이런식으로 쿼리를 짜서 보여주고있습니다.
그런데! 갑자기 0원이었던 0804날짜에 A, B값의 변동이 생기면
UPDATE 하면서 합계, 누계를 다시 보여줘야 합니다.
일자 |
A |
B |
합(A+B) |
누계(어제날짜누계+오늘합계) |
0801 |
1000 |
0 |
1000 |
1000 |
0802 |
0 |
2000 |
2000 |
3000 |
0803 |
500 |
1000 |
1500 |
4500 |
0804 |
500 |
500 |
1000 |
5500 |
0805 |
1000 |
0 |
1000 |
6500 |
이런식으로 8월 전체날짜를 돌면서 누계를 다시 보여줘야합니다.
단순한 UPDATE문으로는 도저히 답이 안나오네요. FOR문 돌듯이 8월 전체 날짜 돌면서 합계, 누계값을 다시 보여주고 싶습니다.
중간값이 변하면 전체 날짜의 값이 변하게 하는 UPDATE문 없을까요?; 참고로 오라클10G 사용중입니다.
개발자분들 다들 행복한 주말 보내십시오! |