В нашей системе групповые бронирования проводятся в виде блоков.Я могу получить общий доход, удерживаемый в блоке на группу, по дате прибытия и отъезда.Проблема заключается в том, что доход в расчете на группу - это общий показанный доход, полученный в течение всего периода, в течение которого спальни были заблокированы.Это было бы хорошо, если бы каждая группа прибыла и уехала в один и тот же месяц.Однако есть группы, которые прибывают через месяц и уходят в следующем месяце.Мне нужно разделить доход для этих групп по месяцам.Так, например, если группа прибывает 28/06 и уезжает 3/07, мне нужно знать, какая часть этого дохода генерируется в июне (3 ночи) и сколько в июле (2 ночи).Приведенный ниже запрос является верным, но он даст мне общий доход на основе EndDate (дата выезда), поэтому доход будет идти в месяц, когда группа покидает группу.Я также сравниваю то же самое время в прошлом году
SELECT DAILYREV = ProjectedRevenueAccomNett/ DATEDIFF(Day,BeginDate, EndDate), DATEDIFF(DAY,BeginDate, EndDate) AS StayNights, Year(BeginDate) ArrivalYear, GroupRef, GAStatus, SourceSiteId, BeginDate, EndDate, CreatedTimestamp, DefMarketSegmentCode,ProjectedRevenueAccomNett, ProjectedRevenueFBNett
From SyncGroupRoomBlockHeaders
WHERE CreatedTimestamp <= '2019-03-28'
AND BeginDate BETWEEN '2019-03-28' AND '2019-12-31'
or
CreatedTimestamp <= '2018-03-28'
AND BeginDate BETWEEN '2018-03-28' AND '2018-12-31'
Order By YEAR (BeginDate)