我有兩個表rawtable
和tradetable
如何在需要執行第一個表列值時進行JOIN?
rawtable
rawid companyname uniqueID
1 AAA-XA 9CV
2 BBB-DEMO 10K
3 CCC-XOXO 7D
tradetable
tradeid securityname CUSIP
1 AAACOMP 9CV
2 BBBCOMP 10K
現在我需要的是從rawtable
companyname
是有點混,所以我需要有securityname
從tradetable
作爲公司名稱爲我所用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
,這將給我從tradetable
names
但在這裏我將rawtable
錯過了新的不匹配的名字,但我想那些名太多,但在select語句
如果我用
declare DataSourceId = 3;
SELECT DISTINCT
@DataSourceId,
dbo.CleanText(rawtable.securityname) --instead of tradetable
那麼我會選擇錯誤的混合名稱
那麼,怎樣才能解決我這個問題?或從別的地方我需要進行正確的名稱,我想它像tradetable
securityname
輸出I預期:
rawtable
companyname uniqueID
AAA-XA 9CV
BBB-DEMO 10K
CCC-XOXO 7D
tradetable
securityname CUSIP
AAACOMP 9CV
BBBCOMP 10K
我想要一個securityname
即companyname
以適當的格式爲我檢查uniqueID
如果匹配那麼它會從tradetable
NOW
取securityname
當存在rawtable
加法記錄像CCC_XOXO
被那裏它的實際名稱可能是CCC
因此,爲了採取CCC
我應該採取CCC
從它出現在第三表中或有任何其他方式嗎?
意味着我需要在我的JOIN中導入第三個表格嗎?
我讀過你的問題兩次,但我不明白。也許增加一些例子輸出? – Andomar 2012-07-27 18:19:21