2013-10-12 3 views
0

identifierType, identifierValue 및 patient 테이블에 대한 외부 키가있는 식별자라는 테이블이 있습니다.자식 테이블에서 데이터를 가져 오는 SQL 서버 쿼리

한 환자는 여러 명의 식별자를 가질 수 있으므로 주어진 환자의 경우 식별자 테이블에 여러 행이 있습니다. 나는 주어진 기준을 충족이 테이블에서 patientforeign 키의 값을 끌어 할

,

하나의 예를 들어 내가 찾으려입니다 SQLSERVER

이 결과를 뽑아 SQL 문을 일 무슨

patientId where identifierType = 'PatientFirst" 
and identifierValue = 'sally' 
and identifierType= 'patientFirst' 
and identifier value = 'sally'. 

참고 문헌 : (http://sqlfiddle.com/#!3/33fc6/2/0)

+0

을 내가 알아 낸 것 같아요. 나는 여러 가지 기준에 따라 끌어낼 싶다. 내 생각에 이런 식으로 생각한다. 식별자에서 fk_patientId를 선택한다. IdentifierType = 'PatientLast'및 identifiervalue = 'doe' 및 fk_patientId in (식별자에서 fk_patientid를 선택한다. IdentifierType = 'PatientFirst'및 identifiervalue = 'sally') – user2875052

답변

0

없이,이 웹 사이트에 대한 약간 쉬운 것 같은데? : 당신이 환자 ID 당 하나의 행으로 특정 속성을 평평하게하려는 경우

SELECT fk_patientID 
FROM identifier 
WHERE IdentifierType = 'PatientFirst' 
AND IdentifierValue = 'sally' 
+0

감사합니다 노아하지만 여러 식별자를 기반으로 풀 필요가있었습니다. 내가 알아 냈어 위의 의견으로 내 솔루션을 게시 생각합니다. – user2875052

0

피벗 테이블뿐만 아니라 당신에게 도움이 될 수 있습니다

;with PatientFullName(fk_patientId, PatientLast, PatientFirst) 
as 
(
    select 
    fk_patientId 
    , pt.PatientLast 
    , pt.PatientFirst 
    from 
    Identifier 
    pivot 
    (
     MAX(identifierValue) 
     for identifierType in ([PatientLast], [PatientFirst]) 
    ) as pt 
) 

select 
    * 
from 
    PatientFullName pfn 
where 
    pfn.PatientLast = 'Doe' 
    and pfn.PatientFirst = 'Sally' 
관련 문제