【发布时间】:2020-08-24 17:43:00
【问题描述】:
我不擅长 MYSQL,但我正在努力学习。我需要创建一个日历表并将其左连接到我的数据表中。原因是我每周都在计算预订,如果那一周没有预订,则需要显示“0”。我不能使用我不认为的标准日历表,因为我不想永远手动填写每周。我正在寻找一种解决方案,可以在没有人工监督的情况下将日期添加到未来。与我发现的一些示例不同,这应该是动态的并且永无止境。我使用的是 MYSQL 5.4
对于日历表,我拼凑了这个,但认为它不正确:
SELECT
DATE(booking_date + INTERVAL (6 - WEEKDAY(booking_date)) DAY) EndOfWeekDate
FROM my_table
group by EndOfWeekDate
ORDER BY EndOfWeekDate DESC
并且我正在尝试将上述内容从左加入到:
SELECT DATE_FORMAT(booking_date, "%M %d %Y") AS week_Ending, CONCAT(YEAR(booking_date), '/', WEEK(booking_date)) AS week_name,
DATE(booking_date + INTERVAL (6 - WEEKDAY(booking_date)) DAY) EndOfWeekDate,
YEAR(booking_date), WEEK(booking_date), COUNT(*)
FROM my_table
GROUP BY EndOfWeekDate
ORDER BY EndOfWeekDate DESC
在玩了大约 2 个小时后,我还远远没有得到这个。是否有比我更有经验的人能够阐明我应该去哪里才能实现这一目标?
所需的显示:
2020 年 6 月 30 日 | 2020/26 | 2020 | 26 | 5
2020 年 7 月 6 日 | 2020/27 | 2020 | 27 | 0
2020 年 7 月 13 日 | 2020/28 | 2020 | 28 | 0
2020 年 7 月 20 日 | 2020/29 | 2020 | 29 | 2
样本数据
身份证 |日期 |姓名
12 | 2020-08-24 |鲍勃·史密斯
【问题讨论】:
-
欢迎使用 stackoverflow。看起来您只是从一张表 (
my_table) 中进行选择,因此对于您要完成的工作并不清楚。为了使用LEFT JOIN,您必须有 2 个可供选择的表。请提供表中数据的示例以及您希望结果集的外观示例。 -
感谢现在编辑