MS Access и SQL - неизвестные ошибки и проблемы с количеством (отличных) - PullRequest
1 голос
/ 20 июня 2011

У меня есть две таблицы.

[Letter Status]

Letter_ID       Customer_ID*        Letter_Status

и

[Customer Details]

Customer_ID*        Ethnicity        Gender

* обозначает ВНУТРЕННЕЕ СОЕДИНЕНИЕ.

Я хочу посчитать количество Letter_Status = 'Complete' для ВСЕХ мужчин, для КАЖДОГО этнического происхождения.

SELECT Ethnicity, Count(Letter_Status) AS N
FROM [Customer Details] INNER JOIN [Letter Status]
ON [Customer Details].Customer_ID = [Letter Status].Customer_ID
WHERE [Gender] = 'Male'
AND [Letter_Status] = 'Complete'
ORDER BY Ethnicity;

Я получаю эту ошибку:

«Вы попытались выполнить запрос, который не включает указанное выражение« этническая принадлежность »как часть агрегатной функции»

Я не знаю, как это исправить - я перепробовал все, что знаю.

Моя вторая проблема - мой запрос не будет определять ИЛИ упорядочивать мои результаты по уникальной (или ОТЛИЧНОЙ) этнической принадлежности. Предполагая, что кто-то может помочь мне преодолеть вышеуказанную ошибку (и я надеюсь, что это произойдет), мои данные будут выглядеть так:

Ethnicity           N

Asian               1
Caucasian           1
Hispanic            1
Asian               1
Hispanic            1

когда действительно, мне нужно, чтобы это выглядело так:

Ethnicity           N

Asian               12
Caucasian           9
Hispanic            7

Я почти уверен, что мне нужна функция Count (Distinct), но, к сожалению, я застрял с MS Access 2007, и это не поддерживается.

Я нашел это описание, но оно просто смутило меня, и я не смог успешно применить его к своим данным.

http://blogs.office.com/b/microsoft-access/archive/2007/09/19/writing-a-count-distinct-query-in-access.aspx

Ответы [ 2 ]

4 голосов
/ 20 июня 2011

Вам необходимо добавить группу по этнической принадлежности.

SELECT Ethnicity, COUNT(*) as EthnicityCount
FROM [Customer Details] INNER JOIN [Letter Status]
ON [Customer Details].Customer_ID = [Letter Status].Customer_ID
WHERE [Gender] = 'Male'
AND [Letter_Status] = 'Complete'
GROUP BY Ethnicity
ORDER BY Ethnicity;
2 голосов
/ 20 июня 2011

Добавьте GROUP BY Ethnicity] ваш запрос.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...