database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
ㆍOracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
Oracle Q&A 41410 게시물 읽기
No. 41410
SELECT 데이터끼리 뺄셈연산 조회
작성자
지구본(kkfndi0903)
작성일
2017-05-26 16:36ⓒ
2017-05-26 16:37ⓜ
조회수
6,038

CREATE TABLE budget(

user_id VARCHAR2(50),budgetmoney NUMBER(10,0) not null,

budgetstart VARCHAR2(25),budgetend VARCHAR2(25) not null);

----------------------------------------------------------

=데이터

budgetmoney / budgetstart / budgetend / user_id

2854000 / 2017-05-25 / 2017-05-30 / wwww

2400000 / 2017-05-26 / 2017-05-30 / qqqq

 

Create table cashtable(

idx number(6,0) PRIMARY KEY,

user_id VARCHAR2(50),reg_date VARCHAR2(25),part VARCHAR2(25),way VARCHAR2(25),

kind VARCHAR2(25),content VARCHAR2(40), money NUMBER(11,0) not null);

----------------------------------------------------------

=데이터

idx / user_id / reg_date / part / way / kind / content / money

79 / qqqq / 2017-05-26 / 수입 / 현금 / 기타 / 보너스 / 50000

80 / qqqq / 2017-05-26 / 지출 / 카드 / 식비 / 떡볶이 / 55000

81 / wwww / 2017-05-26 / 지출 / 카드 / 식비 / 냉면 / 5000

82 / wwww / 2017-05-27 / 지출 / 카드 / 식비 / 갈비찜 / 30000

83 / qqqq / 207-05-26 / 지출 / 카드 / 교통 / 지하철 / 20000

84 / wwww / 2017-05-27 / 지출 / 현금 / 교통 / 택시 / 8000

85 / qqqq / 2017-05-31 / 지출 / 현금 / 식비 / 오뎅 / 50000

 

이렇게 2개의 테이블과 각 테이블 내용들이 있는데요.

여기서

SELECT를 하려는데 budgetstart부터 budgetend기간 사이에 있는 reg_date들의 수입부분 지출부분을 계산하며 총지출액을 보여주게 하려고 합니다.

qqqq의 총지출액(2379500) = qqqq의budgetmoney(2400000) +수입(50000) -총지출(70500) 을 통해 총지출액 구할려고 합니다. 그럼 qqqq의 총지출액 2379500 가 어떻게 해야 나올까요...

SELECT .... 를 어떻게 써야 할지좀 부탁드립니다...

 

 

 

 

 

 

 

 

이 글에 대한 댓글이 총 1건 있습니다.

SELECT b.user_id
     , b.budgetmoney
     , b.budgetstart
     , b.budgetend
     , NVL(SUM(DECODE(c.part, '수입', c.money)), 0) 수입
     , NVL(SUM(DECODE(c.part, '지출', c.money)), 0) 지출
     , b.budgetmoney
     + NVL(SUM(DECODE(c.part, '수입', c.money)), 0)
     - NVL(SUM(DECODE(c.part, '지출', c.money)), 0) 잔액
  FROM budget b
     , cashtable c
 WHERE c.user_id = b.user_id
   AND c.reg_date BETWEEN b.budgetstart AND b.budgetend
 GROUP BY b.user_id, b.budgetmoney, b.budgetstart, b.budgetend
;

마농(manon94)님이 2017-05-29 09:55에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
41413오라클의 golden gate(이하 ogg)에 대해서 질문 드립니다. [1]
김흥교
2017-06-01
6197
41412오라클 쿼리 오류 질문 [3]
oracle
2017-05-31
18625
41411주소 마스킹 질문입니다. [4]
이호수
2017-05-30
10648
41410SELECT 데이터끼리 뺄셈연산 조회 [1]
지구본
2017-05-26
6038
41408오라클12c 서버 설치와 오라클12c 클라이언트 설치의 차이점
오라클
2017-05-22
6621
41407오라클 쿼리 작성시 질문이요.... [2]
백현선
2017-05-22
5952
41406오라클 Date 시간 출력 고민. [2]
지구본
2017-05-22
6999
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.050초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다