Exibir mensagem anterior :: Exibir próxima mensagem |
Autor |
Mensagem |
redmar Aprendiz

Registrado: Quarta-Feira, 24 de Setembro de 2008 Mensagens: 114
|
Enviada: Qua Ago 08, 2012 12:27 pm Assunto: Como usar Case numa adoquery sbtraindo dois campos |
|
|
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 |
|
 |
imex Moderador

Registrado: Sexta-Feira, 7 de Janeiro de 2011 Mensagens: 11666
|
Enviada: Qua Ago 08, 2012 2:54 pm Assunto: |
|
|
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 |
|
 |
redmar Aprendiz

Registrado: Quarta-Feira, 24 de Setembro de 2008 Mensagens: 114
|
Enviada: Qua Ago 08, 2012 5:32 pm Assunto: |
|
|
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 |
|
 |
Batera Colaborador


Registrado: Quarta-Feira, 23 de Julho de 2008 Mensagens: 4899 Localização: Maringá
|
Enviada: Qua Ago 08, 2012 8:06 pm Assunto: |
|
|
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 |
|
 |
redmar Aprendiz

Registrado: Quarta-Feira, 24 de Setembro de 2008 Mensagens: 114
|
Enviada: Qui Ago 09, 2012 9:09 am Assunto: |
|
|
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 |
|
 |
|