1

このクエリは、顧客IDのテーブルを生成します。

SELECT Transactions.customerId
FROM Transactions 
WHERE Transactions.purchaseDate <#9/1/2012#
GROUP BY Transactions.customerId
HAVING  Sum(Transactions.amountPaid)<>0;

このクエリは、トランザクションのテーブルを生成します。

SELECT Customers.firstName, Customers.lastName, Transactions.transactionId, Transactions.product, Transactions.purchaseDate, Transactions.amountPaid, Customers.customerId
FROM Customers INNER JOIN Transactions ON Customers.customerId = Transactions.customerId
WHERE (((Transactions.refundTransaction)=False));

最初のクエリで生成されたユーザーのみからすべてのトランザクション(2番目のクエリ)を選択したいと思います。

4

1 に答える 1

3

MS Accessを使用すると、これらのクエリの両方を保存してから、クエリ名でクエリデザインウィンドウに追加することができます。追加したら、関連するフィールド名を一方から他方にドラッグアンドドロップすることで、2つのクエリ間に内部結合を作成できます。次の段階は、先に進むことができる場合、派生テーブル、つまりクエリのSQLコンテンツをクエリ名に置き換えることです。

例えば:

Query1

SELECT ID, CustName FROM Table1 WHERE SomeField > 2

Query2

SELECT CustID, TranName FROM Table2 WHERE SomeField > Date()

Query3

SELECT * FROM Query1 INNER JOIN Query2 ON Query1.ID = Query2.CustID

置換:

SELECT * FROM (
   SELECT ID, CustName 
   FROM Table1 
   WHERE SomeField > 2) As Q1
INNER JOIN (
   SELECT CustID, TranName 
   FROM Table2 WHERE SomeField > Date()) As Q2
ON Q1.ID = Q2.CustID
于 2012-09-30T16:06:19.230 に答える