Access 2007 を使用していますが、SQL は初めてです。顧客名と部品番号が一致するが、場所が一致しない行を特定したいテーブルがあります。このアプリケーションは、同じ部品が同じ顧客によって注文されたが別の場所に送られた場合に、価格の違いを簡単に識別するためのものです。コードの最後の行を含めない場合、クエリは以下の情報を返します。
CustomerNumber CompanyName PartNumber CustomerName Location SumOfQuantity AvgOfPrice
5 Prestige 1000-A-26631-0 FINLAND OY FINLAND 1 $5.00
5 Prestige 1000-A-26631-0 FINLAND OY KARHULA 2 $10.00
15 Prestige 1000-A-29230-0 Portland (US) 2 $15.00
3 Prestige 1000-A-29230-0 BARBOU BARBOU 2 $5.00
9 Prestige 1000-A-29230-0 MEXICO MEXICO 6 $20.00
最初の 2 行はまさに私が探しているものです。CustomerName と PartNumber は一致しますが、Location は異なります。ただし、私のクエリは、PartNumbers が一致する行も返しますが、CustomerNames は一致しません。同様の Group By を追加する必要があると思いますが、CustomerName に対しても HAVING COUNT ステートメントを追加しますが、構文エラーが発生します。解決策は恥ずかしいほど簡単だと思いますが、それを理解することができませんでした。エラーが発生する理由を特定できる人はいますか?
SQL:
SELECT [2-B: Avg Prices by Customer].[Customer Number], [2-B: Avg Prices by Customer].[Company Name], *
FROM [2-B: Avg Prices by Customer]
WHERE ((([2-B: Avg Prices by Customer].[Company Name])=[Forms]![Start Form]![Combo73]))
OR ((([2-B: Avg Prices by Customer].[Company Name])=[Forms]![Start Form]![List67])
AND (([2-B: Avg Prices by Customer].[Part Number]) In
(SELECT [Part Number] FROM [2-B: Avg Prices by Customer]
GROUP BY [Part Number] HAVING COUNT([Part Number]) >1)),
[Customer Name] HAVING COUNT([Customer Name])>1))); ------ > **Syntax error here, missing operator**