Microsoft Access From SQL Database Query Выберите счетчик различная проблема - PullRequest
1 голос
/ 21 октября 2011

У меня есть запрос:

SELECT COUNT(DISTINCT dbo_tblBidder.bidder_id) AS TotalRegistrants, 
    SUM(dbo_tblItem.item_premium + dbo_tblItem.item_pr) AS SumTotal, 
    dbo_tblBidder.bidder_type

FROM dbo_tblBidder LEFT OUTER JOIN dbo_tblItem ON 
    dbo_tblItem.item_bidder_number = dbo_tblBidder.bidder_number AND 
    dbo_tblItem.item_sale_id = dbo_tblBidder.bidder_sale_id

WHERE (dbo_tblBidder.bidder_sale_id = 235)

GROUP BY dbo_tblBidder.bidder_type

Когда я пытаюсь выполнить это в MS Access, мне говорят:

Missing oporator 'COUNT(DISTINCT dbo_tblBidder.bidder_id)'

Когда я нажимаю «ОК», он выделяется"dbo_tblBidder".Этот запрос прекрасно работает на SQL-сервере, и я не знаю, чего, по мнению MS Access, не хватает.Любая помощь будет принята с благодарностью.

ОБНОВЛЕНИЕ:

Я действительно должен был попробовать:

SELECT     Total.count, SUM(dbo_tblItem.item_premium + dbo_tblItem.item_pr) AS SumTotal, dbo_tblBidder.bidder_type
FROM         dbo_tblBidder LEFT OUTER JOIN
                  dbo_tblItem ON dbo_tblItem.item_bidder_number = dbo_tblBidder.bidder_number   AND 
                  dbo_tblItem.item_sale_id = dbo_tblBidder.bidder_sale_id LEFT OUTER JOIN
                      (SELECT     COUNT(bidder_type) AS count, bidder_type
                        FROM          dbo_tblBidder AS tblBidder_1
                        WHERE      (bidder_sale_id = 235)
                        GROUP BY bidder_type) AS Total ON dbo_tblBidder.bidder_type = Total.bidder_type
WHERE     (dbo_tblBidder.bidder_sale_id = 235)
GROUP BY dbo_tblBidder.bidder_type, Total.count
ORDER BY dbo_tblBidder.bidder_type

Я жду ответа от человека, пытающегося запустить егочтобы увидеть, сработало ли это для них.

ОБНОВЛЕНИЕ:

Это не сработало.Теперь он говорит мне:

Синтаксическая ошибка (отсутствует оператор) в выражении запроса ".

Затем он выделяет" mber "из dbo_tblBidder.bidder_number, где он говорит:

dbo_tblItem ON dbo_tblItem.item_bidder_number = dbo_tblBidder.bidder_number

ОТВЕТ:: 1033 *

MS Access для запроса SQL

Ответы [ 2 ]

1 голос
/ 21 октября 2011

Доступ не поддерживает COUNT Distinct. Если вам это нужно, вы можете попробовать трюк здесь .

0 голосов
/ 21 октября 2011

У вас есть Distinct внутри агрегатной функции (функция Count). Удалите distinct, и оно должно работать нормально.

Если вам все еще нужно количество различных идентификаторов bidder_ID, я рекомендую включить это в отдельный запрос.

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