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
운영게시판
최근게시물
MySQL Q&A 30272 게시물 읽기
No. 30272
sql로 loop처럼 처리하기 가능한지요
작성자
서정탁(thedays)
작성일
2012-06-21 09:19
조회수
9,073

sql문을 통해 해결해야 할 사항이 있는데 이리해봐도 안되고 저리해봐도 안되어

많은 고수님들의 의견 부탁드립니다.

테이블 A              

일련번호  순번 값

001            1   100

001            2    50

001            3    40

002            1    80

002            2    50

테이블 B

일련번호       합계

001                200

002                100

 

SQL 쿼리문을 이용해서 처리해야 할 것이 테이블B의 일련번호별 합계를 테이블A의 일련번호에 대한 순번으로

순차적으로 차감해서 계산해야 하는 방식입니다

즉...계산되는 방식이

일련번호    순번     값        합계                                    차이(합계 - 값)

001            1          100       200(테이블B의 합계)                100

001            2          50         100(차이값)                                50

001            3          40          50 (차이값)                                10

002            1           80        100(테이블B의 합계)                 20

002             2          50         20(차이값)                                -30

 

도와 주세요...ㅜ.ㅜ

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

깔끔하진 않겠지만, 참고하시라고 올려봅니다.

 

mysql> SELECT * FROM t_a;
+------+------+------+
| s1   | s2   | v    |
+------+------+------+
|    1 |    1 |  100 |
|    1 |    2 |   50 |
|    1 |    3 |   40 |
|    2 |    1 |   80 |
|    2 |    2 |   50 |
+------+------+------+
5 rows in set (0.00 sec)

mysql> SELECT * FROM t_b;
+------+------+
| s1   | v    |
+------+------+
|    1 |  200 |
|    2 |  100 |
+------+------+
2 rows in set (0.00 sec)

mysql> SELECT s1, s2, v, IF( s2 = 1, @r:=(SELECT v FROM t_b WHERE t_b.s1 = t_a.s1), @r ) AS total, @r:=@r-v AS diff FROM t_a ORDER BY s1, s2;
+------+------+------+-------+------+
| s1   | s2   | v    | total | diff |
+------+------+------+-------+------+
|    1 |    1 |  100 |   200 |  100 |
|    1 |    2 |   50 |   100 |   50 |
|    1 |    3 |   40 |    50 |   10 |
|    2 |    1 |   80 |   100 |   20 |
|    2 |    2 |   50 |    20 |  -30 |
+------+------+------+-------+------+
5 rows in set (0.00 sec)
 

 

박현우(lqez)님이 2012-06-21 19:15에 작성한 댓글입니다.
이 댓글은 2012-06-21 19:16에 마지막으로 수정되었습니다.
[Top]
No.
제목
작성자
작성일
조회
30275이런 결과를 얻으려면 어떻게 해야할까요? [1]
나이스바디
2012-06-25
9178
30274mysql 모니터링 [5]
와닥
2012-06-25
10691
30273테이블 업데이트 되고난후 느려짐.. [1]
권태곰
2012-06-21
9298
30272sql로 loop처럼 처리하기 가능한지요 [1]
서정탁
2012-06-21
9073
30271문자타입의 날짜와 시간 조회 문의 [1]
고영호
2012-06-21
8369
30270MSsql으로 되있는 쿼리문을 Mysql로 바꾸어 주세요.. [1]
문홍태
2012-06-20
7520
30269mysql 5.5.25 에서는 character-set-server 옵션을 지원하지않나요???? [1]
백재인
2012-06-19
8933
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.048초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다