가계부 또 질문드려요;; 0 6 994

by jiyooon [Oracle 기초] [2013.08.01 11:34:30]



     NO  SORT DATE1                TIME1                MESSAGE              INCOME    OUTCOME
--------- ---------- -------------------- -------------------- ----------------------------------------  ----------     ----------
        2          1 2013/07/06           14:05:00             과자                                       1000
        3          1 2013/07/06           14:05:00             용돈                        50000
        4          1 2013/07/11           14:05:00             용돈                        50000
        5          1 2013/07/11           14:05:00             밥                                           30000
        6          1 2013/07/15           14:05:00             밥                                           10000
        7          1 2013/07/18           14:05:00             용돈                         30000

테이블이 이렇게 있는데요 

저기서 날짜별로 잔액을 얻으려고 하면 

 select date1, no, income, outcome, sum(income-outcome)over(order by date1, no) as balance
 from ayr
 where sort=1;
(여기서 sort는 다이어리 디비랑 가계부 디비를 테이블 하나로 만들려고 해서 분리하려고
다이어리는 0, 가계부는 1로 정해놓은거예요)

이렇게 하는거 아닌가요? 
이렇게 했더니 잔액에 아무것도 안나와요....

그리고 잔액 구할때  전날 잔액에서 오늘 지출을 빼고 수입을 합해야하는데 이렇게하는건 어떻게 해야하나요? 알려주세요 ㅠㅠ 
by 우리집아찌 [2013.08.01 11:42:29]

  sum(NVL(income,0)-NVL(outcome,0))over(order by date1, no) as balance

by jiyooon [2013.08.01 11:45:50]
감사합니다.!!

by 손님 [2013.08.01 16:30:42]

하나 더 물어볼게요 ;;
마지막 날짜 최종 잔액을 알고 싶은데

select max(sum(NVL(income,0)-NVL(outcome,0))over(order by date1, no) ) as total_balence)
from ayr
where sort=1
group by date1;
이렇게 했는데 안되서요....

어떻게해야하나요?


by 아린 [2013.08.01 16:38:14]
최종금액만 조회하실려면   SUM(수입 - 지출) 하시면 됩니다.

SELECT SUM(NVL(income,0) - NVL(outcome,0)) total_balance
  FROM ayr
 WHERE sort = 1

by 아린 [2013.08.01 11:46:59]
테이블 생성시  INCOME, OUTCOME 컬럼에 default 값으로 '0' 을 해주시면
NVL 함수를 별도로 해주시지 않으셔도 됩니다.

값이 안나오는 이유는 NULL + 숫자값은 NULL 을 반환하기 때문에 값이 안나오는 거에요.

by 손님 [2013.08.01 17:59:07]
아  네 감사합니다.~~~
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입