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
운영게시판
최근게시물
MS-SQL Q&A 7201 게시물 읽기
No. 7201
SQL 문의.....
작성자
도와주세요ㅜㅜ
작성일
2020-01-16 11:44
조회수
113

안녕하세요... 많은 도움 받고 있어요....

데이터의 생성에 관련된 문의 드립니다. 

 

A TABLE 에는 아래와 같이 값이 있어요..

 

A        B          D       E  

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

AA    B-1        1        2

AA    C-1         3     4

AA    D-1         3      5

KEY 값은 A+B 입니다.

 

B TABLE 에는

 

 

 

A        B         D        E

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

BB   B-1         1       5

BB   C-1         4       6

BB   D-1         5        9

BB    E-1         9      8

 

B와 A 테이블을 조인하여  A 테이블 기준으로 B의 E-1 의 데이터를 나타내고 싶고 값의 결과는 아래와 같이 나왔으면 합니다.

A           B          D         E

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

AA        B-1        1          2

AA        C-1        3          4

AA         D-1       3           5

AA         E-1        0         0

 

A 테이블에는 E-1이 없기 때문에 B테이블의 E-1을 A 테이블 집합으로 넣고 값은 당연히 없기  때문에  모두 0 으로 조회 하고 싶습니다. 

머리가 너무 아파요....ㅜㅜ

부탁 드려요.. 감사합니다.

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

'AA' 와 'BB' 간 연관관계 인게 맞나요?
'AA' 와 'BB' 와 같이 값이 딱 고정인가요? 다른 값은 없나요?

마농(manon94)님이 2020-01-16 14:02에 작성한 댓글입니다.

 마농님, 

글 확인해 주셔서 감사 드립니다. 

 

AA와 BB 데이터는 모두 테이블의 KEY COLUM 입니다.  하지만 조인을 하면 않됩니다. ㅜㅜ

 

두 테이블을 비교 해서 컬럼 B 열의 데이터를 가져 오면 되는 미션입니다. 

즉 A 테이블에 B 열은 B-1, C-1, D-1 이 있으며 A 테이블에 없는 B 테이블의 B 컬럼의 E-1  값을

A로 가져오며 나머지 D, E 컬럼의 값은 모두 0으로 가져 와야 합니다. 

이게 조인 관계가 없어서 값을 어떻게 가져 와야 할 지 상당히 고민이 되요....ㅜㅜ

도움 부탁 드립니다. ㅜㅜ

도와주세요ㅜㅜ님이 2020-01-16 14:23에 작성한 댓글입니다. Edit

 마농님 .

 

다만 B 컬럼의 값들로 조인은 가능한 상태이긴 합니다. 

이걸 EXCEPT 나 EXIST 나 이런걸 써 보려고 노력하고 있지만, 원하는 값이 나오지는 않아서요..ㅜㅜ

초보라 힘듭니다. 벌써 몇 시간 째 보네요...

도와주세요

도와주세요ㅜㅜ님이 2020-01-16 14:25에 작성한 댓글입니다. Edit

B컬럼이 E-1일때는 A컬럼 값을 뭘로 해야할지 모르겠네요.


WITH TT1 AS (
SELECT 'AA' as A, 'B-1' AS B, 1 AS D, 2 AS E
UNION ALL
SELECT 'AA' as A, 'C-1' AS B, 3 AS D, 4 AS E
UNION ALL
SELECT 'AA' as A, 'D-1' AS B, 3 AS D, 5 AS E
),
TT2 AS (
SELECT 'BB' as A, 'B-1' AS B, 1 AS D, 5 AS E
UNION ALL
SELECT 'BB' as A, 'C-1' AS B, 4 AS D, 6 AS E
UNION ALL
SELECT 'BB' as A, 'D-1' AS B, 5 AS D, 9 AS E
UNION ALL
SELECT 'BB' as A, 'E-1' AS B, 9 AS D, 8 AS E
)
SELECT COALESCE(TT1.A,'AA'), TT2.B, COALESCE(TT1.D,0), COALESCE(TT1.E,0)
FROM TT1 RIGHT OUTER JOIN TT2 ON TT1.B = TT2.B
;
정상규(pajama)님이 2020-01-16 15:21에 작성한 댓글입니다.

'AA' 와 'BB' 간 관련이 있다고 생각해서 연결 지은 것 아닌가요?
관련이 없다고 말씀 하시면 곤란한데요?
'AA' 와 'BB' 외에 다른 값은 어떻게 되나요?
A 테이블에 'AA' 외에 다른 값도 있을 듯 하고?
B 테이블에 'BB' 외에 다른 값도 있을 듯 한데?
연관 없는 것을 연결해 달라는 질문이 말이 안되네요.
뭔가 연관이 있을 것입니다.

마농(manon94)님이 2020-01-16 15:52에 작성한 댓글입니다.
이 댓글은 2020-01-16 15:55에 마지막으로 수정되었습니다.
[Top]
No.
제목
작성자
작성일
조회
7202마농님 글 감사 드립니다. 한번 더 혹시 봐 주실 수 있나요? [2]
도와주세요ㅜㅜ
2020-01-17
89
7201SQL 문의..... [5]
도와주세요ㅜㅜ
2020-01-16
113
7200GROUP으로 묶어서 가장낮은것만 출력하고 싶어요 [3]
김우성
2020-01-13
73
7199소숫점 자리기 함수 문의 [1]
한번 더 도와주세요ㅜㅜ
2020-01-09
83
7198가로 컬럼을 세로로 조회 하는 방법 [2]
한번 더 도와주세요ㅜㅜ
2019-12-13
164
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2019 DSN, All rights reserved.
작업시간: 0.070초, 이곳 서비스는
	PostgreSQL v11.5로 자료를 관리합니다