Ich versuche, eine Verkaufsberichtabfrage auszuführen.GROUP BY verursacht Probleme mit SUM()
Die Summe, die ich kaufe unter Verwendung SUM()
bin, ist nicht korrekt: es scheint, dass das Problem mit meinem GROUP BY
sein könnte.
Die Abfrage:
SELECT salesreport.canprevid,
storelist.organization,
SUM(quantity * unitprice * (100 - discount)/100) AS total,
storelist.external_manager,
storelist.manager
FROM storelist
INNER JOIN salesreport
ON storelist.store_id = salesreport.canprevid
WHERE salesreport.date >= "2016-01-01"
AND salesreport.date <= "2016-01-31"
GROUP BY canprevid
ORDER BY organization DESC;
Wie erwartet, ich bin ziehen können:
|canprevid|organization|total (for the month of january 2016)| external manager| manager
jedoch, wenn ich eine Gesamtsumme von total
tun, SUM()
verwenden, total
tut nicht gleich was ist die wahre Gesamtmenge für den Monat, sagen Januar 2016.
Ich bin nicht sicher, warum einige Datensätze entfernt werden oder wenn GROUP BY
Probleme mit den Berechnungen verursacht.
nicht trennen Sie Spaltennamen von | Es ist schwer zu lesen, stattdessen verwenden Komma (,) – geeksal
bitte ein Schema Ihrer Tabellen und SQL-Geige mit Beispieldaten, so dass wir an Ihrer Abfrage arbeiten können. Wenn Sie nicht über Sql Geige wissen, googeln Sie es einfach. – geeksal
INNER JOIN Salesreport ON storelist.store_id = salesreport.canprevid kann nicht allen Datensätzen beitreten, wenn sie nicht korrekt zugeordnet sind. Versuchen Sie GROUP BY zuerst zu löschen und überprüfen Sie, ob alle'report'-Datensätze vorhanden sind. –