[firebase-br] Case when

W O sistemas2000profesional em gmail.com
Qui Dez 19 23:24:22 -03 2013


Y en tu cláusula WHERE escribir NUM_PROTOC = NUM_PROTOC no te funcionará
porque siempre y en todos los casos NUM_PROTOC será igual a NUM_PROTOC.

Saludos.

Walter.



2013/12/19 W O <sistemas2000profesional em gmail.com>

> Es que estás usando NOM_CLIENT en tu condición y en tu SELECT, utiliza
> otra columna para hacer la comparación. ¿No tienes algún identificador?
>
> ¿Cuál es el error?
>
> Saludos.
>
> Walter.
>
>
>
>
>
> 2013/12/19 Carlos Midia <carlosmidia2013 em gmail.com>
>
>> 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
>> >
>> ______________________________________________
>> 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