쿼리 질문 좀 드리겠습니다. 2

by Kaiger [SQL Query] [2016.07.07 11:10:11]


table a , table b

a.forum_id -> 공지사항,FAQ,Q&A,자료실  이 네가지만 데이터가 들어갑니다.

a.gubun 은 공지사항일땐 데이터가 안들어가고 공지사항을 제외한 데이터가 들어갈 때 1,2,3,4 ... 이런식으로 숫자 하나가

들어갑니다.

b.name 을 가져와야 하는데

b.boardseq = 2 는 a.forum_id 의 FAQ 이고

b.boardseq = 3 는 a.forum_id 의 Q&A이고

b.boardseq = 4 는 a.forum_id 의 자료실  입니다.

a.gubun = b.categoryseq 는 같은 값입니다.

 

아래는 a table 데이터입니다.

forum_id, gubun, action, title   -------->컬럼

공지사항  INSERT 공지사항...
공지사항  UPDATE 공지사항... 수정
FAQ 4 UPDATE ㅇㅇㅇㅇㅇㅇㅇㅇ
FAQ  DELETE ㅇㅇㅇㅇㅇㅇㅇㅇ
공지사항  INSERT 7/6 공지
FAQ 6 INSERT 험피
 

공지사항 데이터는 gubun 이 null 입니다.

아래는 b table 데이터 입니다.

boardseq, categoryseq, name    -------->컬럼

2 0 질문구분
2 1 조사지침
2 2 프로그램(공통)
2 3 프로그램(학과)
2 4 프로그램(전산)
2 5 프로그램(취업)
2 6 홈페이지
2 7 기타
3 0 질문구분
3 1 조사지침
3 2 프로그램(공통)
3 3 학과담당자용
3 4 전산담당자용
3 5 취업담당자용
3 6 웹사용자용
3 7 기타
4 0 자료구분
4 1 조사지침
4 2 프로그램(공통)
4 3 학과담당자용
4 4 전산담당자용
4 5 취업담당자용
4 6 홈페이지
4 7 기타
 

가져와야 할 값은 b.name 을 가져와야 합니다.

where 절에 forum_id 값도 파라메터로 받습니다. (한글로)

SELECT a.LOGSEQ
  , a.FORUM_ID
  /*  , case when 공지사항 = '공지사항' then ''
           when 공지사항 = 'FAQ' then '2'
           when 공지사항 = 'Q&A' then '3'
           when 공지사항 = '자료실' then '4'
           else ''
             end */
--  , b.NAME as GUBUN
  , a.ACTION
  , a.TITLE
FROM TBPOSTLOG a
left outer join TBBOARDCATEGORY b
on a.GUBUN = b.CATEGORYSEQ
     WHERE 1 = 1
-- AND b.BOARDSEQ = DECODE(a.FORUM_ID,'공지사항','1', 'FAQ', '2', 'Q&A', '3', '자료실', '4')
    AND a.FORUM_ID = '공지사항' 
       AND TO_CHAR(a.REG_DATE, 'yyyymmdd') >= '20160630'
       AND TO_CHAR(a.REG_DATE, 'yyyymmdd') <= '20160707'
       ORDER BY a.LOGSEQ DESC

 

by 마농 [2016.07.07 11:33:29]

ON 절에 있어야 할 조인 조건이 Where 절에 있네요.

주석처리된 조건을 On 절로 올리세요.

 

검색조건은 WHERE 절에...

조인조건은 ON 절에...


by Kaiger [2016.07.07 11:45:16]

감사합니다!! 쉽게 해결되었네요~

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