2017-05-17 1 views
0

현재 두 개의 테이블을 함께 사용하여 쿼리하고 싶습니다. 하나는 사용자가 볼 수있는 파일 번호이며 fileID로 두 번째 테이블에 조인됩니다.행을 하나로 결합하는 SQL

두 번째 테이블은 3 개의 열로 구성됩니다. fileID는 해당 필드에있는 데이터와 함께 데이터가 들어갈 필드에 대해 12 개의 옵션 중 하나를 나타내는 ID입니다. 두 번째 테이블에는 각 필드 유형에 대해 12 번씩 표시된 각 fileID가 있습니다. 최종 쿼리를 모두 한 행으로 반환하고 싶습니다. 파일 번호, 각 12 개 필드의 데이터

현재 쿼리 할 때 파일 번호 당 12 개의 다른 행을 반환합니다. 거기에 모든 관련 정보와 함께 1 행을 얻을 수있는 방법이 있습니까?

현재 검색어 : 내가 중복 행을봤을 때 난 그냥 4 테스트되면서

SELECT DISTINCT t1.FileNumber 
    , CASE WHEN t2.typeID = 1 THEN t2.value END 
    , CASE WHEN t2.typeID = 2 THEN t2.value END 
    , CASE WHEN t2.typeID = 3 THEN t2.value END 
    , CASE WHEN t2.typeID = 4 THEN t2.value END 

FROM t1 
LEFT JOIN t2 ON t1.fileID = t2.fileID 

ORDER BY t1.FileNumber 

나는 모든 (12) 데이터 형식을 통해 가지 않았다.

+0

예. 현재 검색어가 무엇입니까? 현재 결과는 무엇입니까? 원하는 결과는 무엇입니까? http://stackoverflow.com/help/how-to-ask를 확인하십시오. – Degan

답변

0

사용 집계 :

SELECT t1.FileNumber, 
     MAX(CASE WHEN t2.typeID = 1 THEN t2.value END), 
     MAX(CASE WHEN t2.typeID = 2 THEN t2.value END), 
     MAX(CASE WHEN t2.typeID = 3 THEN t2.value END), 
     MAX(CASE WHEN t2.typeID = 4 THEN t2.value END) 
FROM t1 LEFT JOIN 
    t2 
    ON t1.fileID = t2.fileID 
GROUP BY t1.FileNumber 
ORDER BY t1.FileNumber; 
관련 문제