/ / SQL - Left Join nie działa z instrukcją switch - sql, ms-access, join, left-join

SQL - Left Join nie działa z instrukcją switch - sql, ms-access, join, left-join

Korzystam z MS Access 2007. Ilekroć wpisuję Left Join, pojawia się błąd, który mówi, że Left Join nie jest obsługiwany. Oto 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);

Czy ktoś może użyć powyższego kodu do wyświetleniami gdzie umieścić lewy łącznik, aby umożliwić pokazanie wierszy dla każdej rasy w tabeli? Czy możesz mi również pokazać, jak zastąpić wartości zerowe wartością 0 w tym kodzie? Próbowałem zaimplementować NZ (), ale nie powiodło się.

Proszę pomóż.

Odpowiedzi:

3 dla odpowiedzi № 1

Przyjrzyj się uważnie klauzuli 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)

Masz warunek WŁĄCZENIA, który odnosi się do [Statusu Listu], ale [Statusu Listu] nie jest uwzględniony w twoich tabelach źródłowych ... masz taki o nazwie [Status].

Zacznij od zbudowania JOIN w projektancie zapytań, abyś wiedział, że zaczynasz od SQL, który Access zaakceptuje.

I upraszczaj to, dopóki nie posortujesz JOIN. Pozbądź się Switch, TRANSFORM, PIVOT i GROUP BY, dopóki nie dołączysz DOŁĄCZENIA.