Как получить сумму подзапроса, который возвращает суммы? - PullRequest
0 голосов
/ 10 марта 2020

Я бы хотел получить сумму «сумм» в следующем случае. Как я могу это сделать? На следующем рисунке представлена ​​таблица, которую я получаю после выполнения приведенного ниже кода. Я хотел бы получить только 2 записи, которые будут:

Или Gazit | 052-3322445 | 36400

Дэн Гай | 050-3023322 | 12000

An image representing the table I'm getting

SELECT Distinct(o1.FirstName & " " & o1.LastName) as [Full Name], o1.PhoneStart & "-" & 
o1.PhoneNumber as [Phone Number],
(SELECT SUM(OrderProducts.ClientPrice*OrderProducts.Quantity) FROM OrderProducts WHERE 
OrderProducts.Order = o2.ID AND o2.Client = o1.ID) AS [Order Price]

FROM Clients as o1 INNER JOIN (Orders as o2 INNER JOIN OrderProducts as o3 ON o2.ID = 
o3.Order) ON o1.ID = o2.Client
ORDER BY 3 DESC;

Спасибо.

1 Ответ

2 голосов
/ 10 марта 2020

Либо я неправильно понимаю ваше требование, либо вы слишком усложняете это. Похоже, вам просто нужна некоторая агрегация (то есть сумма) с предложением group by. Это работает для вас?

select o1.FirstName & " " & o1.LastName     as [Full Name]
     , o1.PhoneStart & "-" & o1.PhoneNumber as [Phone Number]
     , sum(o3.ClientPrice * o3.Quantity)    as [Order Price]
from Clients o1
inner join Orders o2        on o1.ID = o2.Client
inner join OrderProducts o3 on o2.ID = o3.Order
group by o1.FirstName
       , o1.LastName
       , o1.PhoneStart
       , o1.PhoneNumber
order by 3 desc
...