Я не уверен, что то, что я хочу сделать, возможно, но если это возможно, это, вероятно, действительно простое решение, которое я просто не могу понять. Но когда дело доходит до определенной сложности, у меня начинает кружиться голова. Пожалуйста, простите мое незнание.
У меня есть база данных, работающая в 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
Может ли кто-нибудь помочь и, возможно, объяснить, что мне нужно / нужно делать?
Заранее спасибо!