내 제목은 약간 모호하지만 아래에서 설명하려고합니다.논리/조건이있는 왼쪽 결합
두 개의 조인으로 뷰 (A)를 만들었습니다. 다른 뷰 (B)와 뷰를 결합하려고합니다. 두보기에는 연도 필드, 회사 ID, 업종 ID 및 A가 포함되어 있습니다. I 또는 U 값을 갖는 제품 코드입니다.
뷰 B에는 모든 회사의 직원 ID가 자연히 포함되어 있습니다. 신분증. 모든 종업원 ID는 I, U 또는 둘 다인 제품 코드를 가질 수 있습니다. 두 가지 모두있는 경우 생산 코드에서 식별되는 동일한 직원 ID가 두 개 있습니다.
이제 연도, 고객 ID, 업종 ID 및 제품 코드에서보기 A에 가입하려고합니다. 그러나 B보기의 모든 고객 ID가 두 번 발생할 수 있기 때문에 (해당 고객의 기본 직원이 제품 코드 I과 U를 모두 가지고있는 경우) 한 번만 가입하고 싶습니다.
I 및 NOT U : 165'370
U와 NOT 내가 : 45'27
U와 I : 48'920
이
은 제품 코드에 대한 고객 ID의 분포left join [raw].[ViewA] a on a.year=b.year and a.CustomerID=b.CustomerID
and a.IndustryID=b.IndustryID and a.ProductCode ='I'
이
가 나는의 CustomerID는 제품 코드가 난 단지 고객 ID 당 한 번만 가입하려는 이유를 (U)가 모든 레코드를 제외하고있어 비록 내가 현재 실행하고있어 가입되어/Year/IndustryID는 나중에 View A의 다른 값을 집계하기 때문에 그 값을 두 번 표시 할 수는 없습니다. 만약 내가 제대로 이해하고현재 결과
Year CustomerID IndustyID ProductCode Value
2015 A Z I 50
2015 A Z U NULL
2015 B Z I 40
2016 A Z I 20
2016 B Z U NULL
나는 무엇
[의사]
left join (Select *, rank() over (partition by whatMakesItUnique Order by ProductCode) distinction From tableA) a
on your conditions + a.distinction = 1
의 I 다음과 같은 것을 시도,
Year CustomerID IndustyID ProductCode Value
2015 A Z I 50
2015 A Z U NULL
2015 B Z I 40
2016 A Z I 20
2016 B Z U 30
길 너무 많은 텍스트, 너무 적은 데이터. 귀하의 데이터에 문제가 있음을 알 수 없으므로 귀하를 도와 드릴 수 없습니다. 질문을 편집하고 문제를 보여주는 샘플 데이터를 포함하십시오. –
원하는 결과를 얻으려면 두보기에서 일부 샘플 데이터를 추가하십시오. 이것은 당신이 언급 한 것 이상을 설명 할 것입니다. –
안녕하세요. 귀하의 설명이 명확하지 않습니다. 입력에 어떤 행이 표시되는지를 기준으로 원하는 결과에 어떤 행이 표시되는지 말하십시오. 필요한 출력 및 원하는 출력이 있으면 실행 가능한 예제 입력, DDL,보기를 제공하십시오. 또한 귀하의 현재 출력. [mcve]에 읽고 읽습니다."내가보기 A에 가입하고 싶다"는 의미는 무엇입니까? B? "나는 단지 한 번 가입하고 싶다"는 의미는 무엇입니까? 그리고 제품을 포함한 칼럼에서 A와 B를 합치는 것은 아닙니다. 당신은 무언가 * 같은 것을 의미합니다 - 그게 무슨 뜻입니까? 당신은 실제로 당신이 의미하거나 명확하게 쓰지 않습니다. – philipxy