【发布时间】:2018-01-18 14:59:47
【问题描述】:
我正在尝试获取过去 30 天内按销售数量订购的产品列表。
我将如何进行以下查询,同时按过去 30 天内的销售数量排序,并让它们后面跟着那些 30 天内没有售出任何东西的产品?
我首先需要最近 30 天内有销售的产品,然后是之后没有销售的产品。
带有销售日期的字段是一个名为datetime 的字段orders.sold_time
这是我当前的查询:
SELECT pd.products_id AS id, pd.products_name AS name
FROM products_description pd
LEFT JOIN products ON pd.products_id = products.products_id
LEFT JOIN orders_products ON pd.products_id = orders_products.products_id
LEFT JOIN orders ON orders_products.orders_id = orders.orders_id
WHERE pd.c5_dataset = 'DAT'
AND products.products_status =1
AND pd.language_id =4
AND NOT EXISTS (
SELECT 1
FROM products_description
WHERE products_id = pd.products_id
AND language_id = 10
)
AND orders_total.class = 'ot_total'
GROUP BY pd.products_id
ORDER BY count( orders_products.products_quantity ) DESC
【问题讨论】:
-
您是说您需要最近 30 天的销售额吗?
-
“最近 30 天订购”:这是什么意思?您想在最近的销售日期之前订购吗?如果您还想查看过去 30 天内没有销售的记录,那么您就是说您想要所有东西,那么为什么不按降序排序呢?或者你在这里说什么?
-
@trincot 我想要所有产品,即使是那些没有任何销售的产品,按过去 30 天内最畅销的商品排序 - 所以,所有商品,不受日期间隔限制 - 但按销量最高的方式排序过去 30 天内的项目首先出现在输出中
标签: php mysql date sql-order-by