2014-12-03 5 views
0

SQL 크로스 탭 정보와 예제를 검색했지만 거의 모두 숫자 데이터를 기반으로 CROSSTABS/PIVOTS를 수행하고 있으며 데이터는 숫자가 아닙니다. 나는 MS SQL 서버를 사용하고SQL CrossTab 쿼리 - 숫자가 아닌 데이터

나는 하나의 테이블에 다음 데이터가 :이하고있다

DEVICE RELEASE-DATE VERSION  BUILD-DATE TYPE 
------ ------------ -------  ---------- ---- 
ABC  10/01/2013  01A   11/03/2014 PROD 
DEF  06/19/2014  02G   08/07/2014 
GHI  12/11/2013  01F   01/03/2014 DEV 
JKL  10/01/2013  01A   06/25/2014 PROD 

:

DEVICE DATATYPE  DATA 
------ --------  ---- 
ABC  RELEASE-DATE 10/01/2013 
ABC  VERSION   01A 
ABC  BUILD-DATE  11/03/2014 
ABC  TYPE   PROD 
DEF  RELEASE-DATE 06/19/2014 
DEF  VERSION   02G 
DEF  BUILD-DATE  08/07/2014 
GHI  RELEASE-DATE 12/11/2013 
GHI  VERSION   01F 
GHI  BUILD-DATE  01/03/2014 
GHI  TYPE   DEV 
JKL  RELEASE-DATE 10/01/2013 
JKL  VERSION   01A 
JKL  BUILD-DATE  06/25/2014 
JKL  TYPE   PROD 

내 원하는 출력은 다음과 같은 같은 것에게 VLOOKUPS를 사용하여 Excel에서 수동으로 작업하지만 가능한 경우 SQL을 사용하여 솔루션을 원합니다.

아무도 도와 줄 수 있습니까? 미리 감사드립니다! 비 수치 데이터

답변

0

사용 MAX (또는 MIN) 컬럼에 로우 변환

SELECT * 
FROM MyTable 
PIVOT (MAX(Data) 
      FOR DataType IN ([RELEASE-DATE], [Version], [BUILD-DATE], [TYPE])) pvt 
+0

감사합니다. 나는 집계 함수로서 MIN이나 MAX를 사용하는 것을 결코 생각하지 못했습니다! – mconwell

0

사용 pivot.

SELECT DEVICE, [RELEASE-DATE],[VERSION],[BUILD-DATE],[TYPE] FROM Table1 
PIVOT 
(max(DATA) for DATATYPE in ([RELEASE-DATE],[VERSION],[BUILD-DATE],[TYPE]) 
)pvt 
+0

고맙습니다. – mconwell