Получить счетчик единиц товара из нескольких заказов - PullRequest
0 голосов
/ 20 марта 2020

После долгих попыток я получил запрос, который возвращает все продукты и единицы каждого продукта всех заказов за день.

Это:

SELECT
    it.order_id as pedido,
    it.order_item_name as nombre,
    it.order_item_id,
    MAX(CASE WHEN itm.meta_key = '_product_id' THEN itm.meta_value END) as producto,
    MAX(CASE WHEN itm.meta_key = '_qty' THEN itm.meta_value END) as qt,
    (SELECT meta_value FROM wp_postmeta where meta_key = '_weight' and post_id = 
    MAX(CASE WHEN itm.meta_key = '_product_id' THEN itm.meta_value END)
    ) as peso,
    (SELECT meta_value FROM wp_postmeta where meta_key = 'entrega' and post_id = 
    p.ID
    ) as fecha
FROM wp_posts as p
    inner join wp_woocommerce_order_items as it
        on it.order_id = p.ID
    inner join wp_woocommerce_order_itemmeta as itm
        on itm.order_item_id = it.order_item_id
    inner join wp_postmeta as pm
        on pm.post_id = p.ID
WHERE order_item_type = 'line_item' 
    and it.order_item_id = itm.order_item_id
    and itm.meta_key = '_qty' or itm.meta_key = '_product_id'
GROUP BY order_item_id

Это работает отлично, но теперь я хочу это делать только для заказов со статусом: «Обработка»

Я добавляю это в Где:

and p.post_status = 'wc-processing'

И ничего не происходит.

Кто-нибудь может мне помочь?

1 Ответ

1 голос
/ 20 марта 2020

Вы должны избегать смешивания ands и ors, используйте скобки, чтобы обеспечить приоритетность условий, которые вы хотите, так что, вероятно, -

WHERE order_item_type = 'line_item' 
    and it.order_item_id = itm.order_item_id
    and (itm.meta_key = '_qty' or itm.meta_key = '_product_id')
    and p.post_status = 'wc-processing'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...