Select Books.Category, Books.Retail,
Round(Orderitems.Quantity * (Books.Retail - Books.Cost),0) AS Category_Profit
From Books
INNER JOIN Orderitems
ON BOOKS.Retail=ORDERITEMS.Paideach
Group by Books.Category, Books.Retail
Что я пытаюсь сделать, это показать категорию и общую сумму прибыли для каждой категории. Есть две таблицы, участвующиеГруппа По выражению запроса
Books Table = Category & Retail & Cost
Orderitems Table= Quantity & Paid each
Так, например, категория
Sports = Football, Basketball
Food = Chicken, Beef
Результат покажет розничные цены на Football + Баскетбол в одной категории, а в другой строке он будет показывать Цыпленок + говядина как один
Отношение между двумя таблицами заключается в том, что розничная = платная каждая Также пытается округлить значение Category_Profit до ближайшего полного значения.
Я получаю ошибку ORA-00979: Не GROUP BY выражение в строке 2
Я не понимаю, все, что вы описываете, но это звучит, как вы просто забыли использовать 'функцию sum'. (например: 'sum (...) as category_profit') – sstan
, так что в основном на данный момент отображается вывод (Категория, розничная торговля, категория_profit) --- (Спорт, 50, 17) --- (Спорт, 29,8) Я хочу, чтобы «слить» эти две категории спорта и отобразить их как один, чтобы он показывал (Sports, 79, 25) – aofe1337
Это выглядит странно. 'retail' - это сумма, и вы присоединяетесь к таблицам на сумму? I. Все книги с 'retail' = 50 соединяются со всеми orderitems с' paideach' = 50? Это не может быть желательным, не так ли? Кроме того: если вам нужна одна строка результатов для каждой категории, то группа по категориям. Почему вы группируете по категориям + в розницу? Это не дает вам одной строки результатов для каждой категории, кроме одной для каждой категории. В то время как вы говорите, что хотите получить итоговые значения, так где же добавление в ваш запрос? Вы суммировали бы несколько записей с помощью 'SUM'. –