안녕하세요. 현재 데이터를 엑셀형식으로 내려줄 필요가 있어 쿼리를 짜고 있습니다.
그런데 요구사항이 같은 데이터일 경우에 표시가 되지 않게 해달라고 해서 찾고 있는데 제 선에서 해결이 힘들어 문의를 남깁니다..
SELECT A.ID, A.NAME, B.ETC1, B.ETC2, B.ETC3 FROM CAT A INNER JOIN TB_ETC B ON A.ID = B.CATID
ID | NAME | ETC1 | ETC2 | ETC3 |
10 | CAT1 | A | A | A |
10 | CAT1 | B | B | B |
10 | CAT1 | C | C | C |
11 | CAT5 | D | D | D |
위와 같은 결과에서
ID | NAME | ETC1 | ETC2 | ETC3 |
10 | CAT1 | A | A | A |
B | B | B | ||
C | C | C | ||
11 | CAT2 | D | D | D |
E | E | E |
이런식으로 출력하는 방법이 있을까요?
후처리를 하려고 하니 너무 오래 걸려서 문의남깁니다..!
테이블 관계는 CAT(one to many)ETC 입니다!
-- ETC 테이블의 정렬 기준이 필요합니다. -- ORDER BY 1 부분의 1 대신 정렬기준항목 적어주면 됩니다. SELECT CASE ROW_NUMBER() OVER(PARTITION BY a.id ORDER BY 1) WHEN 1 THEN a.id END id , CASE ROW_NUMBER() OVER(PARTITION BY a.id ORDER BY 1) WHEN 1 THEN a.name END name , b.etc1 , b.etc2 , b.etc3 FROM cat a INNER JOIN tb_etc b ON a.id = b.catid ;