2015-02-23 38 views
0

我正在使用來自多個表的信息來嘗試獲取輸出,供應商ID,供應商名稱,跟蹤編號的訂單百分比。用於從多個表中獲取輸出的複雜SQL查詢

我需要從多個表中的信息,具體如下:

  • 供應商,該供應商包含ID和供應商名稱
  • SupplierSubscriptions,供應商必須有subscriptionid = 91,這包含供應商ID。
  • SalesOrders,這包含每個供應商的每個訂單,因此它包含供應商ID。
  • 貨件,其中包含銷售訂單編號,每個貨件與該訂單相關聯。
  • 包裹,其中包含shipmentid,如果貨件位於包裹表格上,則包含跟蹤編號。

我至今是:

SELECT DISTINCT so.supplierID, count(*) AS NumberOfOrders FROM SalesOrders so 
INNER JOIN suppliers s ON s.SupplierID = so.SupplierID 
INNER JOIN SupplierSubscriptions ss ON s.SupplierID = ss.SupplierID 
INNER JOIN shipments ship ON ship.SalesOrderID = so.SalesOrderID 
INNER JOIN Packages p ON p.ShipmentID = ship.ShipmentID 
WHERE ss.SubscriptionID = 91 GROUP BY so.SupplierID 

顯然,這不是我所追求的,因爲它只顯示了供應商ID和訂單的個性化......

+0

你可以發佈表結構?這樣更容易。你可以截圖 – 2015-02-23 19:23:18

回答

0

我在模式的部分猜測,但這樣的事情應該爲你工作:

SELECT  so.supplierID, 
      so.supplierName, 
      SUM(case when p.trackingNumber is not null then 1 else 0 end)/COUNT(0) as OrdersWithTracking 
FROM  SalesOrders    so 
INNER JOIN suppliers    s  ON s.SupplierID = so.SupplierID 
INNER JOIN SupplierSubscriptions ss  ON s.SupplierID = ss.SupplierID 
INNER JOIN shipments    ship ON ship.SalesOrderID = so.SalesOrderID 
INNER JOIN Packages    p  ON p.ShipmentID = ship.ShipmentID 
WHERE  ss.SubscriptionID = 91 
GROUP BY so.SupplierID, so.supplierName