首页 > 解决方案 > 在 MySQL 中,我的日期格式为 (mm-dd-yyyy),因此无法检索 2020 年的总销售额

问题描述

我有三张桌子

表销售中其汽车的所有国家明智销售记录,存储特定日期的销售数量

需要编写一个查询来计算所有车型的国家销售额以及 2020 年生成的总销售额(按升序排列)

SELECT
    country.name, car_model.name,
    SUM(car_model.price * sales.quantity) AS total_sales
FROM sales
JOIN country ON country.id=sales.country_id
JOIN car_model ON car_model.id=sales.model_id
WHERE sales.sales_date between '01-01-2020' and '12-31-2020'
GROUP BY country.name,car_model.name
ORDER BY total_sales asc;

这是我尝试过的代码,但它提供了多年来的输出,我只需要 2020 年的销售记录

#这个问题来自Hackerrnk,所以我不能显示表结构

标签: mysql

解决方案


尝试以下解决方案。

WITH models
     AS (SELECT car_model.NAME
         FROM   car_model
                JOIN sales
                  ON ( sales.model_id = car_model.id )
         GROUP  BY 1)
SELECT country.NAME,
       models.NAME,
       Sum(sales.quantity * car_model.price)
FROM   country
       JOIN sales
         ON ( country.id = sales.country_id )
       JOIN car_model
         ON ( sales.model_id = car_model.id )
       JOIN models
         ON ( car_model.NAME = models.NAME )
WHERE  sales_date LIKE '%2020%'
GROUP  BY 1,
          2
ORDER  BY 3; 

推荐阅读