Ich bin mit der WideWorldImporters-Datenbank beschäftigt Microsoft gibt für Leute, die SQL lernen (versucht, besser zu werden, da ich oft SQL bei der Arbeit mache). Ich versuche, die Summe aller Verkäufe von Staat im Jahr 2013 zu erhalten.SQL zeigt alle Zeilen an, auch wenn keine übereinstimmenden Kriterien vorhanden sind
Ich habe das zusammen gut, aber das Problem ist, gibt es mehrere Staaten, die keine aufgeführt haben, und nicht auftauchen In der Liste. Wie kann ich sie erscheinen lassen und nur eine 0 für ihre Verkäufe haben? Von dem, was ich gefunden habe, hat dies mit JOINs zu tun, aber ich habe mit den verschiedenen Typen herumgespielt, und es scheint nicht den Trick zu machen. Wie Sie sehen können, habe ich auch einen CASE ausprobiert, der auch nicht geholfen hat. Irgendwelche Tipps würden sehr geschätzt werden!
SELECT
StateProvinceName,
CASE WHEN SUM(Quantity * UnitPrice) IS NULL
THEN '0' ELSE SUM(Quantity * UnitPrice) * (AVG(TaxRate)/100 + 1) END AS Sales
FROM
Application.StateProvinces
FULL JOIN Application.Cities
ON Application.StateProvinces.StateProvinceID = Application.Cities.StateProvinceID
FULL JOIN Sales.Customers
ON Application.Cities.CityID = Sales.Customers.DeliveryCityID
FULL JOIN Sales.Orders
ON Sales.Customers.CustomerID = Sales.Orders.CustomerID
FULL JOIN Sales.OrderLines
ON Sales.Orders.OrderID = Sales.OrderLines.OrderID
WHERE OrderDate >= '2013-01-01'
AND OrderDate < '2014-01-01'
GROUP BY StateProvinceName
ORDER BY Sales DESC
Wie Sie sehen können, die Verkaufsmengen aus den Zustandsnamen entfernt viele Tabellen sind, weiß ich nicht, ob das das Problem erschwert.
Das hat es gelohnt danke! – user3066571