MySQL上月总额统计(mysql 上月总额)

MySQL:上月总额统计

在金融和电商等领域,需要统计和分析每个月的总额数据,以便更好地优化业务和决策。本文将介绍如何使用MySQL统计上个月的总额。

一、建立测试表格

首先建立一张名为”sales”的测试表格,包含三个字段:id、sales_data和sales_date。其中,id为自增、自动编号字段;sales_data为金额类型;sales_date为日期类型,格式为”YYYY-MM-DD”。

CREATE TABLE sales (

id INT(11) NOT NULL AUTO_INCREMENT,

sales_data DECIMAL(10,2),

sales_date DATE,

PRIMARY KEY (id)

);

二、插入测试数据

接着填充测试数据,以便测试查询语句。这里插入的数据为2019年7月份每天的销售额。插入数据的语句如下:

INSERT INTO sales (sales_data, sales_date) VALUES

(100.00, ‘2019-07-01’),(1200.00, ‘2019-07-02’),(500.00, ‘2019-07-03’),

(200.00, ‘2019-07-04’),(300.00, ‘2019-07-05’),(400.00, ‘2019-07-06’),

(600.00, ‘2019-07-07’),(800.00, ‘2019-07-08’),(900.00, ‘2019-07-09’),

(250.00, ‘2019-07-10’),(350.00, ‘2019-07-11’),(450.00, ‘2019-07-12’),

(550.00, ‘2019-07-13’),(650.00, ‘2019-07-14’),(750.00, ‘2019-07-15’),

(850.00, ‘2019-07-16’),(950.00, ‘2019-07-17’),(1050.00, ‘2019-07-18’),

(1150.00, ‘2019-07-19’),(2150.00, ‘2019-07-20’),(3150.00, ‘2019-07-21’),

(4150.00, ‘2019-07-22’),(5150.00, ‘2019-07-23’),(6150.00, ‘2019-07-24’),

(7150.00, ‘2019-07-25’),(8150.00, ‘2019-07-26’),(9150.00, ‘2019-07-27’),

(10150.00, ‘2019-07-28’),(11150.00, ‘2019-07-29’),(12150.00, ‘2019-07-30’),

(13150.00, ‘2019-07-31’);

三、使用SQL语句查询上月总额

使用DATE_SUB()函数获取当前日期减一个月的日期,并使用YEAR()和MONTH()函数获取上个月的年份和月份。查询语句如下:

SELECT SUM(sales_data) AS total_sales

FROM sales

WHERE YEAR(sales_date) = YEAR(DATE_SUB(CURDATE(), INTERVAL 1 MONTH))

AND MONTH(sales_date) = MONTH(DATE_SUB(CURDATE(), INTERVAL 1 MONTH));

解释一下,CURDATE()函数返回当前日期,DATE_SUB()函数为获取某个日期减去指定时间间隔后的日期,INTERVAL表示间隔时间,MONTH表示间隔单位。所以,DATE_SUB(CURDATE(), INTERVAL 1 MONTH)就是获取当前日期减去一个月后的日期。YEAR()函数和MONTH()函数分别获取年份和月份,WHERE子句限制了日期为上个月。

最终返回的结果为上个月的总销售额。

四、完整代码

最终的完整代码如下:

CREATE TABLE sales (

id INT(11) NOT NULL AUTO_INCREMENT,

sales_data DECIMAL(10,2),

sales_date DATE,

PRIMARY KEY (id)

);

INSERT INTO sales (sales_data, sales_date) VALUES

(100.00, ‘2019-07-01’),(1200.00, ‘2019-07-02’),(500.00, ‘2019-07-03’),

(200.00, ‘2019-07-04’),(300.00, ‘2019-07-05’),(400.00, ‘2019-07-06’),

(600.00, ‘2019-07-07’),(800.00, ‘2019-07-08’),(900.00, ‘2019-07-09’),

(250.00, ‘2019-07-10’),(350.00, ‘2019-07-11’),(450.00, ‘2019-07-12’),

(550.00, ‘2019-07-13’),(650.00, ‘2019-07-14’),(750.00, ‘2019-07-15’),

(850.00, ‘2019-07-16’),(950.00, ‘2019-07-17’),(1050.00, ‘2019-07-18’),

(1150.00, ‘2019-07-19’),(2150.00, ‘2019-07-20’),(3150.00, ‘2019-07-21’),

(4150.00, ‘2019-07-22’),(5150.00, ‘2019-07-23’),(6150.00, ‘2019-07-24’),

(7150.00, ‘2019-07-25’),(8150.00, ‘2019-07-26’),(9150.00, ‘2019-07-27’),

(10150.00, ‘2019-07-28’),(11150.00, ‘2019-07-29’),(12150.00, ‘2019-07-30’),

(13150.00, ‘2019-07-31’);

SELECT SUM(sales_data) AS total_sales

FROM sales

WHERE YEAR(sales_date) = YEAR(DATE_SUB(CURDATE(), INTERVAL 1 MONTH))

AND MONTH(sales_date) = MONTH(DATE_SUB(CURDATE(), INTERVAL 1 MONTH));

五、总结

以上就是使用MySQL查询上个月总额的方法,希望对你的工作和学习有所帮助。除此之外,MySQL还有很多高级功能和操作,可以在深入学习后进一步优化查询和处理大量数据。


数据运维技术 » MySQL上月总额统计(mysql 上月总额)