2016-04-25 2 views
-6

Я использую Microsoft Access 2013 и Я пытаюсь найти количество заказов в каждом кафе, но указанное число неверно. Это мой код:sql using функция Count (*)

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

Вам нужно СОЕДИНЕНИЕ, чтобы связать таблицы, у вас есть декартово соединение прямо сейчас ... – gbn

+0

I.e. сделать что-то вроде '... FROM 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