2009-03-16 52 views
4

誰も私の質問に間違っていると私に説明することはできますか?結合式はMS Accessでサポートされていませんか?

SELECT T2.TIPOPRODUTO 
    , T2.PRODUTO 
    , T1.ESPESSURA 
    , '' AS LARGURA 
    , '' AS COMPRIMENTO 
    , '' AS [ACABAM REVEST] 
    , '' AS [ESPECIF QUALIDADE] 
    , T1.CÓDIGORASTREABILIDADE 
    , T3.DATA 
    , T4.NOMEFANTASIA 
    , T7.NOME 
    , T5.DT_INICIO_RESERVA 
    , T1.PESO 
    , T5.DT_FIM_RESERVA 
    , '' AS DESTINO 
    , T3.OBSERVAÇÃO 
    , '' AS [CUSTO TOTAL] 
FROM ([TABELA DE PRODUTOS/ESTOQUE] LEFT OUTER JOIN [TABELA DE PRODUTOS] ON ([TABELA DE PRODUTOS/ESTOQUE].PRODUTO=[TABELA DE PRODUTOS].ID)) 
, [TABELA DE PRODUTOS/ESTOQUE ] AS T1 
    , [TABELA DE PRODUTOS] AS T2 
    , [TABELA DE MOVIMENTAÇÃO DE ESTOQUE] AS T3 
    , [TABELA DE FORNECEDORES] AS T4 
    , RESERVAS_PRODUTOS_ESTOQUE AS T5 
, [TABELA DE MOVIMENTAÇÃO DE PRODUTOS/ESTOQUE] AS T6 
    , [TABELA DE USUÁRIOS] AS T7 
    , [TABELA DE PEDIDOS DE COMPRA] AS T8 
WHERE (((T1.Produto)=[T2].[ID]) 
    AND ((T1.ID)=[T5].[ID_PRODUTO_ESTOQUE]) 
    AND ((T5.id_vendedor)=[T7].[ID]) 
    AND ((T3.ID)=[T6].[ID]) 
    AND ((T2.ID)=[T6].[PRODUTO]) 
    AND ((T4.ID)=[T8].[FORNECEDOR]) 
    AND ((T8.Comprador)=[T7].[ID])); 

私の最高の推測では、それは、この行に失敗している:

([TABELA DE PRODUTOS/ESTOQUE] LEFT OUTER JOIN [TABELA DE PRODUTOS] ON ([TABELA DE PRODUTOS/ESTOQUE].PRODUTO=[TABELA DE PRODUTOS].ID)) 
+0

これは、何も結合されていない多数のテーブルがあるという点で、幾分奇妙なクエリです。あなたが知っている限り、あなたが持っているセットアップで動作する唯一の参加は、INNER JOINです。しかし、デザインを再考する必要があるかもしれません。 – Fionnuala

+1

LEFT OUTER JOINは、Jet SQL構文ではありません。 LEFT JOINとRIGHT JOINを使用しますが、「OUTER」は省略します。他のSQL方言とは100%等しいかどうかは言えません。 –

+0

@David W. Fenton:あなたが主張するものをテストしましたか? Jet 3.51、Jet 4.0、ACE(2007)でテストし、LEFT OUTER JOINがすべて動作します。あなたのSQLをテストしなければ、私の意見では答えとして投稿するのは役に立たないだけです。 – onedaywhen

答えて

8

あなたは「古典的な結合」との結合文を混合している(コンマはどこ文での条件でテーブルのリストを区切り)、私はそれが許されないと信じています。

結合ステートメントのみを使用するようにクエリを変更します。 Accessでは、次のようにかっこを使用して結合をペアリングする必要があります。

from (((t1 join t2 on ...) join t3 on ...) join t4 on ...) 
関連する問題