레프트조인 기초 쿼리문좀 봐주세요.. 0 2 1,103

by 수이니 [Oracle 기초] [2017.08.03 09:14:55]


안녕하세요. 간단한쿼리문작성하고있는데.. sql문법에 맞지않다고 나와서 실행이안됩니다. 그런데 도통 뭐가 문젠지를 모르겠어요. 
u1, u2 따로따로 실행하면 분명 374개의 컬럼갯수가나오는데.. 문법에 뭐가 틀린게있는지 확인좀부탁드립니다
---------------------------------------------------
SELECT distinct * FROM USER_TAB_COMMENTS; 결과
- TABLE_NAME    TABLE_TYPE        COMMENTS
  EXPUSEINFO    TABLE          연구비집행내역
...(374건)
---------------------------------------------------
SELECT
   TABLE_NAME ,
   SUM(Decode( data_type, 'NUMBER', data_precision + data_scale, data_length )) 
   sumlength 
FROM
   user_tab_columns 
GROUP BY
   TABLE_NAME;

위 쿼리 결과 
-TABLE_NAME   SUMLENGTH
EXPUSEINFO    2541
...(374건)
---------------------------------------------------

두쿼리 레프트 조인 ! 

SELECT
	* 
FROM
	USER_TAB_COMMENTS AS u1 
		LEFT OUTER JOIN (	SELECT
								TABLE_NAME ,
								SUM(Decode( data_type, 'NUMBER', data_precision 
								+ data_scale, data_length )) sumlength 
							FROM
								user_tab_columns 
							GROUP BY
								TABLE_NAME) AS u2 
		ON u1.TABLE_NAME = u2.TABLE_NAME

sql문법 오류/..

 

두개를 TABLE_NAME 으로 조인해서 아래와같은 3개컬럼을 뽑는게 목표입니다

TABLE_NAME COMMENTS  SUMLENGTH

by 마농 [2017.08.03 09:22:46]

1. 문법오류
  - FROM 절에 AS 를 빼세요.
2. 논리오류
  - 아우터 조인은 불필요합니다. 이너조인으로 바꾸세요.
  - data_precision 은 전체 자리수
  - data_scale 은 소수점 이하 자리수.


by 수이니 [2017.08.03 09:41:50]

정말 감사합니다 ! 그런문제가 있엇군요 ..많은 도움되었어요 ㅎㅎ

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