2016-04-25 73 views
-6

我正在使用Microsoft Access 2013和 我试图找到每个咖啡馆的订单数量,但显示的数量是错误的。 这是我的代码:SQL使用计数(*)函数

SELECT Avg(Feedback.RatingForExperience) AS caferating, 
     Count(tblOrder_Product.ProductCode) AS cafesales, Feedback.cafeid 
FROM tblOrder_Product, Feedback 
GROUP BY Feedback.cafeid; 

请帮助我,谢谢。

enter image description here Screen1

[]

+0

完整示例按照网站规则请。鉴于你的在线代码 - “修复你的查询”是唯一可能的答案。 – TomTom

+2

您需要一个JOIN链接表格,您现在有一个笛卡尔连接... – gbn

+0

也就是说,做一些类似'...从tblOrder_Product JOIN反馈ON tblOrder_Product.columnX = Feedback.columnY ...'。 – jarlh

回答

1

正如评论所说,你需要加入你的表连接在一起。以下是SQL。

SELECT Avg(Feedback.RatingForExperience) AS caferating, 
    Count(tblOrder_Product.ProductCode) AS cafesales, Feedback.cafeid 
FROM tblOrder_Product INNER JOIN Feedback ON tblOrder_Product.OrderCode = Feedback.OrderCode 
GROUP BY Feedback.cafeid; 

或者

SELECT Avg(Feedback.RatingForExperience) AS caferating, 
    Count(tblOrder_Product.ProductCode) AS cafesales, Feedback.cafeid 
FROM tblOrder_Product LEFT JOIN Feedback ON tblOrder_Product.OrderCode = Feedback.OrderCode 
GROUP BY Feedback.cafeid; 
+0

我无法想象每个订单都有相应的反馈。我当然不会经常留下反馈意见......我会推荐一个'LEFT JOIN',然后我不必向OP解释这个问题;) – MatBailie

+0

:)是的,我同意,没有足够的信息OP首先,这应该至少让他们走上正确的道路。 – MoondogsMaDawg