none
Consulta con vario campos llave RRS feed

  • Pregunta

  • Hola a todos,
    Estoy tratando de hacer una consulta de dos tablas:

    La tabla registrocie10 es esta:
    Ide_RegistroCIE10 int
    Ide_RegistroClinico int
    Ide_TipoDiagnosticoCIE smallint
    Ide_Pagina smallint
    Cod_CIE10_1 varchar(8)
    Cod_CIE10_2 varchar(8)
    Cod_CIE10_3 varchar(8)
    Cod_CIE10_4 varchar(8)

    y la tabla cie10 es esta:

    Cod_CIE10 varchar(8)
    Des_CIE10 varchar(200)
    Ide_Sexo char(1)
    Num_Inferior int
    Num_Superior int
    Dia_IncapacidadMinima int
    Dia_IncapacidadMaxima int
     
    En la tabla de registro cie10 tengo estos campos Cod_CIE10_1 varchar(8), Cod_CIE10_2 varchar(8), Cod_CIE10_3 varchar(8), Cod_CIE10_4 varchar(8), y lo que quiero es traer en una consulta todos los datos de la tabla registrocie10 y ademas la descripcion de estos cuatro campos que se relacionan con el campo Cod_CIE10 varchar(8) de la tabla cie10. Mejor dicho cada uno de estos cuatro codigos tienen una descripcion en la tabla cie10, necesito cada una de esas descripciones en una consulta que me traiga todo. espero haberme echo entender.

    hasta ahora he hecho este codigo:

    SELECT   sort_cie10.des_cie10,  Ide_RegistroClinico, Ide_TipoDiagnosticoCIE, Ide_Pagina, Cod_CIE10_1, Cod_CIE10_2, Cod_CIE10_3, Cod_CIE10_4
    FROM         SORT_RegistroCIE10 left join sort_cie10
    			on  SORT_RegistroCIE10.Cod_CIE10_1 = sort_cie10.Cod_cie10
    WHERE     (Ide_RegistroClinico = 422) AND (Ide_Pagina = 21)
    con esta consulta puedo obtener una descripcion, pero no se como obtener las otras tres.


    Muchisimas gracias por su ayuda.

    jin
    jueves, 20 de agosto de 2009 15:53

Respuestas

  • Hola.

    Debes referenciar la tabla de descripciones varias veces, uniendo cada vez por uno de los campos. Sería más o menos así:
    SELECT   sort_cie10.des_cie10,  Ide_RegistroClinico, Ide_TipoDiagnosticoCIE, Ide_Pagina, Cod_CIE10_1, Cod_CIE10_2, Cod_CIE10_3, Cod_CIE10_4, 
    sort_cie10.Des_CIE10 as DES_CIE10_1, 
    cie10_2.Des_CIE10 as DES_CIE10_2, 
    cie10_3.Des_CIE10 as DES_CIE10_3, 
    cie10_4.Des_CIE10 as DES_CIE10_4 
    FROM    SORT_RegistroCIE10 left join sort_cie10
        on  SORT_RegistroCIE10.Cod_CIE10_1 = sort_cie10.Cod_cie10 left join sort_cie10 cie10_2
        on  SORT_RegistroCIE10.Cod_CIE10_2 = cie10_2.Cod_cie10 left join sort_cie10 cie10_3
        on  SORT_RegistroCIE10.Cod_CIE10_3 = cie10_3.Cod_cie10 left join sort_cie10 left join sort_cie10 cie10_4
        on  SORT_RegistroCIE10.Cod_CIE10_4 = cie10_4.Cod_cie10 left join sort_cie10
    
    WHERE     (Ide_RegistroClinico = 422) AND (Ide_Pagina = 21)
    Si te quedan dudas, nos dices.

    Alberto López Grande.
    jueves, 20 de agosto de 2009 16:38
    Moderador

Todas las respuestas

  • Hola.

    Debes referenciar la tabla de descripciones varias veces, uniendo cada vez por uno de los campos. Sería más o menos así:
    SELECT   sort_cie10.des_cie10,  Ide_RegistroClinico, Ide_TipoDiagnosticoCIE, Ide_Pagina, Cod_CIE10_1, Cod_CIE10_2, Cod_CIE10_3, Cod_CIE10_4, 
    sort_cie10.Des_CIE10 as DES_CIE10_1, 
    cie10_2.Des_CIE10 as DES_CIE10_2, 
    cie10_3.Des_CIE10 as DES_CIE10_3, 
    cie10_4.Des_CIE10 as DES_CIE10_4 
    FROM    SORT_RegistroCIE10 left join sort_cie10
        on  SORT_RegistroCIE10.Cod_CIE10_1 = sort_cie10.Cod_cie10 left join sort_cie10 cie10_2
        on  SORT_RegistroCIE10.Cod_CIE10_2 = cie10_2.Cod_cie10 left join sort_cie10 cie10_3
        on  SORT_RegistroCIE10.Cod_CIE10_3 = cie10_3.Cod_cie10 left join sort_cie10 left join sort_cie10 cie10_4
        on  SORT_RegistroCIE10.Cod_CIE10_4 = cie10_4.Cod_cie10 left join sort_cie10
    
    WHERE     (Ide_RegistroClinico = 422) AND (Ide_Pagina = 21)
    Si te quedan dudas, nos dices.

    Alberto López Grande.
    jueves, 20 de agosto de 2009 16:38
    Moderador
  • Hola Alberto muchisimas gracias por tu respuesta me ha servido mucho, tambien te comento que tambien estoy pensando en implementar una funcion para el mismo fin ya que puedo enviarle a la funcion el codigocie10 y la funcion me retornaria la descripcion.

    Nuevamente muchas gracias.


    jin
    jueves, 20 de agosto de 2009 17:14