Я пытаюсь создать запрос, который суммирует сумму продаж от 52 недель данных от сущностей в этой таблице.Подводящий подзапрос
Я понял, как получить последние 52 недели для CYSales используя следующий запрос. Год и неделя в конечном итоге будут параметрами в результирующем отчете, поэтому эти значения будут произвольными. Я использовал текущий год и неделю 40 только для этого примера.
SELECT [Group],[Owner],[SalesPersonNumber],SUM([tot_sls_amt]) AS CYSales
FROM TableA
WHERE ((Year = year(getdate()) AND Week <= 40) OR (Year = year(getdate()) - 1 AND Week > 40)) AND cmp_status = 'A'
Group BY [Group]
,[Owner]
,[SalesPersonNumber]
Это дает мне это
Я сейчас пытаюсь получить сумму PYSales в другой вычисляемый столбец, но когда я добавить свой подзапрос в я получаю сообщение об ошибке
Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression.
Как исправить следующий запрос, чтобы дать мне PYSales?
SELECT [Group]
,[Owner]
,[SalesPersonNumber]
,SUM([tot_sls_amt]) AS CYSales
,(SELECT SUM([tot_sls_amt])
FROM TableA
WHERE ((Year = year(getdate())-1 AND Week <= 40) OR (Year = year(getdate()) - 2 AND Week > 40)) AND cmp_status = 'A'
Group BY [Group] ,[Owner],[SalesPersonNumber]) AS PYSales
FROM TableA
WHERE ((Year = year(getdate()) AND Week <= 40) OR (Year = year(getdate()) - 1 AND Week > 40)) AND cmp_status = 'A'
Group BY [Group]
,[Owner]
,[SalesPersonNumber]
Я получаю: Msg 8155, уровень 16, состояние 2, строка 16 Для столбца 1 раздела 'b' не указано имя столбца. Msg 207, уровень 16, состояние 1, строка 28 Недопустимое имя столбца 'tot_sls_amt'. Msg 207, уровень 16, состояние 1, строка 7 Недопустимое имя столбца 'tot_sls_amt'. – d90
@NicholasJDininno fixed - забыли указать столбец в подзапросе соединения – lookslikeanevo