У меня есть два запроса, которые создают таблицы, которые я хотел бы объединить.
SELECT SITA, B, C, Rooms, Datearrived, Market_segment, StayDays as RN, AMTRoom as Rev
FROM [UKRMC].[dbo].[revenue] rev
JOIN [UKRMC].[dbo].[Contacts] contacts
ON rev.hotel_id = contacts.id
WHERE datearrived between '2017-01-01' and '2017-08-31' and C like '%GB%'
ORDER BY sita
Этот запрос дает таблицу с каждой датой с 01.01.2017 по 31.08.2017 для каждого SITA (существует 30 SITA) и каждого Market_segment (существует 18 отдельных Market_segments, но каждый SITA не имеет всех Market_segments и вот в чем моя проблема).
Мой следующий запрос:
SELECT SEG
FROM [UKRMC].[dbo].[Segmentation]
WHERE SEG IN ('RAC', 'BIT', 'BIQ', 'CBI', 'TOF', 'QOF', 'BOA', 'FIT', 'LYO', 'RER', 'OTH', 'NRG', 'XXX', 'CRW', 'BGR', 'BGO', 'LGR', 'LGS')
Итак, это таблица из 18 сегментов.
Теперь мне нужна таблица, в которой есть каждая дата с 01.01.2017 по 31.08.2017 с каждым SITA и каждым Market_Segment (так что каждая дата будет иметь 30 x 18 строк) вместе со всеми другими столбцами из первого запрос тоже; B, C, Rooms, StayDays как RN, AMTRoom как Rev.
Конечно, поскольку все даты и комбинация market_Segment / Seg не входят в первую таблицу, я хотел бы просто вывести RN и Rev как 0 для них, но B, C, Rooms фиксированы для каждого SITA (так что мне понадобится еще одно соединение для фиксированные значения?)
Надеюсь, это имеет смысл. Любая помощь приветствуется! Вот примеры данных для двух запросов соответственно.
SITA B C Rooms Datearrived Market_segment RN Rev
ABZPD PI GB 150 2017-01-01 TOF 2 45
ABZPD PI GB 150 2017-01-01 BAO 33 30.5
ABZPD PI GB 150 2017-01-01 BGR 11 50
ABZPD PI GB 150 2017-01-01 NRG 52 10
ABZPD PI GB 150 2017-01-01 CRW 20 90
ABZPD PI GB 150 2017-01-01 BIT 7 20
ABZPD PI GB 150 2017-01-01 CBI 0 40
ABZPD PI GB 150 2017-01-01 OTH 10 50
ABZPD PI GB 150 2017-01-01 BIQ 11 60
ABZPD PI GB 150 2017-01-01 RER 12 65
**SEG**
RAC
BIT
BIQ
CBI
TOF
QOF
BOA
FIT
LYO
RER
OTH
NRG
XXX
CRW
BGR
BGO
LGR
LGS