SQL - Left Join не работает с оператором switch - PullRequest
0 голосов
/ 27 июня 2011

Я использую MS Access 2007. Всякий раз, когда я набираю Left Join, я получаю ошибку, которая говорит, что Left Join не поддерживается.Вот SQL

TRANSFORM Count([Letter Status].Customer_ID) AS CountOfCustomer_ID 
SELECT Switch(
            [Race_1]=1,"White",
            [Race_1]=2,"Black",
            [Race_1]=3,"Asian",
            [Race_1]=4,"Hispanic/Latino",
            [Race_1]=5,"American Indian/ Alaskan Native",
            [Race_1]=6,"Native Hawaiian or Pacific Islander",
            [Race_1]=7,"Multiracial",
            [Race_1]=8,"Other",
            [Race_1]=9,"Unknown"
        ) AS Race 
FROM Demographics 
    INNER JOIN (
        [Status] 
        INNER JOIN 
            Research 
                ON [Status].Customer_ID = Research.Customer_ID
        ) 
        ON (Demographics.ID = [Letter Status].Customer_ID) 
        AND (Demographics.ID = Research.Customer_ID) 
WHERE ((([Status].Count)=1)) 
GROUP BY [Status].Count, Demographics.Race_1 
ORDER BY Research.Store_site 
PIVOT Research.Store_site In (1,2,3,4,5,6,7,8,9,10);

Может ли кто-нибудь использовать приведенный выше код, чтобы показать мне, где разместить левое соединение, чтобы строки каждой расы отображались в таблице?Кроме того, не могли бы вы показать мне, как заменить нулевые значения на 0 в этом коде?Я пытался реализовать NZ (), но безуспешно.

Пожалуйста, помогите.

1 Ответ

3 голосов
/ 27 июня 2011

Посмотрите внимательно на предложение FROM.

FROM Demographics 
    INNER JOIN (
        [Status] 
        INNER JOIN 
            Research 
                ON [Status].Customer_ID = Research.Customer_ID
        ) 
        ON (Demographics.ID = [Letter Status].Customer_ID) 
        AND (Demographics.ID = Research.Customer_ID) 

У вас есть условие ON, которое относится к [Letter Status], но [Letter Status] не включено в ваши исходные таблицы .... у вас есть одно, называемое [Status].

Начните с создания JOIN в конструкторе запросов, чтобы вы знали, что начинаете с SQL, который Access примет.

И упростите эту вещь, пока вы не разберетесь в СОЕДИНЕНИЯХ. Избавьтесь от Switch, TRANSFORM, PIVOT и GROUP BY до тех пор, пока у вас не заработает JOIN.

...