1

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 にしようとしているだけです

4

2 に答える 2