Sql 如何添加在左联接和CONCAT中创建的case语句
嗨,我正在尝试从两个不同的表连接两个连接的字段 我正在尝试将带有代码和市场的S表与带有代码和市场的SM表连接起来 S表中有几个市场不匹配,所以我创建了一个案例语句,如下所示,这样我就可以加入S市场字段和S广告商代码字段。 这是行不通的 获取此错误 Msg 207,16级,状态1,第39行 列名“SET Market”无效。 Msg 207,16级,状态1,第35行 列名“SET Market”无效Sql 如何添加在左联接和CONCAT中创建的case语句,sql,tsql,sql-server-2012,Sql,Tsql,Sql Server 2012,嗨,我正在尝试从两个不同的表连接两个连接的字段 我正在尝试将带有代码和市场的S表与带有代码和市场的SM表连接起来 S表中有几个市场不匹配,所以我创建了一个案例语句,如下所示,这样我就可以加入S市场字段和S广告商代码字段。 这是行不通的 获取此错误 Msg 207,16级,状态1,第39行 列名“SET Market”无效。 Msg 207,16级,状态1,第35行 列名“SET Market”无效 SELECT dISTINCT SM.[Region] ,SM.[Market]
SELECT dISTINCT SM.[Region]
,SM.[Market]
,SM.[PA]
,SM.[Advertiser]
,SM.[AdvertiserCode]
,CONCAT(SM.[advertisercode],SM.[market]) as [smdashadcode+market]
,S.[Actuals vs projections]
,S.[Year]
,S.[Month]
,S.[Area]
,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 'TUPELO'
WHEN 'Little Rock, AR' THEN 'LITTLE ROCK'
ELSE S.[Market] END AS [SET Market]
,S.[Zone Type]
,S.[Category]
,S.[Subcategory]
,S.[Event]
,S.[Network]
,S.[AE]
,S.[Client]
,S.[ClientID]
,S.[# Spots]
,S.[Gross ($)]
,CONCAT(S.[CLIENTID],[SET Market]) AS [SETClientID+Market]
FROM [MAIN].[dbo].[CET Sports] S
LEFT JOIN [MAIN].[dbo].[Data] SM
ON CONCAT(S.[CLIENTID],S.[SET Market]) = CONCAT(SM.[advertisercode],SM.[market])
预期结果是
S市场sm市场sm顾问sm AE
纳什维尔纳什维尔创意索菲亚你不能像在..声明中那样使用
[SET Market]
您可以使用创建此列的CASE语句:
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 'TUPELO'
WHEN 'Little Rock, AR' THEN 'LITTLE ROCK'
ELSE S.[Market] END) = CONCAT(SM.[advertisercode],SM.[market])
谢谢你,真管用!问题是,在加入之后,我怎么仍然有一些空值?除了广告商代码和市场之外,我还有什么办法加入其他Concat吗?。我正在尽可能少地获取空值。添加了,但如果您能回答我上面的问题,您需要添加示例数据和预期结果,并说明哪些值不应为空值。请尝试将
左连接更改为内部连接。