2011-05-25 58 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')