用于检索按州分组的WooCommerce订单的SQL查询

时间:2013-11-07 19:02:57

标签: sql wordpress woocommerce

我试图从Wordpress / WooCommerce数据库中检索的是按美国各州分组的订单列表,其中订单总数和每个州的订单税总和。

所以我得到的最接近的是我写的这个查询:

SELECT meta_key, meta_value 
FROM wp_posts 
LEFT OUTER JOIN wp_postmeta ON wp_posts.ID=wp_postmeta.post_id 
WHERE post_type = "shop_order" 
AND (
meta_key = "_billing_state" 
OR meta_key = "_order_tax" 
OR meta_key = "_order_total"
) 
ORDER BY ID ASC

它返回:

meta_key         meta_value
_billing_state   NJ
_order_tax       0.21
_order_total     3.21
_billing_state   NJ
_order_tax       1.75
_order_total     26.70
_billing_state   IA
_order_tax       6.79
_order_total     103.54
_billing_state   PA
_order_tax       1.82
_order_total     27.72

......等等。

我真正需要回归的是:

state  order_tax_sum  order_total_sum
NJ     1.96           29.91
IA     6.79           103.54
PA     1.82           27.72

非常感谢所有帮助!

1 个答案:

答案 0 :(得分:3)

尝试这样的事情:

select
    state,
    sum(order_tax_sum),
    sum(order_total_sum)
from (
    select
        (select meta_value from wp_postmeta pm1 where p.ID = pm1.post_id and meta_key = "_billing_state") as state,
        (select meta_value from wp_postmeta pm2 where p.ID = pm2.post_id and meta_key   = "_order_tax") as order_tax_sum,
        (select meta_value from wp_postmeta pm3 where p.ID = pm3.post_id and meta_key   = "_order_total") as order_total_sum
    from
        wp_posts AS p
    WHERE post_type = "shop_order"
) A
group by A.state
警告 - 完全未经测试,但基本思路(加入select语句本身)应该是合理的