Dúvida sobre SQL no Firebird 1.5
Bom dia, colegas.
Se eu crio um SELECT que contém INNER JOINs que podem ter campos nulos(e consequentemente não atender à cláusula), no final, obterei um resultado nulo até mesmo para os outros campos que contèm dados e foram selecionados? Se sim, o que devo fazer para que a instrução ignore o Inner Join e traga os outros dados?
Deixa eu explicar melhor:
Dentro de uma SP,
FOR SELECT RI.COD_ITMH,SA.DES_SADT,PA.DAT_INICIO_PLANO,PA.NUM_DIA_PRE_EXIST,PA.NUM_DIA _INTERN_UE,PA.NUM_DIA_INTERN_APTO,
PA.NUM_DIA_INTERN_PS,PA.NUM_DIA_INTERN_AMBU,PA.NUM_DIA_INTERN_SIMP FROM TBCIME_PACIENTE PA
INNER JOIN TBCIME_REGRA_PACI RE ON RE.cod_cart_paci = PA.COD_CART_PACI
INNER JOIN TBCIME_REGRA_ITEM_PACI RI ON RI.COD_REGR = RE.COD_REGR
AND RI.COD_CART_PACI = RE.COD_CART_PACI
INNER JOIN tbsadt SA ON SA.cod_itmh = RI.cod_itmh
WHERE PA.COD_EMPR = :cod_empr
INTO :cod_itmh, :des_sadt,AT_INI,:num_pre, :num_u_e, :num_apto, :num_ps, :num_ambu, :num_simp
RI.COD_REGR pode ser nulo.
[color=green:7484255fa7]Movido de Delphi para Interbase/Firebird[/color:7484255fa7]
Se eu crio um SELECT que contém INNER JOINs que podem ter campos nulos(e consequentemente não atender à cláusula), no final, obterei um resultado nulo até mesmo para os outros campos que contèm dados e foram selecionados? Se sim, o que devo fazer para que a instrução ignore o Inner Join e traga os outros dados?
Deixa eu explicar melhor:
Dentro de uma SP,
FOR SELECT RI.COD_ITMH,SA.DES_SADT,PA.DAT_INICIO_PLANO,PA.NUM_DIA_PRE_EXIST,PA.NUM_DIA _INTERN_UE,PA.NUM_DIA_INTERN_APTO,
PA.NUM_DIA_INTERN_PS,PA.NUM_DIA_INTERN_AMBU,PA.NUM_DIA_INTERN_SIMP FROM TBCIME_PACIENTE PA
INNER JOIN TBCIME_REGRA_PACI RE ON RE.cod_cart_paci = PA.COD_CART_PACI
INNER JOIN TBCIME_REGRA_ITEM_PACI RI ON RI.COD_REGR = RE.COD_REGR
AND RI.COD_CART_PACI = RE.COD_CART_PACI
INNER JOIN tbsadt SA ON SA.cod_itmh = RI.cod_itmh
WHERE PA.COD_EMPR = :cod_empr
INTO :cod_itmh, :des_sadt,AT_INI,:num_pre, :num_u_e, :num_apto, :num_ps, :num_ambu, :num_simp
RI.COD_REGR pode ser nulo.
[color=green:7484255fa7]Movido de Delphi para Interbase/Firebird[/color:7484255fa7]
Thelinuxlich
Curtidas 0
Respostas
Gandalf.nho
25/01/2006
Nesses casos vc deverá usar LEFT JOIN ou RIGHT JOIN em vez de INNER JOIN
GOSTEI 0