2013-08-30 3 views
-1

다음 쿼리가 있습니다. 나는 다른 테이블에 합류하기를 바라고 있습니다. 나는 쿼리가 값을 반환해야한다는 사실을 알고 있지만 값은 null로 돌아오고있다. 누구든지 내가 잘못하고있는 것을 본 사람이 있습니까? 이 시점에서 뇌가 튀었습니다. 일치가없는 경우 좌측 외측 가입왼쪽 조인에서 Null 값 가져 오기

SELECT 
    ss.NDC, 
    ss.ShipToAddressNo, 
    ss.QuantityShipped, 
    c.AccrualType, 
    ss.ExtendedPrice ExtendedPrice, 
    c.AccrualAmount CBAccrualAmount 
FROM 
    SalesSummary ss left join ChargebackAccruals c on 
     ss.ClassOfTrade = c.TradeClass and 
     c.AddressNo is null and 
     c.ShipTo is null and 
     c.ShortItemNo is null and 
     c.LotNumber is null and 
     ss.InvoiceDate = @RunDate and 
     ss.InvoiceDate between AccrualBeginDate and AccrualEndDate 
+0

문제가있는 샘플 데이터 세트를 제공해 주시겠습니까? – Taemyr

답변

0

ON 절의 조건은 조인의 일부이므로 AddressNo 또는 ShipTp 또는 ShortItemNo 또는 LotNumber에있는 데이터가있는 행은 NULL입니다.

아마도 WHERE로 옮기고 싶을 것입니다.

결과로 원하는 것은 무엇입니까?

+0

나는 당신의 글을 읽기 전에 이것을 했습니까? 감사. – Jeff

0

은 오른쪽이 null 포함될 표 B.에 일치하는 레코드 (가능)으로, 표 A에서 기록의 완전한 세트를 생성한다.

+0

하지만 일치하는 부분이 있습니다. 정상적인 조인을 할 때 실제 조인 값을 얻습니다. 왼쪽 조인을 할 때 null을 반환합니다 ... – Jeff

+1

물론 null을 반환합니다. 당신은'c.ShipTo가 null 인 곳 '에만 합류한다고 말하고 있습니다. – podiluska

관련 문제