쿼리 하나 질문드리려고 합니다. 0 13 914

by 카지노무스 [SQL Query] MSSQL [2021.01.14 16:51:44]


그림.png (15,565Bytes)
그림2.png (14,537Bytes)

TB_STOCK, TB_WARE 라는 2개의 테이블이 있다고 가정하겠습니다.

TB_STOCK 에서 STOCK_CNT 라는 컬럼을 가져오고 싶고 TB_WARE 에서는 WARE_CNT 라는 변수를 가져오고 싶었습니다.

그래서 저는

 SELECT STOCK_CNT, WARE_CNT

  FROM TB_STOCK TS

    FULL OUTER JOIN TB_WARE TW 

     ON TS.ID = TW.ID

라고 쿼리문을 작성하였습니다. 

그런데 STOCK_CNT 에서는 값이 잘 나오는데 

WARE_CNT 라는 컬럼은 값이 제대로 나오지 않는 항목들이 생겼습니다.

WARE_CNT 항목을 전부다 나오게 하려면 어떻게 해야 하나요 ...???

 

by 정경민 [2021.01.14 17:01:59]

FULL OUTER JOIN은 양쪽 LEFT OUTER JOIN으로 한쪽 테이블에만 데이터가 있어도 값은 다른 테이블 값엔 비어서 보여질 수 있어요. 

조건절을 다시 확인하시거나 INNER조인으로 바꿔주세요. 


by 카지노무스 [2021.01.14 17:06:22]

TB_WARE 테이블에 값이 들어가 있는데 왜 비어져서 보이는걸까요 ??? 그림을 첨부하였습니다...


by 정경민 [2021.01.14 17:10:35]

TB_WARE  여기 테이블에는  ID 3,4가있지만 TB_STOCK 여기 테이블엔 3,4, 값이없어서요 양쪽다 있는경우에 CNT값이 나타나고 한쪽데이터가 없으면 비어서 나오게 돼요

 


by 카지노무스 [2021.01.14 17:17:06]

없는 경우 에도 값을 나오게 하려면 어떻게 해야 하나요 ??

없는경우에도 위그림에서 WARE_CNT 값을 출력하고 싶습니다.


by 정경민 [2021.01.14 17:19:40]

TB_WARE 테이블에 ID값 3,4에 WARE_CNT값이 존재하나요?


by 카지노무스 [2021.01.14 17:20:31]

존재하지 않습니다.


by 카지노무스 [2021.01.14 17:21:06]

만약 존재하지 않을때 출력이 안된다면 쿼리를 어떤식으로 짜야 하나요..???


by 마농 [2021.01.14 17:20:49]

실 사용 쿼리가 아닐 듯 하네요. 실제 데이터가 널일 수도 있구요.
질문의 쿼리가 실제 쿼리와 다를 수 있을 듯 하네요.
다른 조건이 더 있다던가? 다른 조인이 더 잇다던가?
실제 모습을 보여주세요.


by 정경민 [2021.01.14 17:22:48]

위에 마농님처럼 봐야할 것 같아요. 그리고 존재하지 않늗네 보여진다고하면 데이터를 입력하는 게 맞는거고여. 없는 걸 억지로 보여줄 수는 없습니다.


by 마농 [2021.01.14 17:38:41]

원본 대비 결과표를 보여주세요.
- 원본 : tb_stock, tb_ware 각각의 원본 예시 자료표
- 결과 : 위 두 테이블 원본으로 부터 원하는 결과표


by 마농 [2021.01.14 18:00:06]

쿼리를 보니 복잡한 상황입니다.
출력 컬럼이 어느 테이블의 컬럼인지 명확하게 표시해 주시고
WHERE 절의 역할이 뭔지 명확해야 합니다.
WHERE 절 때문에 아우터 조인이 무효가 됩니다.
실제 상황에 부합하는 예시자료 또는 설명이 필요합니다.


by 정경민 [2021.01.14 18:02:24]

단일 MQ테이블에서만 GWIIEOO10000 으로 조회했을때 CD_CMP, CD_CLO 두개 다 값이 들어가있으면 보여지는게 맞을텐데 

테이블 하나씩 조회하면서 

CD_KLO, CD_CMP, NO_ID 이 조건 세개 값 하나씩 비교해보면서 CNT값이 존재하는지 확인해보시고 NULL경우 안보이는게 맞습니다. 데잍터를 입력하세용.


by 우롱 [2021.01.14 18:37:06]

짧은 소견으로 저 경우에는 UNION ALL 을 이용해서 구현하는 것이 제일 나아 보입니다.

테이블에 데이터가 많거나 sort 가 들어가는 경우 인덱스를 줘서 성능을 향상시키는 방향으로 전환하는건 어떨런지요..

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입