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 

Duvida com acumulação, ordenação e comparação de valores

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


Registrado: Sexta-Feira, 30 de Mai de 2008
Mensagens: 185

MensagemEnviada: Seg Fev 03, 2020 8:04 am    Assunto: Duvida com acumulação, ordenação e comparação de valores Responder com Citação

Bom dia pessoal,
Gostaria de ajuda de vocês para a seguinte situação :

Tenho 3 laços.

While not Qry1.eof do
begin
Qry.fieldbyname('valortotal1').asfloat;
Qry1.next;
end;


While not Qry2.eof do
begin
Qry.fieldbyname('valortotal2').asfloat;
Qry2.next;
end;

While not Qry3.eof do
begin
Qry.fieldbyname('valortotal3').asfloat;
Qry3.next;
end;


Eu preciso coletar todos os valores de todos os campos, armazenar em um lugar e depois compara-los.
Exemplo :

if valortotal3 > valortotal2 and valortotal2 > valortotal1 then
showmessge('Compra OK')


Lembrando que poderei ter varios tipos e peças na mesma situação:

No resumo seria isso :

Peça 01 : 1,00 : 2,00 : 3,00 -- Compra OK, terceiro valor maior que o segundo, e segundo valor maior que o primeiro.

Peça 03 : 2,00 : 3,00 : 4,00 -- Compra OK, terceiro valor maior que o segundo, e segundo valor maior que o primeiro.

Peça 03 : 5,00 : 6,00 : 3,00 -- Compra negada terceiro valor menor que o segundo, e segundo valor maior que o primeiro.

Para compra ser verdadeira, o segundo valor tem que ser maior que o primeiro, o terceiro tem que ser maior que o segundo.

Ou seja eu precisaria incluir isso em uma matriz de dados, lembrando que o primeiro laço inclui todas peças de maneira distinta, e que o segundo laço deverá começar na posição 1, visto que trata-se do segundo preço da mesma peça, ou seja mesmo a primeira matriz de dados ja carregada, a segunda e terceira matriz, deverão iniciar da posição zero.

Falei em matriz pois vi que isso pode ma ajudar, eu até fiz uns testes, porém depois de muito quebrar a cabeça, não consegui um meio para fazer esta comparação, se alguém puder ajudar agradeço.

Obrigado à todos.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
mastersoftware
Aprendiz
Aprendiz


Registrado: Sexta-Feira, 30 de Mai de 2008
Mensagens: 185

MensagemEnviada: Seg Fev 03, 2020 5:51 pm    Assunto: Responder com Citação

Alguem galera ?
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
ric_rio2
Novato
Novato


Registrado: Segunda-Feira, 1 de Outubro de 2018
Mensagens: 88

MensagemEnviada: Ter Fev 04, 2020 6:56 am    Assunto: Responder com Citação

Bom dia...
Uma pergunta... Smile
Você precisa de todos os DADOS ou somente dos NEGADOS?

Se sim... posso fornecer um outro tipo de abordagem.. se te servir.. legal Smile

Eu faria um Select com join das tabelas..

Ficaria mais ou menos assim ( mais ou menos pois nao sei o nome das tabelas nem dos campos Smile )

Código:
Select T1.Valor as Valor_T1, T2.Valor as ValorT2, T3.Valor as Valor_T3
From T1
Left outer join T2 on (T1.ID_Item = T2.ID_Item)
Left outer Join T3 on (T1.ID_Item = T3.ID_Item)
Where

(T1.Valor < T2.Valor) and
(T2.Valor < T3.Valor)


Com isso retornaria somente os valores que fossem "NEGADOS" saca?? Smile
Dependendo do banco de dados que tu esta usando esse select tem que ser melhorado..
Espero ter conseguido explicar meu ponto de vista.. Caso tenha alguma duvida é só falar Smile
Abraços Smile
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail
mastersoftware
Aprendiz
Aprendiz


Registrado: Sexta-Feira, 30 de Mai de 2008
Mensagens: 185

MensagemEnviada: Ter Fev 04, 2020 9:35 am    Assunto: Responder com Citação

Bom dia,
Primeiramente obrigado pela resposta.
Estava mesmo pensando em inserir em tabelas, e tratar via select.
Você tem algo diferente disto, ou indica isso mesmo ?
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