Ich bin ein Informatikstudent arbeitet an einer Hausaufgabe. Ich versuche, die Anzahl der Bestellungen für jeden Verkäufer zusammenzufassen. Ich möchte, dass meine endgültige Ausgabe den Namen des Verkäufers anzeigt, zusammen mit der Anzahl der Aufträge, die er/sie erhält.SQL - Count Gesamtzahl der Aufträge von Verkäufer
Die Informationen werden in zwei separaten Tabellen gespeichert.
Beispieldaten.
Tabelle 1 - order_t
OrderID CustomerID OrderDate FulfillmentDate SalespersonID ShipAdrsID
1 4 2014-09-08 2014-11-25 3 NULL
2 3 2014-10-04 0000-00-00 3 NULL
3 1 2014-07-19 0000-00-00 2 NULL
4 6 2014-11-01 0000-00-00 5 NULL
5 4 2014-07-28 0000-00-00 3 NULL
6 4 2014-08-27 0000-00-00 3 NULL
7 1 2014-09-16 0000-00-00 2 NULL
8 4 2014-09-16 0000-00-00 3 NULL
9 6 2014-09-16 0000-00-00 5 NULL
Tabelle 2 - salesperson_t
SalespersonID SalespersonName
1 "Doug Henny"
2 "Robert Lewis"
3 "William Strong"
4 "Julie Dawson"
Hier ist meine letzte Abfrage. Das Problem ist, dass nur Daten für einen einzelnen Verkäufer zurückgegeben werden, der die ID 2 hat. Ich habe keine Ahnung, warum das passiert.
SELECT SalespersonName, COUNT(DISTINCT order_t.SalespersonID) AS TotalOrderQuantity
FROM salesperson_t, order_t
WHERE salesperson_t.SalespersonID = order_t.SalespersonID;
Sie sind, können Sie eine Gruppe fehlt verwenden alte Join-ish-Syntax, die niemand mehr verwenden sollte – Drew
Sie müssen loswerden (distinct). Sie möchten die Anzahl der Verkäufer-IDs in der Tabelle order_t angeben. Das gibt Ihnen die Anzahl der Bestellungen. Wenn also fünf '3' in der Auftragstabelle vorhanden sind, möchten Sie, dass sie alle in Ihrer Gruppe zusammengefasst sind. Graf distinct ist dafür unnötig und wird das wahrscheinlich vermasseln. Außerdem bin ich überrascht, dass Ihre Anfrage funktioniert, weil Sie nicht auf SalesPersonName gruppiert sind (dh nach der Where-Klausel "Gruppe nach SalesPersonName" hinzugefügt. – kermit