2014-12-30 56 views
0

我有問題要顯示客戶總訂單的總銷售額(換句話說,總計價格)。使用以下SQL語句,我設法加入表格'Order1','Order2'和'Customers'以獲得必要的屬性,以顯示已完成至少3個訂單的客戶的正確城市,並將訂單數量合計到此:如何計算訂單成本

SELECT c.CityName, SUM(o2.Orderquantity) AS 'Total sales amount' 
FROM Order1 o1 
INNER JOIN 
(SELECT o1.CustomerNr 
FROM Order1 o1 
GROUP BY o1.CustomerNr 
HAVING COUNT(o1.CustomerNr) >= 3) 
AS a ON o1.CustomerNr = a.CustomerNr 
INNER JOIN Order2 o2 ON o1.Ordernr = o2.Ordernr 
INNER JOIN Customers c ON o1.CustomerNr = c.CustomerNr 
GROUP BY c.CityName 

我看起來像工作表的結構:

  • '客戶' 的列:CustomerNr,城市名稱
  • 'Order1' 有列:Ordernr,CustomerNr
  • 'Order2'有列:Ordernr,Productnr或Or DER量
  • 「產品」中的列:ProductNr,價格

所以,我想要的是能夠顯示誰取得了至少3個數量級(到目前爲止好)城市的客戶,但還有這些客戶的總銷售額(而不是總訂購數量),有沒有人知道我可以根據上述表格結構來做到這一點?

的樣本數據:該表 樣本數據「客戶」:

- CustomerNr CityName: 
- 01109  New York 
- 01999  Los Angeles 
- 08120  London 

Sample data for 'Order1': 

- Ordernr CustomerNr 
- 1306  1109 
- 1306  1109 
- 1307  1109 

Sample data for 'Order2': 

- OrderNr ProductNr Order quantity: 
- 1306  15-116  01109 3 
- 1306  46-701  01109 2 
- 1307  15-96  01109 1 
- 1308  17-91  18208 1 

(etc...) 

Sample data for 'Products': 

- ProductNr Price: 
- 15-116  44.00 
- 15-96  28.50 
- 46-701  3000.00 

etc... 

正如你可以在「Order1」看到顧客可以鏈接到serveral的ordernr,並且你可以在「產品」看每個產品都有其獨特的產品和價格。正如你在'Order2'中看到的那樣,客戶1109已經(在這種情況下)爲訂單1306購買了7個15-115個產品和1個46-708個產品。但是這個客戶還購買了15個產品中的2個以另一種順序(1307)。這個客戶,這是來自紐約,先後做過共2個訂單,所以在這種情況下,結果應該是這樣的:

CITYNAME,銷售總額: 紐約,6160.50

+0

在幾個地方重命名同一個表的別名(01)很confu唱。 – jarlh

回答

0

你只需要JOIN表產品在查詢

試試這個:

SELECT c.CityName, SUM(o2.quantity * p.Price) AS 'TotalSalesAmount' 
FROM (SELECT DISTINCT Ordernr, CustomerNr FROM Order1) AS o1 
INNER JOIN (SELECT o1.CustomerNr 
      FROM Order1 o1 
      GROUP BY o1.CustomerNr 
      HAVING COUNT(o1.CustomerNr) >= 3 
      ) AS a ON o1.CustomerNr = a.CustomerNr 
INNER JOIN Order2 o2 ON o1.Ordernr = o2.Ordernr 
INNER JOIN Customers c ON o1.CustomerNr = c.CustomerNr 
INNER JOIN Products P ON o2.ProductNr = P.ProductNr 
GROUP BY c.CityName; 
+0

有了這條SQL語句,我注意到它只對訂單中的唯一產品號碼的價格進行了總結,但對於我在表格中的值,客戶可以購買5種產品(一種獨特的productnr)和2種產品(另一種獨特的產品)。因此,我想要的是能夠將與已完成訂單相關聯的客戶的總數量的總銷售額總和。你知道如何解決這個問題嗎?爲表客戶 – eqinna

+0

樣本數據: CustomerNr,CITYNAME: 01109,紐約 01999,洛杉磯 08120,倫敦 等。 爲Order1的樣本數據: OrderNr,CustomerNr: 1306,01999 1307, 01109 1308,08120 對產品的樣本數據: ProductNr,價格: 15-116,44.00 15-96,28.50 等.. – eqinna

+0

現在我已經用一些示例數據更新了我的第一篇文章,並獲得了期望的結果。 – eqinna