안녕하세요~ 현재 백신 관련해서 조회 조건 화면을 만들고 있는데 어떻게 조건문을 걸어주면 좋을지 여쭤보려고합니다!
조회 결과
이름 백신접종차수 백신종류 접종일
홍길동 미접종 아스트라제네카 1차 X
홍길동 1차 모더나 1차 2022.01.20
홍길동 2차 모더나 2차 2022.02.15
위 조회 조건은 현재 미접종, 1차접종, 2차접종에 대한 모든 조회조건이 나오도록 필터를 걸고 조회했을시 나오는 결과입니다.
하지만 문제는 위처럼 이미 백신 1,2차를 접종한 이력이 있는데 미접종한 다른 백신의 종류가 있으므로 미접종 백신의 이력이 같이 조회되면서 결과가 나오는 것 같습니다.
제가 출력하고 싶은 위예시의 정상적인 결과는 미접종 ROW를 제외한 결과가 출력되게 하는 것인데 어떻게 조회 조건을 해야할지 감을 못잡겠어서 질문드립니다!
현재 접종을 했는가에 따른 조건은 접종일이 있느냐 없느냐의 차이입니다!
SELECT A.VSL_NM ,CASE WHEN INSTR(A.LICNS_NM, 'Janssen') > 0 THEN '접종완료' WHEN INSTR(A.LICNS_NM, 'Primary') > 0 THEN '1차접종' WHEN INSTR(A.LICNS_NM, 'Secondary') > 0 THEN '접종완료' ELSE '미접종' END AS VACCINED , A.VALID_STRT_DT , A.LICNS_NM FROM CR_EMBRK_LICNS_TN A
백신의 내용을 주로 조회 하는게 맞지만 테이블안의 다른 컬럼들이 너무 많아서 어려울꺼같습니다 죄송합니다..
LICNS_NM 이 위 조회 결과에 적어둔 백신종류입니다!
테이블 안의 PK 말씀하시는 것일까요? 있습니다!
내일 답변주셔도 됩니다 감사합니다!!
WITH t AS ( SELECT a.vsl_nm , CASE WHEN INSTR(a.licns_nm, 'Janssen') > 0 THEN '접종완료' WHEN INSTR(a.licns_nm, 'Primary') > 0 THEN '1차접종' WHEN INSTR(a.licns_nm, 'Secondary') > 0 THEN '접종완료' ELSE '미접종' END AS vaccined , a.valid_strt_dt , a.licns_nm FROM cr_embrk_licns_tn a ) SELECT m.* FROM t m LEFT OUTER JOIN t s ON s.vsl_nm = m.vsl_nm AND s.vaccined != '미접종' AND m.vaccined = '미접종' WHERE s.vsl_nm IS NULL ;