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 27087 게시물 읽기
No. 27087
2개 테이블에서 날짜별 검색..가르쳐주세요..
작성자
디비초보
작성일
2007-10-17 23:03
조회수
2,236

2개의 테이블내용


A테이블

날짜1            사용자     금액1       금액2

2007-01-01    아무개1    1000        1000

2007-01-01    아무개2    5000        3000

2007-01-03    아무개3    2000        3000

2007-01-04    아무개1    1000        1000



B테이블


날짜2             금액3       금액4

2007-01-01    1000        1000

2007-01-02    5000        3000

2007-01-04     100          300

2007-01-04     200          400



출력

날짜             금액1합계      금액2합계       금액3합계       금액4합계

2007-01-01     6000                 4000             1000               1000

2007-01-02         0                      0             5000               3000

2007-01-03    2000                  3000                 0                    0

2007-01-04    1000                 1000               300                 700



위와 같이 출력하고 싶습니다.


어떻게 해야하나요.. 검색해도 못찾겠어요..

가르쳐주세요



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

union을 활용해보세요. 더 좋은 답은 잘 모르겠습니다.

그리고 사실 위의 경우에서는 (정확한 상황은 모르겠지만), 테이블의 구조를 바꾸는 편이 나으리라 생각되는 군요.

 

mysql> select * from test_a;

+------------+------------+------+------+

| date1 | user | a1 | a2 |

+------------+------------+------+------+

| 2007-01-01 | anonymous1 | 1000 | 1000 |

| 2007-01-01 | anonymous2 | 5000 | 3000 |

| 2007-01-03 | anonymous3 | 2000 | 3000 |

| 2007-01-04 | anonymous1 | 1000 | 1000 |

+------------+------------+------+------+

4 rows in set (0.00 sec)

 

mysql> select * from test_b;

+------------+------+------+

| date2 | a3 | a4 |

+------------+------+------+

| 2007-01-01 | 1000 | 1000 |

| 2007-01-02 | 5000 | 3000 |

| 2007-01-04 | 100 | 300 |

| 2007-01-04 | 200 | 400 |

+------------+------+------+

4 rows in set (0.00 sec)

 

select `date` ,sum(`a1`), sum(`a2`), sum(`a3`), sum(`a4`) from (

( select `date1` as `date`, `a1`, `a2`, 0 as `a3`, 0 as `a4` from `test_a` ) union ( select `date2` as `date`, 0 as `a1`, 0 as `a2`, `a3`, `a4` from `test_b` ) ) t group by `date`

 

+------------+-----------+-----------+-----------+-----------+

| date | sum(`a1`) | sum(`a2`) | sum(`a3`) | sum(`a4`) |

+------------+-----------+-----------+-----------+-----------+

| 2007-01-01 | 6000 | 4000 | 1000 | 1000 |

| 2007-01-02 | 0 | 0 | 5000 | 3000 |

| 2007-01-03 | 2000 | 3000 | 0 | 0 |

| 2007-01-04 | 1000 | 1000 | 300 | 700 |

+------------+-----------+-----------+-----------+-----------+

4 rows in set (0.00 sec)

 

 

 

박현우(lqez)님이 2007-10-22 18:17에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
27090index 컬럼의 조건이 부족해두 index를 사용하는지요? [2]
디비초보
2007-10-18
2420
27089정렬 질문입니다. [1]
성윤희
2007-10-18
2155
27088튜닝을 받았다고 하는데..문제점 지적 부탁 드립니다
튜닝
2007-10-18
2845
270872개 테이블에서 날짜별 검색..가르쳐주세요.. [1]
디비초보
2007-10-17
2236
27086astar100(?) 이런 툴(?) 아세요?
김순조
2007-10-17
2050
27085MySQL 데이터 양과 속도에 대해서 문의 드립니다. [3]
김대홍
2007-10-17
2461
27083ms-sql -> my-sql 로 어떻게 하나요 ㅜㅜ [1]
몰라몰라
2007-10-16
2344
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.028초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다