4 つの個別のテーブルを使用していますが、DISTINCT が結果をフィルタリングしていない理由がわかりません。このクエリの acct.Name ごとに 1 つの結果を取得しようとしています。DISTINCT を使用するかどうかに関係なく、まったく同じ結果が得られます。
Select DISTINCT
acct.Name,
inv.InvoiceNumber,
acct.AccountNumber,
addr.Line1,
addr.Line2,
addr.Line3,
addr.City,
addr.StateOrProvince,
addr.postalcode
FROM InvoiceBase inv, AccountBase acct
JOIN AccountExtensionBase base
ON base.AccountId = acct.AccountId
JOIN CustomerAddressBase addr
ON addr.ParentId = acct.AccountId
WHERE
inv.AccountId=acct.AccountId And
base.New_cocat_master = 1 And
base.New_CompanyId = 1 And
inv.StateCode = 0 And
inv.Name = '2013 ' + acct.AccountNumber
ORDER by acct.Name
最初の結果には最初の 3 つの値 (acct.Name、inv.InvoiceNumber、acct.AccountNumber) があり、残りの列は空白です。2 番目の行には、情報を含むすべての列があります。acct.Name を DISTINCT にしようとしているだけです