MS Access Join подзапрос - PullRequest
       7

MS Access Join подзапрос

0 голосов
/ 16 ноября 2018

У меня есть данные в таблице 2, которые мне нужно использовать в качестве ключа для получения информации в таблице 1.Таблица 2 содержит информацию о номере детали, включая завод по производству и производственный процесс.Мне нужно передать в Таблицу 2 склад (завод) и номер детали и передать его мне, идентификатору завода и идентификатору процесса.Я попытался с SQL ниже, но он выдает синтаксическую ошибку, которая просто говорит «Синтаксическая ошибка в операции JOIN».Я бы предпочел не разбивать на отдельные операторы sql: /

SELECT 
    T1.MFRFMR03 AS Seq, 
    T1.MFRFMR04 AS [Desc], 
    T1.MFRFMR0S AS M2M, 
    T1.MFRFMR0Q AS Std_Labor, 
    T1.MFRFMR0M AS Std_Setup, 
    T1.MFRFMR0R AS Std_Units 
FROM 
    T1 LEFT JOIN 
                        (
                            SELECT 
                                T2.MAJRTEPLT, 
                                T2.MAJRTEID 
                            FROM 
                                T2 
                            WHERE 
                                (
                                    ((T2.PLT)=[Enter Plant Number]) 
                                    AND 
                                    ((T2.ITMID)=ucase$([Enter Part Number]))
                                )
                        ) ON ((T1.MFRFMR01)=(T2.MAJRTEPLT)) AND ((T1.MFRFMR02)=(T2.MAJRTEID))
WHERE 
    (
        ((T1.MFRFMR0Q)<>0) 
        AND 
        ((T1.MFRFMR0I)<>'S') 
        AND 
        ((T1.MFRFMR0G)=0) 
        OR 
        ((T1.MFRFMR0G)=99999) 
        AND
        (
            ((T1.MFRFMR01)=(T2.MAJRTEPLT)) 
            AND 
            ((T1.MFRFMR02)=(T2.MAJRTEID))
            EXISTS IN 
        )
    )   
ORDER BY 
    T1.MFRFMR03;

1 Ответ

0 голосов
/ 16 ноября 2018

Это потому, что у вашего подзапроса нет псевдонима. T2, который вы используете в подзапросе, виден только из этих скобок.

SELECT 
    T1.MFRFMR03 AS Seq, 
    T1.MFRFMR04 AS [Desc], 
    T1.MFRFMR0S AS M2M, 
    T1.MFRFMR0Q AS Std_Labor, 
    T1.MFRFMR0M AS Std_Setup, 
    T1.MFRFMR0R AS Std_Units 
FROM 
    T1 LEFT JOIN 
                        (
                            SELECT 
                                T2.MAJRTEPLT, 
                                T2.MAJRTEID 
                            FROM 
                                T2 
                            WHERE 
                                (
                                    ((T2.PLT)=[Enter Plant Number]) 
                                    AND 
                                    ((T2.ITMID)=ucase$([Enter Part Number]))
                                )
                        ) SUBQ ON ((T1.MFRFMR01)=(SUBQ.MAJRTEPLT)) AND ((T1.MFRFMR02)=(SUBQ.MAJRTEID))
...
...