当前位置: 首页 > 知识库问答 >
问题:

如何在单次mysql查询中得到当日、周、月、年销售额?

云默
2023-03-14

我已经写了下面的查询单独,但我想在一个单一的查询,如何做到这一点,谁能帮助…?

SELECT IFNULL(SUM(net_amount),0) as current_date FROM orders WHERE is_cancelled = false and business_date = CURRENT_DATE();
SELECT IFNULL(SUM(net_amount),0) as current_week FROM orders WHERE is_cancelled = false and YEARWEEK(business_date) = YEARWEEK(CURRENT_DATE());
SELECT IFNULL(SUM(net_amount),0) as current_month FROM orders WHERE is_cancelled = false and MONTH(business_date) = MONTH(CURRENT_DATE());
SELECT IFNULL(SUM(net_amount),0) as current_year FROM orders WHERE is_cancelled = false and YEAR(business_date) = YEAR(CURRENT_DATE());

共有1个答案

淳于飞鸾
2023-03-14

可以使用条件聚合将所有单独的select语句组合为统一的select语句,如

SELECT SUM(CASE WHEN business_date = CURRENT_DATE() 
                THEN 
                    net_amount 
                ELSE 
                    0 
                 END ) AS current_date,
       SUM(CASE WHEN YEARWEEK(business_date) = YEARWEEK(CURRENT_DATE()) 
                THEN 
                    net_amount 
                ELSE 
                    0 
                 END ) AS current_week,
       SUM(CASE WHEN MONTH(business_date) = MONTH(CURRENT_DATE()) 
                THEN 
                    net_amount 
                ELSE 
                    0 
                 END ) AS current_month,
       SUM(CASE WHEN YEAR(business_date) = YEAR(CURRENT_DATE()) 
                THEN 
                    net_amount 
                ELSE 
                    0 
                 END ) AS current_year       
  FROM orders 
 WHERE is_cancelled = false
 类似资料:
  • 问题内容: 是否可以通过简单的查询来计算在一个确定的时间段(例如年,月或日)中有字段的记录数,例如: 甚至: 具有每月统计信息。 谢谢! 问题答案: 在MySQL中检查日期和时间函数。

  • 问题内容: 该查询仅显示现有月份的结果。我需要所有12个月的销售。 输出 : 所需输出 : 问题答案: 感谢@pankaj提示,在这里我通过此查询解决了…

  • 问题内容: 我有一个“月度状态”数据库视图,我需要根据此视图生成报告。视图中的数据如下所示: …等等 该视图具有产品类别,收入,一年零一个月。我想创建一个比较2007年和2008年的报告,在没有销售的月份中显示0。因此,报告应如下所示: 要注意的关键是,第1个月在2008年仅有销售,因此2007年为0。此外,第4个月在2008年没有销售,因此0则在2007年有销售并且仍然显示。 另外,该报告实际上

  • 我正试图从R中的日期对象中获取周数和年份。 我知道有很多关于这一点的问题,但没有发现任何关于这一特定的年初/年底问题。 谢了!

  • 在给定年、月和周的情况下,是否有可能获得一周中第一个日期的DAYOFMONTH? 请注意,一周的第一个日期也可能是前一个月,甚至是前一年。 我知道这是可以通过编程实现的,至少使用java。时间、时间场等。。但我想在sql查询级别上这样做,因为当涉及周时,过程中会涉及两个额外的参数,即被视为一周的第一天的DayOfWeek和一个月内一周的最小天数。如果sql和api上的配置不完全相同,则可能会导致不

  • 问题内容: 我有一个表,其中包含有关事件和节日的数据,下面的列记录了它们的开始和结束日期。 开始日期 结束日期 日期格式为。我需要在以下情况下获取事件详细信息。 需要获取所有从当前月份开始的事件,并且结束日期可以说什么。 我对结束日期的概念很清楚。但不确定如何获取开始日期为当前月份的数据。为此,我需要将当前年份和当前月份与数据库中的列进行比较。 谁能帮助我指出我该怎么做? 问题答案: