2016-07-21 4 views
1

이 항목과 관련된 이전 질문을 검토 한 결과 내 질문에 대한 답을 얻지 못하는 것 같습니다.중첩 된 내부 조인으로 외부 조인으로 MS 액세스

3 개의 테이블 (Lot, Menu, SKU)이 있습니다. LOT에 연관된 행이없는 경우에도

나는 주어진 SKU에 대한 모든 메뉴의 재료와 SKU에서 관련 제품의 이름을 필요

나의 현재 쿼리 : 나는 읽었

select m.IngrSKU, m.IngMeasurementID, s.productName, m.quantity as mQuantity, l.quantity, l.lot 
    from (Menu m 
    inner join sku s on m.ingrsku = s.sku) 
    left outer join lot l on m.ingrsku + '-070516j' = l.lot and l.destinationid = 2 
    where m.skutype = 4 and m.SKU = '1321' 

외부 조인은 내부 뒤에서 와야하지만 여전히 조인식이 지원되지 않음 오류가 발생합니다.

아이디어가 있으십니까?

업데이트 :이 쿼리는 SQL Server에서 원하는 결과 집합을 제공합니다. 액세스 할 수 없어요.

+0

은 가입 왼쪽한다 –

+0

어쩌면 액세스가 여기에 이상한 한계를 가지고있다 : "외부 내부 조인 다중 테이블 조인 내부에 중첩 될 수 있습니다 조인하지만 INNER가 외부 조인 내부에 중첩 될 수 없습니다 합류했다. " https://msdn.microsoft.com/en-us/library/bb243855(v=office.12).aspx – shawnt00

+0

@random_answer_guy : 왼쪽 결합을 시도하고 같은 결과를 얻었습니다. – JeffO

답변

0

대괄호없이 사용해 보셨습니까?

select m.IngrSKU, m.IngMeasurementID, s.productName, m.quantity as , mQuantity, l.quantity, l.lot 
from Menu m 
join sku s on m.ingrsku = s.sku 
left join lot l on m.ingrsku + '-070516j' = l.lot and l.destinationid = 2 
where m.skutype = 4 and m.SKU = '1321' 
+0

내가 읽은 모든 것은 브래킷이 액세스에 필요하다는 것입니다. – JeffO

-1
select y.IngrSKU, y.IngMeasurementID, y.productName, 
y.quantity as mQuantity, y.quantity, y.lot 
    from ((select * 
     from Menu m 
     inner join sku s on m.ingrsku = s.sku) x 
     left outer join lot l on x.ingrsku + '-070516j' = l.lot 

and l.destinationid = 2) y 
     where y.skutype = 4 and y.SKU = '1321' 
2

문제가 왼쪽에있는 여러 조건에 가입과 함께했다 밝혀졌습니다.

괄호를 추가하여 해결했습니다. 왼쪽 외부 액세스에 가입

select m.IngrSKU, m.IngMeasurementID, s.productName, m.quantity as mQuantity, l.quantity, l.lot 
    from (Menu m 
    inner join sku s on m.ingrsku = s.sku) 
    left outer join lot l on (m.ingrsku + '-070516j' = l.lot and l.destinationid = 2) 
    where m.skutype = 4 and m.SKU = '1321' 
+0

매우 이상 함. 나는 많은 접근을하지 않는다. 그러나 나는 결코 거기의 parens를보고 생각 나지 않는다. – shawnt00

관련 문제