2016-07-21 12 views
1

このトピックに関する以前の質問の一部を見直しましたが、私の問題の答えを得ることはできません。ネストされた内部結合と外部結合のMSアクセス

私は3つのテーブル(ロット、メニュー、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内にネストすることができます参加するマルチテーブル内の結合が、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

問題は左結合で複数の条件とあったが判明。

括弧を付けて解決しました。 LEFT OUTER Accessで参加

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

関連する問題