В MS Sql.Подзапрос возвратил более 1 значения в MS SQL
SELECT a.SellerID,
SUM(TransactionFee) as TransactionFees,
SUM(Quantity*a.PriceItem) as TransactionValue,
COUNT(*) as OrdersWithTransactionFees,
SUM(Quantity) as Qty,
(SELECT SUM(a.Quantity*a.PriceItem) as WholeMonthTransactionValue
from BuyProductDetails where SellerID = a.SellerID) as aa
FROM BuyProductDetails as a
WHERE MONTH(a.OrderDate)=3
AND YEAR(a.OrderDate)=2013
AND TransactionFee IS NOT NULL
GROUP BY a.SellerID
У меня есть вышеуказанный запрос ... он, похоже, не может работать.
В принципе, у меня есть эта таблица BuyProductDetails, который хранит все заказы от разных Продавцов.
Некоторые заказы будут иметь TransactionFee.
Теперь мне нужно рассчитать общий объем продаж этих заказов с помощью TransactionFee и общий объем продаж для этих продавцов, включая эти заказы без TransactionFee.
Результирующий набор должен иметь следующие поля:
- SellerID
- Сумма сбора транзакций
- Сумма общего объема продаж
- Количество заказов с оплатой стоимости сделки
- Кол-во упорядоченный
- Всего продаж этого продавца
Но когда я запускаю этот SQL, он возвращает следующую ошибку:
Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression.
Любая помощь очень ценится. Спасибо.
У меня есть решение. Это был ответ от кого-то, но я не вижу его ответа сейчас на этой странице. Интересно, почему? В принципе, просто измените подзапрос на следующее: SELECT SUM (b.Quantity * b.PriceItem) как WholeMonthTransactionValue из BuyProductDetails b, где b.SellerID = a.SellerID –