2016-04-25 15 views
-6

Ich benutze Microsoft Access 2013 und Ich versuche, die Anzahl der Bestellungen in jedem Café zu finden, aber die angezeigte Nummer ist falsch. Dies ist mein Code:sql mit Count (*) Funktion

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

Bitte helfen Sie mir, danke.

enter image description here Screen1

[]

+0

Komplettes Beispiel gemäß Aufstellungsortrichtlinien bitte. Angesichts Ihrer In-Line-Code - "Fix your Query" ist die einzige mögliche Antwort. – TomTom

+2

Sie benötigen einen JOIN, um die Tabellen zu verknüpfen, Sie haben jetzt eine kartesische Verbindung ... – gbn

+0

I.e. Tun Sie etwas wie '... FROM tblOrder_Product JOIN Feedback ON tblOrder_Product.columnX = Feedback.columnY ...'. – jarlh

Antwort

1

Wie in den Kommentaren erwähnt, müssen Sie Ihre Tabellen miteinander verbinden. Unten ist das 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; 

Oder

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

Ich kann mir nicht vorstellen, dass jede Bestellung eine entsprechende Rückmeldung hat. Ich gebe kein Feedback sehr oft zurück ... Ich würde ein 'LEFT JOIN' empfehlen und dann bin ich davon weg, das dem OP erklären zu müssen;) – MatBailie

+0

:) Ja, ich stimme zu, habe nicht genug Informationen von OP zu beginnen, sollte dies zumindest sie auf den richtigen Weg bringen. – MoondogsMaDawg