2011-05-25 89 views
0
select a.AccountNumber,w.BillingAdmin 
from dbo.ACCTHIST a left join dbo.WTABLE w on a.BillingClassKey = w.TablDKey 
where a.AccountNumber in ('0000001779  W', 
    '0000001779  W', 
    '0000001779  W', 
    '0000001779  W', 
    '0000005502  W', 
    '0000005502  W', 
    '0000005502  W', 
    '0000005502  W') 

結果是:重複在SQL Server

Account Number     Billingadmin 
    0000001779  W     VB-Rajendrasingh R           
    0000005502  W     NULL 
    0000005502  W     VB-Rajendrasingh R  
    0000005502  W     VB-Rajendrasingh R  

的問題是我puting三次account number '0000001779 W',三而竭'0000005502 W'。不過我得到了0000001779 W一個結果和三排爲0000005502 W
對不起,我不能查看正確格式的頁面,所以它很難把問題在良好的格式

+0

你期望的輸出?代碼的行爲與數據相同 – gbn 2011-05-25 08:43:34

回答

0

你只需要您的每一個標準的一個實例,以便無論如何要得到所有匹配的值,試試這個。

select a.AccountNumber,w.BillingAdmin 
from dbo.ACCTHIST a left join dbo.WTABLE w on a.BillingClassKey = w.TablDKey 
where a.AccountNumber in ('0000001779  W', 
    '0000005502  W') 

你應該得到相同的結果。

您確定您在數據中多次使用該值嗎?要檢查試試這個:

SELECT COUNT(AccountNumber) From dbo.ACCTHIST WHERE AccountNumber = '0000001779  W' 
3

當然:你在的WTable 3行的0000005502 W

IN子句忽略重複太多,因此是有效

... in ('0000001779  W', '0000005502  W')