私がやりたいことが可能かどうかはわかりませんが、可能であれば、おそらく私が理解できない本当に簡単な解決策です. ただし、物事がある程度複雑になると、頭が回転し始めます。私の無知をお許しください。
多数のテーブルが相互に結合されている学校用に、MS Access 2007 でデータベースを実行しています。複数のテーブルから情報を取得するクエリを作成しようとしています。さまざまな顧客の売上と支払いの情報を調べて、いくつかの異なるリンクされたテーブルから情報を引き出しています。各販売は、コース料金、登録料、書籍料金、その他の 4 つのカテゴリのいずれかに分類されます。各顧客は複数の購入を行うため、それぞれが Sales テーブルの個別のエントリになります。支払い情報も独自のテーブルにあります。
私のSQLは現在次のようになっています:
SELECT StudentContracts.CustomerID, (Customers.CFirstName & " " & Customers.CLastName) AS Name, Customers.Nationality, Courses.CourseTitle, (StudentContracts.ClassesBought + StudentContracts.GiftClasses) AS Weeks, StudentContracts.StartDate, Sales.SaleAmount, SaleType.SaleType, Sales.DueDate, Payments.PaymentAmount
FROM (
(
(Customers INNER JOIN StudentContracts ON Customers.CustomerID = StudentContracts.CustomerID)
INNER JOIN Payments ON Customers.CustomerID = Payments.CustomerID)
INNER JOIN
(SaleType INNER JOIN Sales ON SaleType.SalesForID = Sales.SalesForID)
ON Customers.CustomerID = Sales.CustomerID)
INNER JOIN
(
(Courses INNER JOIN Classes ON Courses.CourseID = Classes.CourseID)
INNER JOIN StudentsClasses ON Classes.ClassID = StudentsClasses.ClassID)
ON Customers.CustomerID = StudentsClasses.CustomerID;
これは機能し、必要な情報が表示されます。ただし、次のように、販売ごとに 1 つのレコードを取得しています。
CustomerID Name ... SaleAmount SaleType PaymentAmount
1 Bob $600 Course $1000
1 Bob $300 RgnFee $1000
1 Bob $100 Book $1000
私が必要とするのは、顧客ごとに 1 行ですが、値フィールドに販売金額がリストされている行の独自の列にある各販売タイプです。そのとおり:
CustomerID Name ... Course RgnFee Book Others PaymentAmount
1 Bob $600 $300 $100 $1000
誰かが私が何をすべきか/する必要があるかを助け、おそらく説明できますか?
前もって感謝します!