Ошибка синтаксиса Select COUNT(distinct)

Всем добрый день! Не могу понять в чем проблема, при запуске необходимой функции, которая должна выводить самый популярный товар вылетает ошибка: Ошибка синтаксиса (Пропущен оператор) в выражении запроса count(distinct P.Supplier). Прочел уже не мало литературы, но в чем проблема так и не могу понять. Для справки: -работаю в RAD Studio XE8; -БД Access; -код неработающей функции
    with ADOQuery1 do
    begin
      Close;
      SQL.Clear;
      SQL.Add('Select T.Name, count(distinct P.Supplier)');
      SQL.Add('from Поставки P, Товар T');
      SQL.Add('where(T.N=P.N1)');
      SQL.Add('Group By T.Name');
      Open;
    end;
Заранее всех благодарю за помощь!
6 ответов

так не получитсясначала нужно отобрать уникальные с помощью distinct, а потом уже делать count


Смысл понят, но, если не затруднит, помогите с кодом


я бы так сделал
SELECT t.name, COUNT(P.Supplier)
FROM (SELECT P.Supplier FROM Поставки P GROUP BY P.Supplier) p
JOIN Товар T ON T.N=P.N1
GROUP BY T.Name
но это для MSSQL, в аксессе я не силен)


Покопавшись в глубинах интернета, понял, что функция distinct в запросах SQL для Access не подходит... поэтому вопрос теперь встает так: "Чем можно заменить эту функцию, чтобы она подошла для Access?" Всем спасибо за помощь!


А вас не смущает, что Акцес в сотнях тысяч приложений уже больше 20 лет в мире используется, в том числе там прекрасно применяется SQL инструкция distinct. Вы не любите кошек? Да вы просто не умеете их готовить!


поэтому вопрос теперь встает так
а если мой запрос разбить на 2 - разве в аксессе он не отработает?