[firebase-br] Case when

Carlos Midia carlosmidia2013 em gmail.com
Qui Dez 19 22:42:36 -03 2013


Boa noite, tentei da forma abaixo porem não deu também.

SELECT
   Num_Protoc,
   Dat_Saida,
   Dat_Presc,
   Num_Rec,
   Sta_Saida,
   CASE
      WHEN Nom_Client <>'' THEN (SELECT Nom_Client FROM SAIDA WHERE
Num_Protoc = Num_Protoc)
      WHEN Nom_pacien <>'' THEN (SELECT Nom_pacien FROM SAIDA WHERE
Num_Protoc = Num_Protoc)
   END AS NOMBRE
FROM
   SAIDA
WHERE
   Num_Protoc IN (33,34)


Em 19 de dezembro de 2013 21:21, W O
<sistemas2000profesional em gmail.com>escreveu:

> Cada uno de los SELECTs que se encuentran dentro del SELECT principal
> solamente puede devolver UNA FILA. Si devuelven más de una fila entonces
> verás el mensaje: "multiple rows in singleton select".
>
> Y es lógico, porque lo que tú estás queriendo mostrar es el nombre de UN
> PACIENTE y si el SELECT te devuelve el nombre de 500 pacientes ¿cuál de
> ellos es el correcto?
>
> Por lo tanto, en tu SELECT interno debes poner una cláusula WHERE para que
> el resultado se limite a *una sola fila*.
>
> Puedes ver un ejemplo aquí:
>
>
> http://firebird21.wordpress.com/2013/12/19/consultas-con-columnas-condicionales/
>
> Saludos.
>
> Walter.
>
>
>
> 2013/12/19 Carlos Midia <carlosmidia2013 em gmail.com>
>
> > Boa noite, desde já agradeço pela ajuda.
> > montei o sql porem dar a mensagem:
> > multiple rows in singleton select
> >
> > Select Num_Protoc,
> >        Dat_Saida,
> >        Dat_Presc,
> >        Num_Rec,
> >        Sta_Saida,
> >        Case when  (trim(Nom_Client) <> ' ')  then trim(Nom_Client)
> >        else
> >       ( select Nom_pacien as descricao from saida) end as descricao
> >       from saida
> >
> > no select só esta envolvida a tabela saida.
> >
> >
> > Em 19 de dezembro de 2013 20:51, Fernando Correa <fjcnando em ig.com.br
> > >escreveu:
> >
> > > Select Num_Protoc,
> > >           Dat_Saida,
> > >           Dat_Presc,
> > >           Num_Rec,
> > >          Sta_Saida,
> > >         Case when  (trim(Nom_Client) <> ' ')  then trim(Nom_Client)
> > >
> > > else
> > >                 ( select Nom_pacien as descricao from saida
> > >                   where saida. ...... ) end as descricao
> > >
> > > ... aqui coloca-se o from
> > >
> > >
> > > agora voce precisa escrever os from´s corretos....
> > >
> > >
> > >
> > > Espero ajudar
> > >
> > >
> > > Atenciosamente
> > > Fernando Correa
> > >
> > >
> > > Em 19 de dezembro de 2013 21:00, Carlos Midia
> > > <carlosmidia2013 em gmail.com>escreveu:
> > >
> > > > Boa noite a todos, preciso de um select ao qual a pesquisa no campo
> > > > descricao retorne Nom_Cliente ou Nom_Pacient.
> > > >
> > > > na tabela de Saida os registros estão preenchidos o campo Nom_Client
> ou
> > > > Nom_Paciente.
> > > >
> > > > Select Num_Protoc, Dat_Saida, Dat_Presc, Num_Rec,  Sta_Saida,
> > > > Descricao Case when  Nom_Client <> ' '  then ( select Nom_Client as
> > > > des_Forn from saida) else
> > > > ( select Nom_pacien as descricao from saida) end as descricao
> > > >
> > > > fiz dessa forma acima mais não deu certo.
> > > >
> > > > se o campo Nom_Cliente for diferente de vazio então o campo descricao
> > > sera
> > > > igual ao Nom_Cliente e se for igual a vazio o campo descricao sera
> > igual
> > > ao
> > > > Nom_Paciente.
> > > >
> > > > desde já agradeço.
> > > > ______________________________________________
> > > > FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> > > > Para saber como gerenciar/excluir seu cadastro na lista, use:
> > > > http://www.firebase.com.br/fb/artigo.php?id=1107
> > > > Para consultar mensagens antigas: http://firebase.com.br/pesquisa
> > > >
> > >
> > >
> > >
> > > --
> > > Atenciosamente
> > > Fernando Correa
> > > ______________________________________________
> > > FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> > > Para saber como gerenciar/excluir seu cadastro na lista, use:
> > > http://www.firebase.com.br/fb/artigo.php?id=1107
> > > Para consultar mensagens antigas: http://firebase.com.br/pesquisa
> > >
> > ______________________________________________
> > FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> > Para saber como gerenciar/excluir seu cadastro na lista, use:
> > http://www.firebase.com.br/fb/artigo.php?id=1107
> > Para consultar mensagens antigas: http://firebase.com.br/pesquisa
> >
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>



Mais detalhes sobre a lista de discussão lista