2013-01-31 2 views
0

많은 양의 열이있는 대형 테이블이 있지만이 경우에만 3 열만 있으므로 내 날짜는 아래와 같습니다. 내가 원하는 것은 확실 부품 번호 혼자 서로 다른 제조업체가 완전히 다른에 대해 동일한 부품 번호를 가질 수없는 점을 명심다른 ID로 여러 번 표시되는 SQL 선택

을 하나 이상의 PartTerminologyID이있는 각 PARTNUMBER/BrandID 콤보를 찾을 수 있습니다

PartNumber BrandID PartTerminonogyID 
1234AD  343 
DD93873 DAB 343 
1-8383-343 STE 4424 
444 OTE 5656 
444 NYT 4543 
3434 IDY 4543 
64545 IDH 3455 
64545 IDH 8585 

항목. 따라서 식별자는 PartNumber/BrandID 콤보입니다. SKU가 도움이된다면 SKU로 생각할 수 있습니다. 그리고 내가 원하는 것은 동일한 SKU가 하나 이상의 PartTerminologyID를 갖는 모든 경우를 보는 것입니다. 결과와 함께 각 PartTerminologyID를보고 싶습니다.

+2

[무엇을 시도 했습니까?] (http://www.whathaveyoutried.com)? – Kermit

+0

"group by"및 "count (*)> 1"명령을 찾으십시오. – BoltBait

+0

njk, 나는 너에게 화합니 다만 – Chazt3n

답변

2

당신은 HAVING 절과 GROUP BY를 구현하는 다음을 사용할 수 있습니다 : 추가 테이블을 포함 할 경우

select partnumber, brandid, PartTerminonogyID 
from yourtable t 
where exists (select partnumber, brandid 
       from yourtable t1 
       where t.partnumber = t1.partnumber 
       and t.brandid = t1.brandid 
       group by partnumber, brandid 
       having count(distinct PartTerminonogyID) >1); 

SQL Fiddle with Demo

를 참조하십시오 당신은 것입니다 단지 JOIN 그들 :

select t.partnumber, t.brandid, t.PartTerminonogyID, p.partTerminologyName 
from yourtable t 
inner join parts p 
    on t.PartTerminonogyID = p.PartTerminonogyID 
where exists (select partnumber, brandid 
       from yourtable t1 
       where t.partnumber = t1.partnumber 
       and t.brandid = t1.brandid 
       group by partnumber, brandid 
       having count(distinct PartTerminonogyID) >1); 
+0

나를 이길. 나는 너의 편집을 보았을 때 너를 알았다. – Chazt3n

+0

한가지 더. PartTerminologyName을 가져 와서 결과에 추가하기 위해 테이블 ​​파트를 조회하고 싶습니다. – user2030553

+0

@ user2030553 다른 테이블에 조인을 추가하기 만하면됩니다. 내 편집보기 – Taryn

관련 문제