2013-08-21 84 views
1
select PO_Order_Qty, Avg([PO_Order_Qty])as totalAverage 
FROM [FirstStrike_Retail].[custom].[Whse_Pricing_QR]  
where item_code ='111' and PO_order_qty <(Avg([PO_Order_Qty])*2) 
group by PO_Order_Qty 

我在MS Sql中使用上述sql來獲取特定項目代碼順序數量的平均值。我期待只有一個返回值。在where子句和不同的列條件中使用聚合函數

而且我需要消除,如果任何數量超過平均水平的兩倍。

感謝 Xplr

+0

而且你的問題是什麼? – peterm

+0

當我運行這個sql時出現錯誤。我只需要在2個標準中找到一列的平均值(a)我想爲特定物品代碼挑選行,(b)po訂單數量應該小於平均值的兩倍 – priya

回答

1

您應該使用檢查都彙集功能(MAX,MIN,SUM,AVG等)時,HAVING子句。我不想給你答案,但嘗試這樣的事情。

select PO_Order_Qty, Avg([PO_Order_Qty])as totalAverage 
FROM [FirstStrike_Retail].[custom].[Whse_Pricing_QR]  
where item_code ='111' 
group by PO_Order_Qty 
HAVING PO_order_qty <(Avg([PO_Order_Qty])*2) 

編輯:試試這個基礎上你的評論是這樣的

select * 
    FROM [FirstStrike_Retail].[custom].[Whse_Pricing_QR]  
    where item_code ='111' 
     and PO_Order_Qty < 
      (select Avg([PO_Order_Qty])as totalAverage 
      FROM [FirstStrike_Retail].[custom].[Whse_Pricing_QR]) * 2 
+0

這會給我多個。我只想要整個列表的一個平均返回值。 – priya

+0

我編輯了答案...請現在檢查。 –

+0

通過將平均值([PO_Order_Qty])替換爲總平均值,我得到了一個返回值。並得到答案。謝謝 – priya