2016-03-05 92 views
-3

我需要一些生產者在所有應用程序中銷售總額的百分比值結果是,例如12%。獲得結果的百分比和賬單總數

此代碼計算的訂單數量:

SELECT COUNT(*) 
FROM (
    SELECT id 
    FROM OrderDetails 
    WHERE Product IN ('p1','p9') 
    GROUP BY id 
    HAVING COUNT(DISTINCT Product) = 2) AS t 

如果你讀How to select two products where it is in same OrderDetails

+3

編輯你的問題,並提供樣本數據和預期的結果。 –

+0

你可以添加更多的細節,你希望你的結果如何,這很難理解。 – Zeus

回答

0

如果我明白這個問題正確的,你想有兩個產品訂單比例你能理解我。你可以這樣做的:

SELECT COUNT(*) as TotalOrders, 
     SUM(CASE WHEN NumProducts = 2 THEN 1 ELSE 0 END) as OrdersWithBothProducts, 
     AVG(CASE WHEN NumProducts = 2 THEN 1.0 ELSE 0 END) as Proportion_OrdersWithBothProducts, 
FROM (SELECT id, 
      COUNT(DISTINCT CASE WHEN Product IN ('p1','p9') THEN Product END) as NumProducts 
     FROM OrderDetails od 
     GROUP BY id 
    ) o; 
+0

我需要一些生產者在所有應用程序中銷售總值的百分比 結果是,例如:12% –

0
USE [Northwind] 

SELECT 
    CONVERT 
    (VARCHAR, 
     CONVERT 
     (DECIMAL(3,2), 
      CONVERT 
      (DECIMAL(3, 2), 
       (SELECT COUNT(*) 
        FROM (
         SELECT [OrderID] 
          FROM [Northwind].[dbo].[Order Details] 
          WHERE [ProductID] IN (41,51) 
          GROUP BY [OrderID] 
          HAVING COUNT(DISTINCT [ProductID]) = 2 
        ) AS T 
       ) 
      ) 
      /
      (SELECT COUNT(*) 
       FROM [Northwind].[dbo].[Orders] 
      ) 
      * 
      100 
     ) 
    ) 
    + 
    '%'