SQL Server: Zählen Sie die Häufigkeit, mit der die ID aus Tabelle A in Tabelle B auftritt

8

Ich habe zwei Tabellen: Produkte und Bestellungen. Bestellungen verweisen Produkte über ProductID als Fremdschlüssel. Ich möchte wissen, wie oft jedes Produkt verkauft wurde, einschließlich des Produkts, das nur einmal verkauft wird. Ich kann es fast mit einem linken Join funktionieren lassen, aber das gibt immer noch eine Zeile mit einer Zählung von Eins für alle Produkte, unabhängig davon, ob sie in der Befehlstabelle vorhanden sind oder nicht.

Gibt es einen Weg, dies zu tun, der dich dazu bringt, so etwas zu bekommen?

%Vor%

... und so weiter.

    
Petter Brodin 30.01.2012, 17:00
quelle

3 Antworten

22

Wenn Sie nur ein COUNT(*) ausführen, dann zählen Sie Produkte, die keine Aufträge haben, als 1 ... stattdessen COUNT(o.OrderID) , was nur die Datensätze zählt, die einen Nicht-Null OrderID . %Vor%     

Michael Fredrickson 30.01.2012, 17:04
quelle
0

@Michael hat Recht.

Wenn Sie eine Auftragstabelle mit einer Zählung haben, würde es so aussehen:

%Vor%     
Hogan 30.01.2012 17:08
quelle
0

Etwas wie

%Vor%     
Tony Hopkinson 30.01.2012 17:05
quelle

Tags und Links