内部连接返回的Sql限制行

时间:2015-02-13 21:25:42

标签: sql-server

SELECT TOP (100) PERCENT dbo.Travelers.InsDate, 
                         dbo.Certificates.CertificateNumber, 
                         dbo.Certificates.Payment, 
                         dbo.Travelers.FirstName, 
                         dbo.Travelers.LastName, 
                         dbo.Travelers.DOB, 
                         dbo.Travelers.Address, 
                         dbo.Travelers.City, 
                         dbo.Travelers.State, 
                         dbo.Travelers.Zip, 
                         dbo.Travelers.Email, 
                         dbo.Travelers.BestPhone, 
                         dbo.Buyers.Name, 
                         dbo.Buyers.SalesRep, 
                         dbo.Sales.BoxNumber
FROM dbo.Sales 
INNER JOIN dbo.Buyers ON dbo.Sales.BuyerID = dbo.Buyers.ID 
INNER JOIN dbo.Travelers 
INNER JOIN dbo.Certificates ON dbo.Travelers.CertificateID = dbo.Certificates.ID ON dbo.Sales.BoxNumber = LEFT(dbo.Certificates.CertificateNumber, 4)
WHERE (dbo.Certificates.PaymentCode = '1')
ORDER BY dbo.Travelers.InsDate DESC

此查询返回具有相同CertificateNumber的多个记录。我希望它返回一个DISTINCT CertificateNumber,但由于BoxNumber是CertificaeNumber的衍生物,它返回多行。

我尝试过Distinct和Group BY。

有人有任何建议吗?

1 个答案:

答案 0 :(得分:0)

经过进一步研究,暴露了另一个问题,BoxNumbers被出售给多个买家。一旦我解决了这个问题,就可以了。