我有这个 MySQL 查询:
select day(ReservationDate) as ReservationDay, sum(SleighSeats) as SleighSeats, sum(CabSeats) as CabSeats, 0 as IsFullMoon, '' as OverrideText
from Reservations
where month(ReservationDate) = 2
group by ReservationDate
union
select day(CalendarDate) as ReservationDay, 0 as SleighSeats, 0 as CabSeats, IsFullMoon, OverrideText
from CalendarOverrides
where month(CalendarDate) = 2
group by CalendarDate
order by ReservationDay
Reservations 表可以包含任何给定日历日期的任意数量的记录,或者根本不包含任何记录。CalendarOverrides 表可以正好包含每个日历日期的 1 条或 0 条记录。我正在尝试将结果合并在一起,但并不完全正确。
这是我的结果集:
预订第 23 天是个问题。我希望将这 2 条记录合并为 1,以便 5 个值是: 23、6、8、1
、[空白/空]
澄清:
- ReservationDay 在两个表中(在 CalendarOverrides 中命名为 CalendarDate)
- SleighSeats 和 CabSeats 存在仅在 Reservations 表中
- IsFullMoon 和 OverrideText 仅存在于 CalendarOverrides 表
中联合中的顶部查询将已经合并同一 ReservationDay 上的所有 Reservations 记录,但是如何将底部查询中的任何记录与顶部查询中的记录合并,为同一个预订日?(因此任何一天的记录都不会超过 1 条。)