ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

Como usar Case numa adoquery sbtraindo dois campos

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
redmar
Aprendiz
Aprendiz


Registrado: Quarta-Feira, 24 de Setembro de 2008
Mensagens: 114

MensagemEnviada: Qua Ago 08, 2012 12:27 pm    Assunto: Como usar Case numa adoquery sbtraindo dois campos Responder com Citação

Tenho que fazer uma condição: se a sigla for 'A' (subtrair) num_final - Num_inicial + 1

fiz um botão, mas quando coloco o case da erro:

begin
with adoquery1 do
begin
adoquery1.close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('Select letra,num_inicial,num_final, sigla,num_final - num_inicial + 1 AS Qtd,');
adoquery1.SQL.Add('case when sigla = "A" then num_final - num_inicial + 1 AS QtdA');
adoquery1.SQL.Add('from selos where data = '
+ quotedStr(FormatDateTime('yyyy-mm-dd',StrToDate(Maskedit1.text))));
adoquery1.SQL.Add('group by letra');
open;
end;
end;


Tentei assim tb e deu erro tb:
adoquery1.SQL.Add('case when sigla = "A" then 1 else 0 end) as TotA');
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
imex
Moderador
Moderador


Registrado: Sexta-Feira, 7 de Janeiro de 2011
Mensagens: 11666

MensagemEnviada: Qua Ago 08, 2012 2:54 pm    Assunto: Responder com Citação

Boa tarde,

Experimente desta forma:

Código:
adoquery1.SQL.Add('case when sigla = ''A'' then num_final - num_inicial + 1 end AS QtdA');


Com duas aspas simples antes e depois da letra A no lugar das aspas duplas, e um end para finalizar o case antes do 'AS QtdA'.

Espero que ajude.


Editado pela última vez por imex em Ter Out 03, 2023 3:49 pm, num total de 1 vez
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
redmar
Aprendiz
Aprendiz


Registrado: Quarta-Feira, 24 de Setembro de 2008
Mensagens: 114

MensagemEnviada: Qua Ago 08, 2012 5:32 pm    Assunto: Responder com Citação

Blza era isso mesmo deu certinho. Vlw amigão.

Só mais uma coisa, tem como eu aproveitar u qrport que fiz, copiei e colei mais fica saindo errado, mudei o data set e os campos mesmo assim n fica repetindo os resultados, existe alguma forma de aproveirtar os relatórios?
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Batera
Colaborador
Colaborador


Registrado: Quarta-Feira, 23 de Julho de 2008
Mensagens: 4899
Localização: Maringá

MensagemEnviada: Qua Ago 08, 2012 8:06 pm    Assunto: Responder com Citação

redmar, além do DataSet do QR, você precisa também alterar o DataSet de cada campo no relatório. Sempre quando reaproveito relatórios, só preciso alterar essa propriedade.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Visitar a homepage do Usuário
redmar
Aprendiz
Aprendiz


Registrado: Quarta-Feira, 24 de Setembro de 2008
Mensagens: 114

MensagemEnviada: Qui Ago 09, 2012 9:09 am    Assunto: Responder com Citação

Fiz exatamente isso, no Queckrep1 coloquei o data set do form onde esta minha adoquery e dentro de cada campo (TrdbText) coloquei o dataset e o datafield.

E não funcionou, ai peguei e fiz um no qreport do zero ai funciona.

Não sei o que deve ser.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB