我有两张桌子rawtable
和tradetable
未加工的
rawid companyname uniqueID
1 AAA-XA 9CV
2 BBB-DEMO 10K
3 CCC-XOXO 7D
交易台
tradeid securityname CUSIP
1 AAACOMP 9CV
2 BBBCOMP 10K
现在我需要的是companyname
fromrawtable
有点混,所以我需要securityname
fromtradetable
作为公司名称,因为我使用了 LEFT JOIN
declare DataSourceId = 3;
SELECT DISTINCT
@DataSourceId,
dbo.CleanText(tradetable.securityname)
FROM tradetable
LEFT JOIN
(
SELECT DISTINCT
companyname,
uniqueID
FROM
rawtable
) rawtable ON tradetable.cusip = rawtable. uniqueID
这会给我names
fromtradetable
但在这里我会错过新的不匹配的名称rawtable
但我也想要这些名称但在 select 语句中
如果我使用
declare DataSourceId = 3;
SELECT DISTINCT
@DataSourceId,
dbo.CleanText(rawtable.securityname) --instead of tradetable
那么我会选择错误的混合名称
那么我该如何解决这个问题呢?或从其他地方我需要按照我的意愿执行正确的名称tradetable
securityname
我预期的输出:
未加工的
companyname uniqueID
AAA-XA 9CV
BBB-DEMO 10K
CCC-XOXO 7D
交易台
securityname CUSIP
AAACOMP 9CV
BBBCOMP 10K
我想要一个格式正确的securityname
即companyname
我正在检查uniqueID
它是否匹配然后它将securityname
从tradetable
现在
当有一个附加记录时,它的实际名称可能是rawtable
这样的,我应该从它出现在第三张表中的地方取它,还是有其他方法?CCC_XOXO
CCC
CCC
CCC
意味着我也需要在我的 JOIN 中导入第三个表,对吗?