Access에서 크로스 탭 쿼리를 하위 쿼리로 사용할 수 없습니다. 우리가하려고하면
SELECT ...
FROM
(
TRANSFORM
우리는 "구문 오류 FROM 절"에서 얻을. 한 가지 해결 방법은 모든 집계를 수행하고, 파생 된 (계산 된) 값을 만들고, 함께 UNION 한 다음 "크로스 탭"을 작성하는 것입니다. 귀하의 경우 : 그 다음 당신이보고 도구는 계산 보고서 필드를 지원하는지 여부를 조사 할 수 있습니다 원하는대로 너무 심한 경우 내 샘플 데이터,
Category 2012 2013 Change%
--------- ---- ---- -----------------
Category1 123 345 1.80487804878049
Category2 234 456 0.948717948717949
를 반환
TRANSFORM Sum(ColValue) AS SumOfColValue
SELECT Category
FROM
(
SELECT Category, [Year] AS ColHead, Sum(Spending) AS ColValue
FROM Data
WHERE [Year] IN ("2012", "2013")
GROUP BY Category, [Year]
UNION ALL
SELECT
curr.Category,
"Change%" AS ColHead,
(curr.SumOfSpending/prev.SumOfSpending-1) AS ColValue
FROM
(
SELECT Category, [Year], Sum(Spending) AS SumOfSpending
FROM Data
WHERE [Year] IN ("2012", "2013")
GROUP BY Category, [Year]
) AS curr
INNER JOIN
(
SELECT Category, [Year], Sum(Spending) AS SumOfSpending
FROM Data
WHERE [Year] IN ("2012", "2013")
GROUP BY Category, [Year]
) AS prev
ON prev.Category = curr.Category
AND CLng(prev.[Year]) = (CLng(curr.[Year]) - 1)
)
GROUP BY Category
PIVOT ColHead
(예 : , Crystal Reports에서는 "수식 필드"라고합니다.)
감사합니다. 이것은 완벽하게 작동했습니다 :) 저는 포럼에 처음 왔으며 이것은 굉장한 시작이었습니다. – JRob