질문을 제가 애매하게 했네요 ㅠ
음... 테스트 데이터는 아래에 첨부하겠습니다.
c# 개발을 하고 있는데요 체크박스 6개가 있습니다.
체크박스 1 U, 체크박스 2 Z 체크박스 3,Q 체크박스 4,K 체크박스 5,C 체크박스 6,R
이런 식으로 되어있는데
필요한 체크박스 선택하고 확인을 누르게 되면 선택한 값에 따라 쿼리로 필터를 하고 중복 체크를 하려고 합니다.
테스트 데이터도 첨부 하였습다
select*from PINS_test_canti01 where (REFDES like 'U%' or REFDES like 'asdf%' or REFDES like 'asdf%' or REFDES like 'K%' or REFDES like 'asdf%' or REFDES like 'asdf%') and NET_NAME like 'Q%'
현제 필터까지는 했는데 중복 체크 부분을 못 하고 있습니다.
쿼리 조건은 필터 부분은 REFDES 컬럼에서 하고 중복검사는 NET_NAME 컬럼에서 해야합니다.
그리고 NET_NAME 부분은 무조건 Q로 필터후 중복 검사를 진행 해야합니다.
도움부탁드립니다.
Comment 2
-
양재동살아요
2016.01.27 11:58
-
Terry
2016.01.27 15:39
샘플로 올려주신 데이터들로는
상기 쿼리로 정상적으로 필터링 및 중복검사 되는듯한데요?
실제 테스트하는 데이터랑 샘플 데이터랑은 다를수 있으니
하기 쿼리로 한번 테스트해보세요..
---쿼리시작---
Select a.*
From PINS_test_canti01 a
Inner Join
(
Select z.NET_NAME
,z.REFDES
From PINS_test_canti01 z
Where Exists
(
Select x.NET_NAME
From PINS_test_canti01 x
Where (
x.REFDES Like 'U%'
Or x.REFDES Like 'asdf%'
Or x.REFDES Like 'asdf%'
Or x.REFDES Like 'K%'
Or x.REFDES Like 'asdf%'
Or x.REFDES Like 'asdf%'
)
And x.NET_NAME Like 'Q%'
And x.NET_NAME = z.NET_NAME
Group By x.NET_NAME
Having Count(*) > 1
)
And (
z.REFDES Like 'U%'
Or z.REFDES Like 'asdf%'
Or z.REFDES Like 'asdf%'
Or z.REFDES Like 'K%'
Or z.REFDES Like 'asdf%'
Or z.REFDES Like 'asdf%'
)
Group By z.NET_NAME
,z.REFDES
) x
On a.NET_NAME = x.NET_NAME
And a.REFDES = x.REFDES
Order By a.NET_NAME Asc
---쿼리끝---
추가로 쿼리를
select * from PINS_test_canti01 where NET_NAME in(select NET_NAME from PINS_test_canti01 where (REFDES like 'U%' or REFDES like 'asdf%' or REFDES like 'asdf%' or REFDES like 'K%' or REFDES like 'asdf%' or REFDES like 'asdf%') and NET_NAME like 'Q%' group by NET_NAME having count(*)>1)
이렇게 해보았는데 REFDES 컬럼 부분이 필터가 잘 안되는거 같습니다.
REFDES like 'asdf%' 이부분은 체크박스 선택안되어있을시에 스레기값 넣은겁니다.