2017-01-10 1 views
3

가입을 위해 필요한 두 개의 테이블이 있습니다. 하나, 필요한 헤더가 실제로 필드에 있습니다. 많이 놀고 난 후에 나는 이것을 아래에서 이해했다. 나는 그것이 정말로 달리고 있었기 때문에 정말로 흥분했다. 그러나 그 다음 나의 당황에 나는 그것이 표 [GM]. [dbo]. [PKT]로부터의 헤더를 단지다는 것을 깨달았다. 테이블 a의 모든 필드가 누락되었습니다 ([GM]. [dbo]. [CMPLX]). 테이블의 필드를 어떻게 표시합니까? 또한 필자는 테이블 p의 특정 필드 만 표시하려고했지만 피벗 섹션에서 Select * From을 선택하면 작동합니다.피봇 테이블에 가입하십시오.

With GM1 AS (
Select TOP 10 a.[CMPLX_NBR], 
    a.[SYSTEM_ID], 
    a.[PKT_TYP_CD], 
    a.[CATEG_CD], 
    a.[SUPPLR_CD], 
    a.[TRANS_CD], 
    a.[PRIORITY_INT], 
    a.[PRIORITY_INT_EXPR_DT], 
    a.[RQSTR_NBR], 
    a.[TMSTMP], 
p.[PKT_DTTM] 
FROM [GM].[dbo].[CMPLX] as a 
INNER JOIN [GM].[dbo].[PKT] as p 
ON a.[CMPLX_NBR] = p.[CMPLX_NBR] 
) 

SELECT * 
FROM [GM].[dbo].[PKT] 
PIVOT (
    sum([PKT_ATTR_CNT]) 
     For [PKT_ATTR_CD] 
     IN (not_sent, not_sent, other, appl, avg, max, min, sum, sent, why) 
     )AS GM1Pivot; 
+2

아마도 CTE가 아닌 테이블에서 선택하기 때문입니까? 'SELECT * FROM GM1 PIVOT ...'대신 'SELECT * FROM [GM]. [dbo]. [PKT] PIVOT ...'? – ZLK

+0

정말 고마워요 !! 나는 그것을 놓쳤다는 것을 믿을 수 없다. –

답변

0

PIVOT 연산자에서 집계 및 확산 요소 만 표시하고 그룹 요소는 표시하지 않습니다. T-SQL은 그룹화 요소를 제거하여 식별합니다. 이것이 PIVOT을 사용하기 전에 CTE (3 요소 (열) 만)를 사용하는 이유입니다.

  1. 그룹화 컬럼 ([CMPLX_NBR])

  2. 확산 컬럼 ([PKT_TYP_CD를])

  3. 총 열 ([PKT_ATTR_CNT :
    CTE가 단지 이러한 요소 있어야 ]).

관련 문제