我正在搞亂WideWorldImporters數據庫Microsoft給人們學習SQL(試圖讓它更好,因爲我經常在工作中使用SQL)。我試圖得到2013年所有國家銷售額的總和。即使沒有匹配條件,SQL也顯示所有行
我把那一起罰款,但問題是,有幾個國家沒有任何上市,並沒有出現在列表中。我如何讓他們出現,併爲他們的銷售只有0?從我發現的情況來看,這與JOIN有關,但是我已經搞亂了各種類型,而且似乎沒有辦法。正如你所看到的,我也試過了一個也沒有幫助的CASE。任何提示將非常感謝!
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
正如您所看到的,銷售額有很多從州名中刪除的表,我不知道這是否會使問題複雜化。
這解決了它謝謝你! – user3066571