首页 > 解决方案 > 查询以返回每个交货日期所需的产品项目总数 - woocommerce 和 wordpress

问题描述

我正在处理 woocommerce 和 wordpress 中的 sql 查询,其中我有三个需要作为查询结果加入的表。基本上,我想列出交货日期以及当天需要跨多个订单 ID 的总项目。表格如下所示:

TABLE_A
| id    | order_id |  date                |
| 1     | 20       |  2020-04-12 00:00:00 |
| 2     | 21       |  2020-04-14 00:00:00 |
| 3     | 22       |  2020-04-14 00:00:00 |

 TABLE_B
| order_item_id | order_item_name | order_id |
| 50            | Item A          | 20       |
| 51            | Item B          | 20       |
| 52            | Item C          | 21       |
| 53            | Item A          | 21       |
| 54            | Item A          | 22       |

 TABLE_C
| detail_id    | order_item_id   | key        | Value |
| 1            | 50              | qty        | 2     |
| 2            | 51              | qty        | 3     |
| 3            | 52              | qty        | 3     |
| 4            | 53              | qty        | 4     |
| 5            | 54              | qty        | 2     |

期望的结果

| date                 | order_item_name | total  |
| 2020-04-12 00:00:00  | Item A          | 2      |
| 2020-04-12 00:00:00  | Item B          | 3      |
| 2020-04-14 00:00:00  | Item C          | 3      |
| 2020-04-14 00:00:00  | Item A          | 6      |

我做了什么:

SELECT 
   date,
   order_item_name,
   sum(value) as Total
FROM
   TABLE_A
INNER JOIN TABLE_B USING (order_id)
INNER JOIN TABLE_C USING (order_item_id)
GROUP BY order_item_id

但我似乎无法完全正确,任何帮助将不胜感激,谢谢

标签: mysqlwordpresswoocommerce

解决方案


SELECT 
   date,
   order_item_name,
   sum(value) as Total
FROM
   TABLE_A
INNER JOIN TABLE_B USING (order_id)
INNER JOIN TABLE_C USING (order_item_id)
GROUP BY order_item_name,date
ORDER BY order_id ASC

由于您需要明智的项目日期,因此需要对项目名称和日期执行分组。此查询将获取所需的结果。


推荐阅读