Существуют различные странные вещи в вашей схеме, и вы не предоставили пример данных, чтобы оправдать свои утвержденные значения.
Первая странность состоит в том, что у вас есть и фамилия, и имя врача в Докторах.таблица, а в таблице Vendor Sales - пока вы присоединяетесь только по фамилии.Далее, у вас есть столбец идентификатора, кажется, в таблице «Доктора», но вы не используете его в таблице «Продажи поставщиков» для присоединяющегося столбца.
Не ясно, есть ли одна запись в поставщике.Таблица продаж на одного врача или их может быть несколько.Учитывая описанные проблемы подсчета, мы должны предположить, что в таблице «Продажи поставщиков» может быть несколько записей на одного врача.Также неясно, где определен поставщик, но мы должны предположить, что это не имеет отношения к проблеме.
Итак, один набор данных, который вам нужен, это количество врачей на практику и сборы.(что составляет 150 денежных единиц на одного врача).Давайте сначала разберемся с этим:
SELECT PracticeID, COUNT(*) AS NumDoctors, COUNT(*) * 150 AS Dues
FROM Doctors
GROUP BY PracticeID
Затем нам нужен общий объем продаж в расчете на одну практику, а также кредит:
SELECT t1.PracticeID, SUM(t2.ProductSales) AS Total_Sales,
SUM(t2.ProductSales * t2.SalesCommission) AS Credit
FROM Doctors AS t1
JOIN VendorSales AS t2 ON t1.Lastname = t2.DoctorLastName
GROUP BY t1.PracticeID
Эти два частичных ответа необходимо объединить на идентификаторе практики дляВы получите свой окончательный результат:
SELECT r1.PracticeID, r1.NumDoctors, r1.Dues,
r2.Total_Sales, r2. Credit
FROM (SELECT PracticeID, COUNT(*) AS NumDoctors, COUNT(*) * 150 AS Dues
FROM Doctors
GROUP BY PracticeID) AS r1
JOIN (SELECT t1.PracticeID, SUM(t2.ProductSales) AS Total_Sales,
SUM(t2.ProductSales * t2.SalesCommission) AS Credit
FROM Doctors AS t1
JOIN VendorSales AS t2 ON t1.Lastname = t2.DoctorLastName
GROUP BY t1.PracticeID) AS r2
ON r1.PracticeID = r2.PracticeID;
Это должно дать вам результат, к которому вы стремитесь, я считаю.Но это непроверенный SQL - не в последнюю очередь потому, что вы не предоставили нам соответствующие примеры данных для работы.