gpt4 book ai didi

mysql - 如何从单个表中选择当前日期和上一个日期?

转载 作者:行者123 更新时间:2023-11-30 23:21:21 25 4
gpt4 key购买 nike

我有一个非常简单的表:

mysql> desc stats;
+-------------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------------+-------------+------+-----+---------+----------------+
| entry_id | int(11) | NO | PRI | NULL | auto_increment |
| entry_date | date | NO | | NULL | |
| show_name | varchar(40) | NO | | NULL | |
| month_total | int(11) | NO | | NULL | |
+-------------+-------------+------+-----+---------+----------------+

我想要一个 select 语句,它将在单个语句中给出当前日期的结果以及前一天的数据,例如,结果将类似于

show_name month_total(Current day) monthly_total(Previous Day)

是否有一种简单的方法可以在单个 sql 语句中执行此操作?

最佳答案

更新:将 entry_date 添加到输出中是有意义的

SELECT c.show_name, 
c.month_total current_month_total,
p.month_total prev_month_total
FROM stats c INNER JOIN
stats p ON p.entry_date = c.entry_date - INTERVAL 1 DAY

假设您有像这样的示例数据

+----------+------------+-----------+-------------+
| entry_id | entry_date | show_name | month_total |
+----------+------------+-----------+-------------+
| 1 | 2013-03-07 | Name1 | 10 |
| 2 | 2013-03-08 | Name2 | 20 |
| 3 | 2013-03-09 | Name3 | 30 |
| 4 | 2013-03-10 | Name4 | 40 |
+----------+------------+-----------+-------------+

查询的输出是

+-----------+------------+---------------------+------------------+
| show_name | entry_date | current_month_total | prev_month_total |
+-----------+------------+---------------------+------------------+
| Name2 | 2013-03-08 | 20 | 10 |
| Name3 | 2013-03-09 | 30 | 20 |
| Name4 | 2013-03-10 | 40 | 30 |
+-----------+------------+---------------------+------------------+

这是一个sqlfiddle example

如果您需要特定日期或日期间隔的输出,只需添加一个 WHERE 子句。
今天

...
WHERE c.entry_date = CURDATE();

从 03/09 到 03/10

...
WHERE c.entry_date BETWEEN '2013-03-09' AND '2013-03-10'

关于mysql - 如何从单个表中选择当前日期和上一个日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15303174/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com