나는 이것을 지금 시험 할 수는 없지만, 나는 이것이 이처럼 작동한다고 생각한다.
SELECT fiscalYear, period, type, metricName, metricValue
FROM vw_ExecSummary
UNPIVOT (metricValue FOR metricName IN ([Net Revenue], [Total C.S. Salaries])) unpvt
같은 것을 보이는 테이블을 초래할한다 : 첫째, 당신은 UNPIVOT
모든 데이터에 필요한
fiscalYear period type metricName metricValue
===================================================================
15 1 'Actual' 'Net Revenue' 3676798.98999997
15 1 'Actual' 'Total C.S. Salaries' 1463044.72
15 1 'Plan' 'Net Revenue' 3503920.077405
...................... (remaining rows omitted)
을 우리는 정상적으로 PIVOT
행은 새를 얻을 수 열 (즉, 위해의 기능) :
이
SELECT fiscalYear, period, metricName,
[Actual] AS actualValue, [Plan] AS planValue, [PriorYear] AS priorYearValue
FROM <previous_data>
PIVOT (SUM(metricValue) FOR (type IN ([Actual], [Plan], [PriorYear]) pvt
합니다 (SUM(...)
가 실제로을하지 말아야 그래서 퍼팅
fiscalYear period metricName actualValue planValue priorYearValue
======================================================================================
15 1 'Net Revenue' 3676798.98999997 3503920.077405 40436344.4499999
...................................... (remaining rows omitted)
: 상정으로 다른 열은 고유 한 행을 포함하지만, 우리는 다음에 가깝다 뭔가를 양보해야한다 집계 함수)
를 ... 사용하는 데 필요하고, 여기 ything 함께 같을 것이다 :
SELECT fiscalYear, period, metricName,
[Actual] AS actualValue, [Plan] AS planValue, [PriorYear] AS priorYearValue
FROM (SELECT fiscalYear, period, type, metricName, metricValue
FROM vw_ExecSummary
UNPIVOT (metricValue FOR metricName IN ([Net Revenue], [Total C.S. Salaries])) unpvt) unpvt
PIVOT (SUM(metricValue) FOR type IN ([Actual], [Plan], [PriorYear])) AS pvt
SQL Fiddle Example
는 그래도 한 관심을 가지고 값 등 3676798.98999997
, 3503920.077405
처럼, 나를 생각하게하는 열입니다 부동 소수점 (즉, REAL
또는 FLOAT
), 그러나 값이 통화 사용에 대한 이름이 지정됩니다. 이 경우에 ... 은 인식 부동 소수점 값은 정확히 .1
과 같은 것을 저장할 수 없습니다 (즉, 값에 실제로 십센트를 추가 할 수 없습니다)? 그리고 값이 충분히 커지면 더 이상 1
을 추가 할 수 없습니까? 보통 화폐 가치를 다룰 때는 DECIMAL
또는 NUMERIC
과 같은 고정 소수점 유형을 기반으로하는 것을 사용해야합니다.
감사 솔루션에 대한 -에 자리! PIVOT 문에서 'type'단어가 올바르지 않기 전에 괄호를 사용했음을 알았습니다.나는 그것을 제거하고 PIVOT 명령문 끝에 닫는 괄호를 추가했다. 매력처럼 일 했어! – Jason
@ Jason - 아, 고마워. # corrected #. 이런 이유로 나는 그들을 먼저 시험하고 싶다. 그래서 두 개의 돈 열의 유형은 무엇입니까? –
나는 타입이 플로트 (지금 나의 랩탑 앞에 없다)라고 생각한다. – Jason