INFORM_test_canti04_j 라는 테이블에Number,Pad,PwR,SITE0,SITE1,SITE2,SITE3,SITE4,SITE5,SITE6,SITE7 이라는 필드가 있습니다.
질문은 저 테이블에서 SITE0,SITE1,SITE2,SITE3,SITE4,SITE5,SITE6,SITE7 필드에 데이터를 Q로 시작하는 필터를 하고
SITE0,SITE1,SITE2,SITE3,SITE4,SITE5,SITE6,SITE7 필드에 데이터 중복 검사를 하려고 합니다.
select * from INFORM_test_canti04_j where SITE0 in(select SITE0 from INFORM_test_canti04_j where SITE0 like 'Q%' or SITE1 like 'Q%' or SITE2 like 'Q%' or SITE3 like 'Q%' or SITE4 like 'Q%' or SITE5 like 'Q%' or SITE6 like 'Q%' or SITE7 like 'Q%' group by SITE0,SITE1,SITE3,SITE4,SITE5,SITE6,SITE7 having count(*)>1)
안되는 실력으로 이렇게 쿼리를 만들어 봤으나 중복데이터가 검사가 안됩니다.
도움좀 부탁드리겠습니다. 어떤 부분이 잘 못 된건지요? 회사에서 혼자 개발할려니 물어볼 사람이 없습니다.
부탁드리겠습니다.
Comment 3
-
양재동살아요
2015.12.29 18:10
-
minsouk
2015.12.29 18:47
use tempdb
goif object_id ('tblx') is not null
drop table tblx
gocreate table tblx
(idx int
,c1 varchar(10)
,c2 varchar(10)
)
goinsert into tblx values (1, 'qa', 'qa')
insert into tblx values (2, 'aa', 'qa')
insert into tblx values (3, 'aa', 'qb')
go; with base as
(
select *
from
(
select idx, colno, case colno when 1 then c1 else c2 end c12
from tblx a
cross join (select 1 'colno' union all select 2) b
) a
where c12 like 'q%'
)
, baseSearch as
(
select c12
from base
group by c12
having count(*) > 1
)
select distinct idx
from baseSearch a
join base b
on a.c12 = b.c12
go -
항해자™
2015.12.30 00:19
-- drop table dbo.tSample create table dbo.tSample ( cLog int not null , cSite1 varchar(100) not null , cSite2 varchar(100) not null , cSite3 varchar(100) not null , cSite4 varchar(100) not null , cSite5 varchar(100) not null , cSite6 varchar(100) not null , cSite7 varchar(100) not null ) insert into dbo.tSample with(tablock) select top 100000 row_number() over(order by (select 1)) , a.[type] , b.[type] , c.[type] , a.[type] , b.[type] , c.[type] , a.[type] from master.dbo.spt_values as a , master.dbo.spt_values as b , master.dbo.spt_values as c go select cLog , cSite from dbo.tSample as a cross apply ( select * from ( values (a.cSite1) , (a.cSite2) , (a.cSite3) , (a.cSite4) , (a.cSite5) , (a.cSite6) , (a.cSite7) ) as x (cSite) ) as b where cSite like 'G%' group by cLog , cSite having count(*) > 1 go
필터는 되는데요 ㅠㅠ