mysql - 如何根据日期内销售的产品数量进行排序?

标签 mysql sql

我需要按已售产品数量对结果进行排序。

以下是我的(复杂)SQL 的摘录:

SELECT ....
SUM(products.quantity) as numberSold,

....
ORDER by numberSold

如何仅按今年已售出的商品订购?

我尝试过

HAVING products.products.date>'01-01-2015',但它会影响返回的行数。

这是我没有编写的未消化的 SQL,我必须更改它:

Select Distinct
  boutique_produit.*,
  boutique_produit_description.*,
  boutique_produit_plus.*,
  Sum(boutique_commande_detail.quantite) As numberSold

From
  boutique_categorie Inner Join
  boutique_categorie_produit On boutique_categorie_produit.boutique_categorie_id
    = boutique_categorie.id_boutique_categorie Inner Join
  boutique_produit On boutique_produit.id_boutique_produit =
    boutique_categorie_produit.boutique_produit_id And
    boutique_produit.zone_id = boutique_categorie_produit.zone_id Inner Join
  boutique_produit_description
    On boutique_produit_description.boutique_produit_id =
    boutique_produit.id_boutique_produit And
    boutique_produit_description.zone_id = boutique_categorie_produit.zone_id
    And (boutique_produit_description.boutique_langue_disponible_code = 'FR')
  Inner Join
  boutique_produit_reference On boutique_produit_reference.boutique_produit_id =
    boutique_produit.id_boutique_produit And boutique_produit_reference.zone_id
    = boutique_categorie_produit.zone_id Inner Join
  boutique_produit_reference_prix
    On boutique_produit_reference_prix.boutique_produit_reference_id =
    boutique_produit_reference.id_boutique_produit_reference And
    boutique_produit_reference_prix.zone_id = boutique_categorie_produit.zone_id
  Inner Join
  boutique_taxe On boutique_taxe.id_boutique_taxe =
    boutique_produit_reference.boutique_taxe_id Inner Join
  boutique_produit_plus On boutique_produit_plus.boutique_produit_id =
    boutique_produit.id_boutique_produit And boutique_produit_plus.zone_id =
    boutique_categorie_produit.zone_id Inner Join
  boutique_produit_plus_categories
    On boutique_produit_plus_categories.boutique_produit_id =
    boutique_produit_plus.boutique_produit_id And
    boutique_produit_plus_categories.zone_id = boutique_produit_plus.zone_id And
    (boutique_produit_plus_categories.categorie_id In (1750, 1227, 1880))
  Inner Join
  poi On boutique_produit_plus.poi_id = poi.ID_poi And poi.zone_id =
    boutique_categorie_produit.zone_id And (((poi.payant = 1 And
        ('2015-12-10' >= poi.dateDebutValidite) And ('2015-12-10' <=
          poi.dateFinValidite)) Or (poi.illimite = 1))) Inner Join
  boutique_professionnel On poi.boutique_professionnel_id =
    boutique_professionnel.id_boutique_professionnel And
    boutique_professionnel.zone_id = poi.zone_id And
    (boutique_professionnel.compte_actif = 1) Left Join
  boutique_commande_detail
    On boutique_commande_detail.boutique_produit_reference_id =
    boutique_produit_reference.id_boutique_produit_reference And
    boutique_commande_detail.zone_id = boutique_categorie_produit.zone_id
Where
  boutique_categorie_produit.boutique_categorie_id = 382 And
  (boutique_produit_plus.date_fin_valid = '' Or
    boutique_produit_plus.date_fin_valid Is Null Or
    boutique_produit_plus.date_fin_valid >= '2015-12-10 23:59:59') And
  boutique_produit.produit_actif = 1 And
  boutique_categorie_produit.zone_id = 4
Group By
  boutique_produit.id_boutique_produit, boutique_produit.zone_id

Order By
  numberSold Desc
Limit 0, 60

numberSold 是重要字段

最佳答案

在 products.date 上使用 WHERE 子句

关于mysql - 如何根据日期内销售的产品数量进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34213224/

相关文章:

mysql - SQL STR_TO_DATE

用于网络测试的 SQL Server

mysql - 在 zend 框架中批量插入

php - 在同一行显示三个不同的值

mysql - SQL INNER JOIN 没有返回我需要的内容

php - WHERE 子句日期大于 24 小时 - Carbon/Laravel

mysql - 如何从两个表中获取数据并按第二个表 Datamapper 排序

php - 选择与特定值匹配的所有列,该值可以为空

sql - 动态查询中的条件 WHERE 表达式

sql - 使用 2016 年之前的 tsql 功能解压缩 gzip 字段