둘 다 내가 조인하고 싶은 테이블을 만드는 두 개의 쿼리가 있습니다.필요한 모든 열이 없을 때 어떻게 교차 결합을 수행합니까?
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
이 질의 (18 구별 Market_segments가 각각 SITA (존재 SITA 30)와 함께 각 Market_segment 2017년 8월 31일에 2017년 1월 1일 각 날짜를 가진 테이블을 제공하지만 각각 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 개 세그먼트의 테이블을 제공합니다.
자, 내가 원하는 건 2017-01-01부터 2017-08-31까지의 각 날짜와 각 SITA 및 각 Market_Segment (각 날짜는 30x18 행을 갖게 됨)와 함께 첫 번째 쿼리의 열 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을 사용하고 싶지는 않지만 LEFT 또는 RIGHT JOIN을 사용한다고 생각하지 마십시오 ... 첫 번째 쿼리의 Market_segment는 두 번째 qeury의 SEG와 동일합니까? 그게 그 관계인가요? 예제 테이블과 데이터없이 말하기는 어렵습니다. –
예, 첫 번째 쿼리의 Market_segment는 두 번째 쿼리의 SEG와 같습니다. @RaymondNijland – Sorath