Ситуация здесь такова, что у меня есть очень сложный запрос, который генерирует мне таблицу, содержащую всего 2 столбца, один столбец - это столбец общей суммы продуктов, проданных определенным сотрудником, а другой столбец - идентификатор сотрудника, я пытаюсь использовать эту таблицу для обновления столбца N_products сотрудников (количество проданных продуктов). Уже работающий запрос:
SELECT
SUM(QUANTITY) AS productosven,
EmployeeID
FROM
(SELECT
Orders.OrderID, Orders.EmployeeID, [Order Details].Quantity
FROM
Orders
INNER JOIN
DimEmployee ON Orders.EmployeeID = DimEmployee.EmployeeID
INNER JOIN
[Order Details] ON [Order Details].OrderID = Orders.OrderID)
GROUP BY
EmployeeId) x
Таблица, которую он генерирует:
Запрос, который я пытаюсь реализовать:
UPDATE DimEmployee
SET N_Products = (SELECT SUM(QUANTITY) AS productosven
FROM
(SELECT
Orders.OrderID, Orders.EmployeeID, [Order Details].Quantity
FROM
Orders
INNER JOIN
DimEmployee ON Orders.EmployeeID = DimEmployee.EmployeeID
INNER JOIN
[Order Details] ON [Order Details].OrderID = Orders.OrderID) AS X
GROUP BY EmployeeId)
WHERE
EmployeeID = (SELECT EmployeeID
FROM
(SELECT
Orders.OrderID, Orders.EmployeeID, [Order Details].Quantity
FROM
Orders
INNER JOIN
DimEmployee ON Orders.EmployeeID = DimEmployee.EmployeeID
INNER JOIN
[Order Details] ON [Order Details].OrderID = Orders.OrderID) AS X
GROUP BY EmployeeId)
По сути, я пытаюсь использовать мой запрос SELECT
дважды, первый раз - получить продукты и сохранить их в N_products
, а второй раз сравнить с идентификатором из того же запроса, но SQL Server генерирует ошибку:
мужские. 512, уровень 16, состояние 1, строка 1
Подзапрос возвратил более одного значения, что неверно, когда он идет после = ,! =, <, <=,>,> = Или когда оно используется в качестве выражения.