Я хочу умножить 2 результата в одном и том же столбце с помощью другого столбца.Я попытаюсь объяснить:
Во-первых, позвольте мне представить таблицы, которые я использую:
1 / Поиск продуктов (идентификатор объекта) термина референта (идентификатор term_taxonomy)
TAB => wp_term_relationships
+-----------+------------------+
| object_id | term_taxonomy_id |
+-----------+------------------+
| 723 | 685 |
| 724 | 685 |
+--------------+---------------+
2 / Поиск идентификатора всех продуктов (meta_value) _product_id (meta_key) для получения order_item_id каждого
TAB => wp_woocommerce_order_itemmeta NB: meta_id 400не принадлежат термину referent
+---------+---------------+---------------+------------+
| meta_id | order_item_id | meta_key | meta_value |
+-------- +---------------+---------------+------------+
| 203 | 24 | _product_id | 723 |
| 204 | 24 | _product_cost | 79 |
| 205 | 24 | _qty | 5 |
| 355 | 56 | _product_id | 724 |
| 356 | 56 | _product_cost | 99 |
| 357 | 56 | _qty | 3 |
| 400 | 26 | _product_id | 1500 |
+---------+---------------+---------------+------------+
3 / Поиск по всему order_ID (meta_value) для получения order_id
TAB => wp_woocommerce_order_items NB: Order_item_id 26 не принадлежит термину referent NB2:два продукта в order_id 10 (1 и 3)
+---------------+-----------------+------------------+----------+
| order_item_id | order_item_name | order_item_type | order_id |
+---------------+-----------------+------------------+----------+
| 24 | product 1 | line_item | 10 |
| 25 | delivery | shipping | 10 |
| 56 | product 3 | line_item | 10 |
| 26 | product 50 | line_item | 11 |
+---------------+-----------------+------------------+----------+
4 / Поиск всех order_id (ID) и передача аргументов WHERE для фильтрации списка
TAB => wp_posts
+-------------------+---------------------+
| ID | post_status | post_date |
+----+--------------+---------------------+
| 10 | wc-completed | 2018-09-25 23:04:52 |
| 11 | wc-suspend | 2017-09-25 23:04:52 |
| 15 | wc-completed | 2017-09-66 23:04:52 |
+-------------------+---------------------+
Теперь, следуя тому, что я сделал до сих пор:
SELECT
COUNT( posts.ID ) AS count_orders,
SUM(order_meta_items_cost.meta_value * order_meta_items_qty.meta_value) AS total_sales
FROM wp_posts AS posts
LEFT JOIN wp_term_relationships AS rel ON rel.term_taxonomy_id = '685'
LEFT JOIN wp_woocommerce_order_itemmeta AS order_meta_items
ON order_meta_items.meta_value = rel.object_id
AND order_meta_items.meta_key LIKE '_product_id'
LEFT JOIN wp_woocommerce_order_items AS order_items
ON order_items.order_item_id = order_meta_items.order_item_id
AND order_items.order_item_type LIKE 'line_item'
INNER JOIN wp_woocommerce_order_items AS order_items_cost
ON order_items_cost.order_id = posts.ID
AND order_items.order_item_type LIKE 'line_item'
INNER JOIN wp_woocommerce_order_itemmeta AS order_meta_items_cost
ON order_meta_items_cost.order_item_id = order_items_cost.order_item_id
AND order_meta_items_cost.meta_key = '_wc_cog_item_cost'
INNER JOIN wp_woocommerce_order_itemmeta AS order_meta_items_qty
ON order_meta_items_qty.order_item_id = order_items_cost.order_item_id
AND order_meta_items_qty.meta_key = '_qty'
WHERE posts.ID = order_items.order_id
AND posts.post_status IN ('wc-completed')
AND UNIX_TIMESTAMP(CONVERT_TZ(posts.post_date, '+00:00', @@global.time_zone)) >= '1537747200'
AND UNIX_TIMESTAMP(CONVERT_TZ(posts.post_date, '+00:00', @@global.time_zone)) <= '1538351999'
Результаты, которые я хочу:
- Иметь правильные номера записей.ID(count_orders)
- Иметь правильную общую стоимость продукции (по количеству).
В этом примере это будет: Выполнен только заказ 10, поэтому мы сохраняем order_item_id 24 и 56. Теперь нам нужна цена товара по его количеству (кол-вопродукта в одном заказе)
order_item_id 24 :
_product_cost = 79
_qty = 5
so 79*5 = 395
order_item_id 56 :
_product_cost = 99
qty = 3
so 99*3 = 297
** Right result in total_sales -> 395+297 = 692**
Я перепробовал много комбинаций, но не могу понять, как это сделать.
У вас есть идеи?Большое спасибо!