我有兩個查詢都創建我想交叉連接的表。當我沒有所需的所有欄目時,如何進行交叉加入?
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
此查詢給出了其具有從2017年1月1日的每個日期2017年8月31日與每個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段的表。
現在,我想要的是每個SITA和每個Market_Segment(每個日期將有30 x 18行)以及所有其他日期從2017-01-01到2017-08-31的表格來自第一個查詢的列也是; B,C,Rooms,StayDays as RN,AMTRoom as Rev.
當然,因爲所有日期和market_Segment/Seg組合都不在第一個表格中,所以我想只輸出RN和Rev爲0,但這些但B ,C,每個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
可以請包括這個問題的一些數據。我不跟着你。 –
不要以爲您想在這裏使用CROSS JOIN,而是使用左或右連接...第一個查詢中的Market_segment與第二個Qeury中的SEG相同?我的意思是這種關係?沒有示例表格和數據很難說。 –
是的,第一個查詢中的Market_segment與第二個查詢中的SEG相同@RaymondNijland – Sorath