Использование оператора Like в SQL-коде.Ошибка синтаксиса - PullRequest
0 голосов
/ 29 января 2019

Я хочу использовать от 4 до 5 таблиц в коде.Но между кодом мне нужно использовать оператор like, чтобы использовать свойство contains.Я написал код, но код дает синтаксическую ошибку.Пожалуйста, сообщите.

SELECT 
    [RCDT Database].FUNCTIONALITY, 
    [RCDT Database].SPECIFICATION, 
    [RCDT Database].[TEST NAME]
FROM SelectedClearingName 
INNER JOIN Clearing ON (SelectedClearngName.ClearingName=Clearing.ClearingName) 
INNER JOIN FunctionalityWiseClearing ON (Clearing.ClearingName=FunctionalityWiseClearing.Clearing) 
INNER JOIN SelectedValues ON (FunctionalityWiseClearing.Functionality=SelectedValues.ListBoxValues) 
INNER JOIN [RCDT Database] ON ([RCDT Database].FUNCTIONALITY Like "" & [SelectedValued.ListBocValues] & "" 
INNER JOIN SelectedPaytype ON ([RCDT Database].[PAY TYPE]=SelectedPaytype.PaytypeValue; 

Ответы [ 3 ]

0 голосов
/ 29 января 2019

кажется, вам нужно много () вокруг элементов соединения

SELECT 
    [RCDT Database].FUNCTIONALITY, 
    [RCDT Database].SPECIFICATION, 
    [RCDT Database].[TEST NAME]
FROM  SelectedClearingName 
    INNER JOIN Clearing ON (SelectedClearngName.ClearingName=Clearing.ClearingName)
    INNER JOIN FunctionalityWiseClearing ON (Clearing.ClearingName=FunctionalityWiseClearing.Clearing) 
    INNER JOIN SelectedValues ON (FunctionalityWiseClearing.Functionality=SelectedValues.ListBoxValues)
   ...........
0 голосов
/ 29 января 2019

MS Access требует скобок около JOIN с:

SELECT [RCDT Database].FUNCTIONALITY, [RCDT Database].SPECIFICATION, [RCDT Database].[TEST NAME]
FROM ((((SelectedClearingName INNER JOIN
         Clearing
         ON SelectedClearngName.ClearingName = Clearing.ClearingName
        ) INNER JOIN
        FunctionalityWiseClearing
        ON Clearing.ClearingName = FunctionalityWiseClearing.Clearing
       ) INNER JOIN
       SelectedValues
       ON FunctionalityWiseClearing.Functionality = SelectedValues.ListBoxValues
      ) INNER JOIN
      [RCDT Database]
      ON [RCDT Database].FUNCTIONALITY Like "" & [SelectedValued.ListBocValues] & "" 
     ) INNER JOIN
     SelectedPaytype
     ON ([RCDT Database].[PAY TYPE] = SelectedPaytype.PaytypeValue; 
0 голосов
/ 29 января 2019

В Access (с тегами) SQL это будет:

Like "*" & [Selectedvalues.ListBoxValues] & "*"

Редактировать:

Уменьшить до:

SELECT 
    [RCDT Database].FUNCTIONALITY, 
    [RCDT Database].SPECIFICATION, 
    [RCDT Database].[TEST NAME]
FROM 
    [RCDT Database],
    SelectedClearingName 
INNER JOIN 
    Clearing ON (SelectedClearngName.ClearingName=Clearing.ClearingName) 
INNER JOIN 
    SelectedValues ON (FunctionalityWiseClearing.Functionality = SelectedValues.ListBoxValues) 
INNER JOIN 
    FunctionalityWiseClearing ON (Clearing.ClearingName=FunctionalityWiseClearing.Clearing) 
INNER JOIN    
    SelectedPaytype ON ([RCDT Database].[PAY TYPE]=SelectedPaytype.PaytypeValue
WHERE
    [RCDT Database].FUNCTIONALITY Like "*" & [SelectedValued.ListBocValues] & "*" 

Чего здесь не хватает, так это запутанных скобокAccess SQL, который я никогда не могу вспомнить.

Итак, удалите предложение Where, используйте дизайнер GUI для создания внутренних объединений, затем добавьте предложение Where.

...