Я довольно новичок в SQL, и это вызывает у меня проблемы. Идея состоит в том, что у меня есть несколько таблиц. Вот соответствующие таблицы и столбцы:ВЫБЕРИТЕ столбец и значение SUM() из другой таблицы в SQL
customers:
customer_id, customer_name
orders:
order_id, customer_id
orderline:
order_id, item_id, order_qty
items:
item_id, unit_price
Мне нужно вернуться customer_name, а также общий доход от этого клиента (рассчитывается как ITEM_PRICE * order_qty * 2).
Вот что я написал:
SELECT customers.customer_name, sum(revenue)
FROM SELECT orderline.order_qty * items.unit_value * 2 AS revenue
FROM orderline
INNER JOIN orders
ON orderline.order_id = orders.order_id
INNER JOIN customers
ON revenue.customer_id = customers.customer_id;
Это бросает синтаксическую ошибку, и я не совсем уверен, как поступить.
Это только один пример такого типа проблем, который мне нужно разработать, поэтому более обобщенные ответы были бы полезными.
Заранее благодарен!
EDIT:
С помощью ответов я заканчивал с этим кодом, который просто получает общий доход и ставит его рядом с первым человеком в имени децибел. Что я здесь не так понял?
SELECT customers.customer_name, sum(revenue)
FROM(SELECT orderline.order_qty * items.unit_price * 2 AS revenue, orders.customer_id AS CustomerID
FROM(orderline
INNER JOIN orders
ON orderline.order_id = orders.order_id
INNER JOIN items
ON orderline.item_id = items.item_id)) CustomerOrders
INNER JOIN customers
ON CustomerOrders.CustomerID = customers.customer_id;
так что это mysql или sql-сервер? не то, что это имеет значение, так как этот материал довольно стандартный везде. но не помещайте свои вопросы с каждым db под солнцем - только тот, который вы на самом деле используете. И что конкретно представляет собой сообщение об ошибке? –
Вам нужна группа. Я также удаляю посторонние теги базы данных. –
Я предполагаю, что это недостаток псевдонима в подзапросе. subqeries нужен псевдоним, даже если он никогда не используется. 'select * from (select ...) as subselect' –