Каков правильный прототип моего оператора select? - PullRequest
0 голосов
/ 22 апреля 2020

У меня есть три таблицы (клиент, заказ, продукт), и я сделал столбец в таблице продуктов, в котором должно быть указано, сколько продуктов заказывают клиенты. Это означает, что я хочу знать, сколько заказов для каждого продукта отправлено клиентами.

Я попробовал это утверждение в Oracle SQL Разработчик:

select count(customer_code) into product.numberOfOredrs
from order
where order.prodact_name = product.product_name;

Но не работает.

Столбцы таблицы товаров: product_name, numberOfOredrs.

Столбцы таблицы заказов: Id_order, customer_code.

Столбцы таблицы клиентов: customer_code.

Ответы [ 3 ]

0 голосов
/ 22 апреля 2020

Приведенный ниже запрос даст вам количество заказов для каждого продукта для каждого клиента.

SELECT C.Customer_code,p.product_name,COUNT(Id_Order) AS CountOfOrders
FROM Customer AS c
INNER JOIN Order AS o ON c.customer_code = o.customer_code
INNER JOIN Product AS p ON p.product_name = o.product_name
GROUP BY C.Customer_code,p.product_name;
0 голосов
/ 22 апреля 2020

Если вы хотите обновить записи в таблице product, вы можете использовать следующее:

update product p
set p.numberOfOredrs = (select count(1) 
                          from order o 
                         where o.product_name = p.product_name)
0 голосов
/ 22 апреля 2020

Кажется, вы хотите слияния:

select customer_code, count(*) as no_of_product
from order o inner join
     product p
     on p.product_name = o.product_name
group by o.customer_code;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...