2011-06-24 9 views
0

次の表から、過去数日間売上高が50%以上の商品を取得するにはどうすればよいですか?MySqlクエリ:売上高> =一定割合の商品を取得する

現在、私は、売上高の割合を計算したクエリを使用して、私はすべての項目をループし、売上高の50%以上のアイテムを取得していますPHPを使用してい
date  item_id in_stock out-stock 
2011-06-20 352  50  30 
2011-06-21 351  10  1 
2011-06-22 332  23  20 
2011-06-23 311  12   7 

SELECT i.id as item_id,i.item,SUM(dpr.out_stock)/SUM(dpr.in_stock) * 100 as p,SUM(dpr.out_stock) as sales,u.title as unit,u.id as unit_id 
    FROM `sm_daily_item_stock_report` as dpr 
    INNER JOIN sm_item_master as i on dpr.item_id=i.id and i.consumable='1' 
    INNER JOIN sm_unit_master as u on i.primary_unit=u.id 
    WHERE date between '2011-06-20' and '2011-06-23' 
    and dpr.store_id='1' GROUP BY item_id 

しかし、このクエリはSTORE_IDに対するすべての製品1.

Krishnik

答えて

2

がクエリにHAVING p > 50を追加します:)

0
SELECT i.id as item_id,i.item,SUM(dpr.out_stock)/SUM(dpr.in_stock) * 100 as p,SUM(dpr.out_stock) as sales,u.title as unit,u.id as unit_id 
FROM `sm_daily_item_stock_report` as dpr 
INNER JOIN sm_item_master as i on dpr.item_id=i.id and i.consumable='1' 
INNER JOIN sm_unit_master as u on i.primary_unit=u.id 
WHERE date between '2011-06-20' and '2011-06-23' 
and dpr.store_id='1' GROUP BY item_id 
having (SUM(dpr.out_stock)/SUM(dpr.in_stock) * 100) > 50 
を返します。
関連する問題