我不确定我想做的事情是否可能,但如果可能的话,这可能是一个我无法弄清楚的非常简单的解决方案。但是,一旦事情达到一定的复杂性,我的头就会开始旋转。请原谅我的无知。
我有一个在 MS Access 2007 中为一所学校运行的数据库,该学校有大量相互连接的表。我正在尝试创建一个查询,从多个表中获取信息。我正在查找不同客户的销售和付款信息,从几个不同的链接表中提取信息。每笔销售分为 4 个类别之一,课程费、注册费、书费和其他。因为每个客户都会有多次购买,所以每一次都是销售表中的一个单独条目。付款信息也在其自己的表中。
我的 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;
这有效并提供了我需要的信息。但是,每次销售我都会获得一条记录,如下所示:
CustomerID Name ... SaleAmount SaleType PaymentAmount
1 Bob $600 Course $1000
1 Bob $300 RgnFee $1000
1 Bob $100 Book $1000
我需要的是每个客户的一行,但每个销售类型在它自己的行中的列中,销售金额列在其值字段中。如此:
CustomerID Name ... Course RgnFee Book Others PaymentAmount
1 Bob $600 $300 $100 $1000
谁能帮助并可能解释我应该/需要做什么?
提前致谢!