이 테이블의 엔티티에서 52 주 분량의 데이터를 합산 한 쿼리를 작성하려고합니다. Summing Subquery
나는 다음과 같은 쿼리를 사용하여 CYSales에 대한 과거 52주을 얻는 방법을 알아 냈어. 결과 보고서에서 일년과 한주가 매개 변수가 될 것이므로 그 값은 임의적입니다. 이 예제에서는 현재 연도와 주 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]
메시지 : 메시지 8155, 수준 16, 상태 2, 줄 16 'b'의 열 1에 대해 열 이름이 지정되지 않았습니다. msg 207, 수준 16, 상태 1, 줄 28 'tot_sls_amt'열 이름이 잘못되었습니다. msg 207, 수준 16, 상태 1, 줄 7 'tot_sls_amt'열 이름이 잘못되었습니다. – d90
@NicholasJDininno fixed - 조인 하위 쿼리의 열 이름을 잊어 버렸습니다. – lookslikeanevo