Я изначально хотел увидеть разбивку общего долларового бизнеса, который каждый поставщик сделал (косвенно через дистрибьютора) с каждым клиентом, где я пытаюсь не использовать Синтаксис внутреннего соединения, и использовал запрос ниже для этой цели:Понять подзапросы
select customers.cust_id, Vendors.vend_id, sum(quantity*item_price) as total_business from
(((Vendors left outer join Products
on Products.vend_id = Vendors.vend_id)
left outer join OrderItems --No inner joins allowed
on OrderItems.prod_id = Products.prod_id)
left outer join Orders
on Orders.order_num = OrderItems.order_num)
left outer join Customers
on Customers.cust_id = Orders.cust_id
where Customers.cust_id is not null -- THE ONLY DIFFERENCE BETWEEN QUERY1 AND QUERY2
group by Customers.cust_id, Vendors.vend_id
order by total_business
Теперь я пытаюсь увидеть результаты вывода запроса для всех комбинаций поставщика клиентов, в том числе тех комбинаций, в которых не было никакого дела транзакционного и я пытаюсь написать это с помощью одного SQL Запрос. Мой учитель предоставил это решение, но я, честно говоря, не могу понять логику вообще, поскольку я никогда не сталкивался с Sub-запросами.
select
customers.cust_id,
Vendors.vend_id,
sum(OrderItems.quantity*orderitems.item_price)
from
(
customers
inner join
Vendors on 1 = 1
)
left outer join --synthetic product using joins
(
orders
join
orderitems on orders.order_num = OrderItems.order_num
join
Products on orderitems.prod_id = products.prod_id
) on
Vendors.vend_id = Products.vend_id and
customers.cust_id = orders.cust_id
group by customers.cust_id, vendors.vend_id
order by customers.cust_id
Большое спасибо