SQL-запрос в MS Access - PullRequest
       2

SQL-запрос в MS Access

2 голосов
/ 10 августа 2011

Может кто-нибудь сказать мне, что не так с этим запросом, он говорит синтаксическая ошибка. Но синтаксис выглядит хорошо для меня.

SELECT Errortypereport.[Job Design Control],
       Errortypereport.[Detailer Name], Errortypereport.SuppilerName,
       Errortypereport.[Part Number], Errortypereport.[Change Level],
       Errortypereport.[Event Type Selected], Errortypereport.[Tracking Number],
       Errortypereport.[Event Date], Errortypereport.[Error Type Selected],
       Errortypereport.[Sub Type Selected], Errortypereport.ErrorSubTypeComment,
       Errortypereport.[Fundamental Errors Qty],
       Errortypereport.[Information Errors Qty],
       Errortypereport.[Readability Errors Qty], Errortypereport.[Error Sub Type Ref],
       Errortypereport.Enteredby, Errortypereport.[Wrapper engineer]
FROM Errortypereport INNER JOIN
     POSBLD ON (Errortypereport.Part Number)=(POSBLD.PartNumber)
           And (Errortypereport.Change Level)=( POSBLD.ChangeLevel);

сообщение об ошибке: синтаксическая ошибка (отсутствует оператор) в выражении запроса '(Errortypereport.Part Number) = (POSBLD.PartNumber) И (Errortypereport.Change Level) = (POSBLD.ChangeLevel) '

Ответы [ 4 ]

4 голосов
/ 10 августа 2011

Если в именах столбцов есть пробелы, их нужно обернуть вокруг [].

Между вашим номером и номером в вашем Вкл. Есть пробел, а также уровень изменения

ON (Errortypereport.Part Number)=(POSBLD.PartNumber) And (Errortypereport.Change Level)=( POSBLD.ChangeLevel);

Измените его на:

ON (Errortypereport.[Part Number])=(POSBLD.PartNumber) And (Errortypereport.[Change Level])=( POSBLD.ChangeLevel);
3 голосов
/ 10 августа 2011

Если имя столбца является зарезервированным словом или содержит пробел; Errortypereport.Part Number его необходимо экранировать с помощью [], который вы используете; Errortypereport.[Part Number].

3 голосов
/ 10 августа 2011

попробуй

ON Errortypereport.[Part Number]

и

Errortypereport.[Change Level]
0 голосов
/ 10 августа 2011

Вам не хватает скобок на вашем JOIN.Я бы также использовал псевдоним таблицы для удобства чтения.

SELECT 
    E.[Job Design Control], 
    E.[Detailer Name], 
    E.SuppilerName, 
    E.[Part Number], 
    E.[Change Level], 
    E.[Event Type Selected], 
    E.[Tracking Number], 
    E.[Event Date], 
    E.[Error Type Selected], 
    E.[Sub Type Selected], 
    E.ErrorSubTypeComment, 
    E.[Fundamental Errors Qty], 
    E.[Information Errors Qty], 
    E.[Readability Errors Qty], 
    E.[Error Sub Type Ref], 
    E.Enteredby, 
    E.[Wrapper engineer]
FROM Errortypereport E 
INNER JOIN POSBLD 
    ON (E.[Part Number])=(POSBLD.PartNumber) 
        AND (E.[Change Level])=(POSBLD.ChangeLevel);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...