У меня есть таблица 'order', содержащая сводную информацию о заказе и таблицу 'orderItem' с каждым элементом заказа.SQL SUM Query возвращает повторяющиеся строки в результате
Моя проблема: при выборе суммы столбца «orderQTY» из таблицы «Заказ» я получаю неверную сумму, если я присоединяюсь к таблице orderItem.
Первый запрос ниже дает мне правильную сумму. Однако, как только я добавляю соединение к orderItem, результат суммы неправильно дублирует столбец «orderqty» для каждой записи orderitem.
nb: Я знаю, что нижеследующее не использует соединение и не является необходимым. Я удалил предложения, ссылающиеся на объединенную таблицу, чтобы упростить вопрос .
--RETURNS Correct value
select sum(o.orderqty)
from [order] o
--RETURNS the sum containing duplicates of o.orderqty
select sum(o.orderqty)
from [order] o
join OrderItem oi on o.Id = oi.OrderId
- добавление уточнение: ----
Я хотел суммировать столбец «OrderQty» из таблицы «порядка» во время присоединения к OrderItem например:
Там будет несколько ТоварыЗаказа для каждого ордера, но я хочу, чтобы, очевидно, только счет countqty из таблицы заказов один раз за заказ.
select sum(o.ordertotal)
from [order] o with(NOLOCK)
join OrderItem oi on o.Id = oi.OrderId
where oi.mycolumn = 1
или же мне нужно сделать что-то вроде:
select sum(o.ordertotal)
from [order] o with(NOLOCK)
where o.id in (select orderid from orderitem where x = y)
да, это ожидаемое поведение, используйте 1-ый запрос –
, что вы пытаетесь сделать? получать информацию из строки заказа и таблицы заказов в одном запросе? – Beth
Что использует orderqty для запроса? Какие строки вы запрашиваете с помощью запроса? Можете ли вы просто использовать «o.orderqty»? Если вы не знаете, как написать запрос для чего хотите, тогда вам нужно описать, что вы хотите на английском, и/или привести примеры. – philipxy