Я пытаюсь присоединить таблицу HE к таблице S, как показано в приведенном ниже коде.
Чтобы получить совпадение и объединить данные, мне нужно сопоставить идентификатор клиента и рынок, как показано ниже в [Headendmarket & tbcode] и [SETClientID + Market] из таблиц S и HE.
а потому что некоторые данные в столбцах не чистые. конкат выше не достаточен, и в соединении есть некоторые недостающие элементы в S.
решение для меня будет состоять в том, чтобы дополнительно просмотреть данные для данных, которые остались нулевыми после выполнения запроса ниже, и сделать еще один конкат на S. [Market] & s. [Client] и еще раз присоединиться к нему с HE. [ HeadendMarket] & [HE.Advertisername]. это будет соответствовать оставшимся данным, которые будут нулевыми, чтобы увидеть, есть ли возможное совпадение, и вернуть данные, которые он может для таблицы S.
не уверен, что для меня лучший способ сделать это в этом запросе?
SELECT DISTINCT CONCAT(HE.[AdvertiserTBCode],HE.[HeadendMarket]) AS [Headendmarket&tbcode]
,CONCAT(S.[CLIENTID],S.[Market]) AS [SETClientID+Market]
,HE.[CurrentRegionName]
,HE.[CurrentMarketName]
,HE.[CurrentSalesTeamName]
,HE.[CurrentSalesOfficeName]
,HE.[CurrentCorpAEName]
,HE.[CurrentAEType]
,HE.[AdvertiserTBCode] --Has all the correct data--
,HE.[AdvertiserName]
,HE.[ParentAdvertiserName]
,HE.[HeadendRegion]
,HE.[HeadendMarket] --has all correct data--
,HE.[CorpCategoryGroup]
,S.[Actuals vs projections]
,S.[Year]
,S.[Month]
,S.[Area]
,CASE S.[Market] --some markets not the same name which is why we are doing this to have the same markets as HE Table--
WHEN 'Twin Cities' THEN 'Minneapolis - St. Paul'
WHEN 'Fort Myers' THEN 'Ft. Myers - Naples'
WHEN 'Bowling Green' THEN 'Nashville'
WHEN 'North Miss' THEN 'TUPELO'
WHEN 'Monroe, LA' THEN 'Monroe'
WHEN 'Southern Miss-Hattiesburg/Laurel/Meridian' THEN 'SOUTHERN MISS'
WHEN 'Northern Miss-Columbus/Tupelo' THEN 'Tulepo'
WHEN 'Little Rock, AR' THEN 'Little Rock'
WHEN 'Fort Wayne' THEN 'Ft. Wayne'
WHEN 'Wheeling/Youngstown/Canfield' THEN 'WYC'
WHEN 'Johnstown/Altoona/State College' THEN 'Johnstown-Altoona'
WHEN 'Washington, D.C.' THEN 'Washington'
ELSE S.[Market] END AS [SET Market]
,S.[Zone Type]
,S.[Category]
,S.[Subcategory]
,S.[Event]
,S.[Network]
,S.[AE]
,S.[Client] -- some wrong fields--
,S.[ClientID] --some incorrect data entered. this with the market concatenation should match the data in the HE table in a perfect world.--
,S.[# Spots]
,S.[Gross ($)]
FROM [REO].[dbo].[Sports] S
LEFT JOIN [REO].[dbo].[HF_Final] HE
ON CONCAT(S.[CLIENTID],CASE S.[Market]
WHEN 'Twin Cities' THEN 'Minneapolis - St. Paul'
WHEN 'Fort Myers' THEN 'Ft. Myers - Naples'
WHEN 'Bowling Green' THEN 'Nashville'
WHEN 'North Miss' THEN 'TUPELO'
WHEN 'Monroe, LA' THEN 'Monroe'
WHEN 'Southern Miss-Hattiesburg/Laurel/Meridian' THEN 'SOUTHERN MISS'
WHEN 'Northern Miss-Columbus/Tupelo' THEN 'Tulepo'
WHEN 'Little Rock, AR' THEN 'Little Rock'
WHEN 'Fort Wayne' THEN 'Ft. Wayne'
WHEN 'Wheeling/Youngstown/Canfield' THEN 'WYC'
WHEN 'Johnstown/Altoona/State College' THEN 'Johnstown-Altoona'
WHEN 'Washington, D.C.' THEN 'Washington'
ELSE S.[Market] END)
= CONCAT(HE.[AdvertiserTBCode],HE.[HeadendMarket])