SQL Count in der Ansicht als Spalte
Ich versuche, das Ergebnis einer ZÄHLUNG, wie eine Spalte in meiner Ansicht.
Bitte finden Sie in der folgenden Abfrage für eine demo der Art von Sache, die ich möchte (dies ist nur für demo-Zwecke)
SELECT
ProductID,
Name,
Description,
Price,
(SELECT COUNT(*) FROM ord WHERE ord.ProductID = prod.ProductID) AS TotalNumberOfOrders
FROM tblProducts prod
LEFT JOIN tblOrders ord ON prod.ProductID = ord.ProductID
Dieser offensichtlich nicht funktioniert... aber ich Frage mich, was der richtige Weg dies zu tun wäre?
Ich bin mit SQL-Server
Du musst angemeldet sein, um einen Kommentar abzugeben.
Deine Abfrage würde funktionieren, wenn Sie entfernt die Verknüpfung - es ist nicht wirklich verwendet, und es wird zu der ord-Tabelle innerhalb der innere select-Unterabfrage Konflikt mit der ord-Tabelle, in der Sie sich angeschlossen haben zu:
Alternativ dazu, können Sie tatsächlich nutzen Sie die verknüpfte Tabelle in Verbindung mit
Group By
:Versuchen Sie dies:
Wenn Sie interessiert sind, nur die Produkte, die bestellt wurden, könnten Sie ersetzen Sie einfach den LINKEN ÄUßEREN JOIN-operation mit einem INNER JOIN:
Dies funktionieren wird:
Den "COUNT(ord.ProductId)" - Klausel stellt sicher, dass, wenn keine Aufträge gefunden werden, TotalNumberOfOrders gleich null.
[Später edit: ich vergaß die GROUP BY-Klausel. Doh!]