조잡한개발자
392
2021-09-16 17:43:46
1
119

쿼리문.. 조언구합니다..


먼저 하나의 신청서에 대한 다양한 결재자 사번컬럼들이 있고 결재 유무를 알려주는 칼럼이 한테이블에 다음과 같이 있습니다.

asab,bsab,csab,dsab,esab,fsab,ayn,byn,cyn,dyn,eyn,fyn 여기서 asab,bsab,csab,dsab,esab,fsab,컬럼들중 값이 하나라도 1111(제 사번)인 값을 가진 레코드들은 다 조회하는데(내가 결제해야할 레코드) 추가로 1111값을 가진 컬럼의 yn값도 y인 레코드들을 조회하고싶은데(내가 결제해야하는 레코든데 결재도 이미 한 레코드)

어떻게 접근해야할까요...

ex) asab,dsab이 1111값을 가진 레코드가 있을때 추가적으로 ayn,dyn 칼럼도 y이여만 조회하고싶습니다.

목적은 나 자신이 결재한 레코드와 미결재한 레코드를 조회하고싶습니다.

0
  • 답변 1

  • 웃지않는광대
    194
    2021-09-16 17:58:58 작성 2021-09-16 18:05:13 수정됨

    제일 추천드리는 방법은 테이블 설계를 다시 하는걸 추천합니다. (1:n)


    위 질문의 대한 sql 작성방법은 있으나,


    질문드린 방식으로 데이터를 뽑아내기엔 


    테이블이 좋은 구조라고 말씀드리긴 어려울거 같습니다.


    답변을 드리자면 union 을 이용해서 진행하셔도 되구요


    연결연산자를 이용해서 like 처리로 하셔도 되지만 그럴경우 사원번호체계에 따라서


    잘못된 데이터가 보일수도있을거 같습니다.


    마지막으로 or절을 이용하여 처리하셔도 될거 같습니다.


    ex)  where (

                          (asab = '1111' and ayn = 'Y'

                          or

                          (bsab = '1111' and byn = 'Y'

                          ....

                      )

  • 로그인을 하시면 답변을 등록할 수 있습니다.