【发布时间】:2020-10-15 17:47:41
【问题描述】:
我有一个非常复杂的查询需要帮助。
我有一个包含Order_ID、Date 和Day 的表。
我需要得到每月的星期Week_No。该字段有 4 个关键条件。
- 一周从星期六开始,在每个月初重新开始。
- 结果的总长度应为 3 个字符,因此应始终有 2 个前导零,例如
001。 -
Week_No将始终从001开始,即使没有其他条目导致该条目的特定Date。 -
Week_No始终以 1 递增,即使在该月的某个特定周内没有订单。
以条件 3. 和 4. 为例,
如果 6 月份只有 2 个订单,2020-06-29 上的一个和2020-06-11 上的一个,Week_No 将分别为前者和后者的 002 和 001。
希望我下面的表格足够清楚。
╔══════════╦════════════╦═════╦═════════╗
║ Order_ID ║ Date ║ Day ║ Week_No ║
╠══════════╬════════════╬═════╬═════════╣
║ 11 ║ 2020-06-25 ║ Thu ║ 002 ║
║ 10 ║ 2020-06-24 ║ Wed ║ 002 ║
║ 9 ║ 2020-06-20 ║ Sat ║ 002 ║
║ 8 ║ 2020-06-11 ║ Thu ║ 001 ║
║ 7 ║ 2020-05-31 ║ Sun ║ 006 ║
║ 6 ║ 2020-05-31 ║ Sun ║ 006 ║
║ 5 ║ 2020-05-29 ║ Fri ║ 005 ║
║ 4 ║ 2020-05-20 ║ Wed ║ 004 ║
║ 3 ║ 2020-05-14 ║ Thu ║ 003 ║
║ 2 ║ 2020-05-07 ║ Thu ║ 002 ║
║ 1 ║ 2020-05-01 ║ Fri ║ 001 ║
╚══════════╩════════════╩═════╩═════════╝
【问题讨论】:
-
我建议您创建一个日历表,其中定义了您的周数。这对这样的问题很有用。
标签: mysql sql date conditional-statements