test_1
cd |
div |
data1 |
data2 |
a |
0 |
1000 |
2000 |
a |
1 |
2000 |
3000 |
b |
0 |
3000 |
5000 |
b |
1 |
6000 |
2000 |
c |
0 |
5000 |
3000 |
c |
1 |
4000 |
7000 |
d |
1 |
2500 |
1500 |
test_2
cd |
div |
data1 |
data2 |
a |
0 |
500 |
700 |
a |
1 |
300 |
900 |
b |
0 |
700 |
800 |
b |
1 |
800 |
100 |
c |
0 |
500 |
600 |
c |
1 |
300 |
700 |
위 처럼 두 테이블이 있습니다. 구분값이 div이고 cd는 사람이나 업체라고 생각하면 됩니당.
SELECT
X.cd,
X.div,
X.data1 + Y.data1 AS DATA1,
X.data2 + Y.data2 AS DATA2
FROM test_1 AS X
INNER JOIN test_2 AS Y ON (X.cd = Y.cd AND X.div = Y.div)
WHERE X.div = 0
UNION ALL
SELECT
X.cd,
X.div,
X.data1 + Y.data1 AS DATA1,
X.data2 + Y.data2 AS DATA2
FROM test_1 AS X
INNER JOIN test_2 AS Y ON (X.cd = Y.cd AND X.div = Y.div)
WHERE X.div = 1
cd |
div |
data1 |
data2 |
a |
0 |
1500 |
2700 |
b |
0 |
3700 |
5800 |
c |
0 |
5500 |
3600 |
a |
1 |
2300 |
3900 |
b |
1 |
6800 |
2100 |
c |
1 |
4300 |
7700 |
하고 싶은 것은 div가 0인 것은 그대로 나오고 1인 것은 우측에 붙이고 싶습니다.
그리고 1번 테이블에만 있던 d값도 나오게 하고 싶어요.
원하는 결과물은
<------------ div: 0 --------------> <------------ div:1 ---------------->
cd |
data1 |
data2 |
data1 |
data2 |
a |
1500 |
2700 |
2300 |
3900 |
b |
3700 |
5800 |
6800 |
2100 |
c |
5500 |
3600 |
4300 |
7700 |
d |
0 |
0 |
2500 |
1500 |
부탁드려요 ㅠㅜ |