2017-01-12 13 views
0

最初の列のgridviewでは、国のリストです。次の列はステータス列です。 SQLでこれは私のようにそれを得るgridviewの各ステータスの数yii2

SELECT COUNT(*) FROM order_customFields 
INNER JOIN `order` ON order_customFields.order_id = `order`.order_id 
WHERE 
order_customFields.order_customFields_delivery_method = 'us' AND 
order_customFields.order_customFields_order_date >= '2016-12-01' AND 
order_customFields.order_customFields_order_date <= '2016-12-31' AND 
`order`.order_status = 'sent' 

どのように私は各ステータスと各国の注文のカウントを得ることができますか?このようにenter image description here

答えて

1
SELECT 
    order_customFields.order_customFields_delivery_method, 
    sum(case `order`.order_status when 'new' then 1 else 0 end) newtcount, 
    sum(case `order`.order_status when 'arrived' then 1 else 0 end) arrivedcount, 
    sum(case `order`.order_status when 'sent' then 1 else 0 end) sentcount 
FROM order_customFields 
    INNER JOIN `order` ON order_customFields.order_id = `order`.order_id 
WHERE 
    order_customFields.order_customFields_order_date >= '2016-12-01' AND 
    order_customFields.order_customFields_order_date <= '2016-12-31' 
GROUP BY  
    order_customFields.order_customFields_delivery_method, 
    `order`.order_status 
関連する問題