【发布时间】:2011-10-21 14:07:13
【问题描述】:
我有一个问题:
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
我正在等待尝试运行它的人的回复,看看这是否对他们有用。
更新:
这不起作用。现在,它告诉我:
查询表达式“中的语法错误(缺少运算符)。
然后,它突出显示 dbo_tblBidder.bidder_number 中的“mber”,其中显示:
dbo_tblItem ON dbo_tblItem.item_bidder_number = dbo_tblBidder.bidder_number
回答:
【问题讨论】:
-
查看此链接是否有助于警告您有关 Access 和 SQL Server 之间的其他差异:sqlserver2000.databases.aspfaq.com/…
-
@HansUp 谢谢,这将非常有帮助。我实际上也是 SQL 的新手,来自 MySQL。但是不得不去 MS Access 并不是很有趣。我很欣赏这个链接。 =)