私はこれを今のところ働かせようとしています。私は3つのテーブルを持っています。最初のテーブルには、CustomerID、DateOfSales(常に月の最初の日付)を含む顧客のSalesがあります。 2番目のテーブルにはCustomerName、CustomerIDがあります。 3番目の表は、どの顧客がどの製品ラインを購入しているかを示しています。それらはCustomerID、ProductIDによって格納されます。Access 2002 3つのテーブルを結合するためのSQL
私は、Salesから特定のProductIDとmaxDateを購入しているとみなされるすべての顧客を持つリスト(1つのSQLからうまくいけばよい)を取得したいと考えています。私はその顧客のために販売がある場合それらのすべてを得ることができます。売り上げがない場合は、特定のProductIDとmaxDateをSalesから購入するすべての顧客またはNULLをどのように取得するのですか?
SalesList |CustomerList|WhoBuysWhat
----------|------------|-----------
maxDate |CustomerID |CustomerID
CustomerID| |ProductID=17
これは私の知る限りです。それはすべての最大日付を取得しますが、販売があった場合に限ります。 CustomerIDが必要で、まだ売上が記録されていない場合はmaxDateにNULLが必要です。
SELECT WhoBuysWhat.CustomerID, CustomerList.CustomerName,
Max(SalesList.MonthYear) AS MaxOfMonthYear FROM (CustomerList INNER
JOIN SalesList ON CustomerList.CustomerID = SalesList.CustomerID) INNER
JOIN WhoBuysWhat ON CustomerList.CustomerID = WhoBuysWhat.CustomerID
WHERE (((SalesList.ProductID)=17)) GROUP BY WhoBuysWhat.CustomerID,
CustomerList.CustomerName;
複数のSQL文を使用することは可能ですか?私はAccess 2002よりも新しいものを手に入れなければならないことを知っていますが、それは彼らが持っているものです。
私に "AND" に構文エラーを示します。おそらくAccess 2002がその責任を負うだろう。 : –
@J_K_M_A_N ...忘れてしまったMS Accessは外部結合のための通常の構文をサポートしていません –
WOW!ありがとうございます!wbw.ProductID = 17を追加しなくてはなりませんでした。今それは動作します! –