Re: [delphi-br] Case When no Delphi
Qual o BD? Qual a versão do BD? Parece que o problema está na falta de plic´s antes da descrição. Experimente assim: (...) sql.add(' when 1 then ' + + 'CRIANÇA' + ); sql.add(' when 2 then ' + + 'ADULTO' + ); sql.add(' when 3 then ' + + 'IDOSO' + ); (...) Espero ter ajudado. ca_programador007 [EMAIL PROTECTED] escreveu: Olá amigos da lista Preciso de uma ajuda meio urgente.. Não sei o que eu estou fazendo de errado. Preciso utilizar o case when na minha consulta pelo seguinte: Quando vier no conteúdo do campo (varchar) o número 1, então que me retorna a palavra CRIANÇA, quando vier o número 2, que me retorna a palavra ADULTO e quando vier o número 3, que me retorna a palavra IDOSO. sql.add('select flag AS idade'); sql.add('case vci.flag'); sql.add('when 1 then CRIANÇA'); sql.add('when 2 then ADULTO'); sql.add('when 3 then IDOSO end as idade'); sql.add('from'); sql.add('tabela'); O que tem de errado aqui? no aguardo de uma ajuda.. valeu, carlos - Abra sua conta no Yahoo! Mail, o único sem limite de espaço para armazenamento! [As partes desta mensagem que não continham texto foram removidas] - Abra sua conta no Yahoo! Mail, o único sem limite de espaço para armazenamento! [As partes desta mensagem que não continham texto foram removidas]
Re: [delphi-br] Case When no Delphi
Não sei se estou sendo ingêunuo, mas na primeira linha, sql.add('select flag AS idade');, falta uma vírgula no final... :) Até mais! 2008/1/24 ca_programador007 [EMAIL PROTECTED]: Olá amigos da lista Preciso de uma ajuda meio urgente.. Não sei o que eu estou fazendo de errado. Preciso utilizar o case when na minha consulta pelo seguinte: Quando vier no conteúdo do campo (varchar) o número 1, então que me retorna a palavra CRIANÇA, quando vier o número 2, que me retorna a palavra ADULTO e quando vier o número 3, que me retorna a palavra IDOSO. sql.add('select flag AS idade'); sql.add('case vci.flag'); sql.add('when 1 then CRIANÇA'); sql.add('when 2 then ADULTO'); sql.add('when 3 then IDOSO end as idade'); sql.add('from'); sql.add('tabela'); O que tem de errado aqui? no aguardo de uma ajuda.. valeu, carlos - Abra sua conta no Yahoo! Mail, o único sem limite de espaço para armazenamento! [As partes desta mensagem que não continham texto foram removidas] -- TFA, Leslyn Fernandes 55-11-9159-3837 Computer Engineer Integra Solutions Imagination is more important than knowledge. - Albert Einstein [As partes desta mensagem que não continham texto foram removidas]
Re: [delphi-br] Case When no Delphi
Foge um pouco ao objetivo do tópico mas sugiro que use Format e QuotedStr para o seu código ficar legível, em especial para outros programadores. Exemplo: SQL.Add(Format('WHEN 1 THEN %s',[QuotedStr('CRIANÇA')])); [As partes desta mensagem que não continham texto foram removidas]
Re: [delphi-br] Case When no Delphi
Tenho um exemplo que uso no meu sistema (É C++ Builder, mas é igual no Delphi, basta trocar os - por . ): Estou usando Banco de Dados MySQL. adoqryFrmLancamento-SQL-Clear(); sql = SELECT ; /* Caso o Tipo de Lançamento for = 'D' então pega o próprio valor, SENÂO multiplca o Valor por -1) */ sql += SUM(CASE WHEN TipoLancamento = 'D' THEN ValorLancamento ELSE ValorLancamento*-1 END) as ValorSaldo ; sql += FROM tbllancamento ; sql += WHERE EXTRACT(MONTH FROM DataLancamento) = '12' AND EXTRACT(YEAR FROM DataLancamento) = '12' ; sql += AND CodigoCliente = '18' ; adoqryFrmLancamento-SQL-Add(sql); adoqryFrmLancamento-Open(); Valeu Wanderlei [As partes desta mensagem que não continham texto foram removidas]