Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

nil.prado

Select

Recommended Posts

Pessoal seguinte qdo rodo o select logo abaixo ele esta me trazendo os dados devidamente relacionados, ou melho dizendo quse todos os tados pois a casos em que os campos OPÇÃO2 e OPÇÃO3 estão nulos e ai ele não consegue fazer a comparação

"and ProcessoSeletivo.ProcessoSeletivo2008.OpcaoCurso2 = B.Codigo

and ProcessoSeletivo.ProcessoSeletivo2008.OpcaoCurso3 = C.Codigo"

e consequente mente não me traz os valores...mas quero que mesmo que os campos OPÇÃO2 e OPÇÃO3 sejam nulos os mesmo sejam apresentados...

 

Segue abaixo o select

 

SELECT     FichaUID,
           CodInscricao,
           NomeCandidato,
           DataNasc,
           RG,
           CPF,
           Sexo,
           TelContato,
           TelCelular,
           Endereco,
           NumeroCasa,
           BlocoApto,
           Bairro,
           CEP,
           Cidade,
           Estado,
           Email,
           OpcaoCurso1,
           a.NomeCurso,
           a.Periodo,
           OpcaoCurso2,
           b.NomeCurso,
           b.Periodo,
           OpcaoCurso3,
           c.NomeCurso,
           c.Periodo,
           Pago, DataCadastro, CodInscricao_OLD, NrNossNr, Sala, Carteira
FROM       ProcessoSeletivo.ProcessoSeletivo2008,
           ProcessoSeletivo.Cursos A,
           ProcessoSeletivo.Cursos b,
           ProcessoSeletivo.Cursos c
WHERE ProcessoSeletivo.ProcessoSeletivo2008.OpcaoCurso1 = A.Codigo
AND   ProcessoSeletivo.ProcessoSeletivo2008.OpcaoCurso2 = B.Codigo
AND   ProcessoSeletivo.ProcessoSeletivo2008.OpcaoCurso3 = C.Codigo
AND   ProcessoSeletivo.ProcessoSeletivo2008.Pago = '1'
ORDER BY 3

Compartilhar este post


Link para o post
Compartilhar em outros sites

uma opção pra resolver isso seria usar a função IS [NOT] NULL em conjunto com o operador OR, ficaria +ou- assim:

AND  ( ProcessoSeletivo.ProcessoSeletivo2008.OpcaoCurso2 = B.Codigo OR ProcessoSeletivo.ProcessoSeletivo2008.OpcaoCurso2 IS NULL )
AND  ( ProcessoSeletivo.ProcessoSeletivo2008.OpcaoCurso3 = C.Codigo OR ProcessoSeletivo.ProcessoSeletivo2008.OpcaoCurso3 IS NULL )

 

t+

http://forum.imasters.com.br/public/style_emoticons/default/natal_biggrin.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fera...fiz da maneira que você indicou mas ai o mesmo registro se repetiu várias vezes...... http://forum.imasters.com.br/public/style_emoticons/default/natal_ohmy.gif

ae tiozinho, utilize a função DISTINCT para remover as repetições

 

t++

http://forum.imasters.com.br/public/style_emoticons/default/natal_smile.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

como diria o Charlie Brown: "Mas que Puxa... !"

 

outra sugestão, essa mais elegante ou seria menos pog..., tenta usar o comando ISNULL e substituir os valores nulos por vazio

AND  ( ISNULL(ProcessoSeletivo.ProcessoSeletivo2008.OpcaoCurso2, '') = ISNULL(B.Codigo, '') )
AND  ( ISNULL(ProcessoSeletivo.ProcessoSeletivo2008.OpcaoCurso3, '') = ISNULL(C.Codigo, '') )

 

boa sorte,

http://forum.imasters.com.br/public/style_emoticons/default/natal_wink.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para seu conhecimento

Amigo agradeço sua força...mas veja como o programador daqui resolveu o caso.....

SELECT   FichaUID, CodInscricao, NomeCandidato, DataNasc, RG, CPF, Sexo, TelContato, TelCelular, Endereco, NumeroCasa, BlocoApto, Bairro, CEP, Cidade, 
                                          Estado, Email, OpcaoCurso1, OpcaoCurso2, OpcaoCurso3, Questao01, Questao02, Questao03, Questao04, Questao05, Questao06, Questao07, 
                                          Questao08, Questao09, Questao10, Questao11, Questao12, Questao13, Questao14, Questao15, Questao16, Questao17, Questao18, Questao19, 
                                          Questao20, Questao21, Questao22, Questao23, Pago, DataCadastro, CodInscricao_OLD, NrNossNr, Sala,
SUBSTRING(NomeCandidato, 1, 1) AS PriLetra,
 Carteira,

                                          (SELECT (ProcessoSeletivo.Cursos.Codigo + ' - ' 
                                                          + ProcessoSeletivo.Cursos.NomeCurso + ' - '
                                                          + ProcessoSeletivo.Cursos.Periodo) 
                                                          FROM ProcessoSeletivo.Cursos 
                                                          WHERE Cursos.Codigo = OpcaoCurso1) AS Curso1,

SUBSTRING(NomeCandidato, 1, 1) AS PriLetra,
                                          (SELECT (ProcessoSeletivo.Cursos.Codigo + ' - ' 
                                                          + ProcessoSeletivo.Cursos.NomeCurso + ' - '
                                                          + ProcessoSeletivo.Cursos.Periodo)
                                                          FROM ProcessoSeletivo.Cursos 
                                                          WHERE Cursos.Codigo = OpcaoCurso2)  AS        Curso2,

SUBSTRING(NomeCandidato, 1, 1) AS PriLetra,
                                          (SELECT (ProcessoSeletivo.Cursos.Codigo + ' - ' 
                                                          + ProcessoSeletivo.Cursos.NomeCurso + ' - '
                                                          + ProcessoSeletivo.Cursos.Periodo) 
                                                          FROM ProcessoSeletivo.Cursos 
                                                          WHERE Cursos.Codigo = OpcaoCurso3) AS Curso3

                                                

FROM             ProcessoSeletivo.vwInscritosConfirmados

Compartilhar este post


Link para o post
Compartilhar em outros sites

ok, com a base na mão fica muito mais facil, você não precisa ficar imaginando, pode fazer diversos testes reais....

só um detalhe: verifique a performance, pois em alguns casos sub-select pode ter perdas, as vezes é muito pouca coisa

 

legal ter postado o desfecho do caso, muitos não fazem isso, e pode vir a ajudar outras pessoas

 

 

abs

t+

http://forum.imasters.com.br/public/style_emoticons/default/natal_happy.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.