Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

souza.eq

Subtração de Consultas

Recommended Posts

Estou com uma dificuldade na elaboração de uma consulta:

 

Tenho a seguinte situação:

 

Tabela FIQ2660

 

GOAP...........DATA

10...........01/08/2010 00:00

20...........01/08/2010 08:00

30...........01/08/2010 16:00

40...........02/08/2010 00:00

50...........02/08/2010 08:00

60...........02/08/2010 16:00

70...........03/08/2010 00:00

. .

. .

. .

 

Estou fazendo as seguintes consultas:

Consulta Intervalo

Campo...........GOAP ..............DATA

Tabela........... FIQ2660........... FIQ2660

Mostrar...........x...................-

Critério........... -...................Entre [data inicial] E [data final]

 

Consulta Primeiro e Último

Campo............Primeiro: GOAP..................Último: GOAP................integralização: [Último]-[Primeiro]

Tabela............Consulta Intervalo................Consulta Intervalo ..........-

Total..............Primeiro..........................Último.......................-

Mostrar...........x................................. x.............................-

Critério...........-..................................-..............................-

 

Assim consigo perguntar o intervalo ao usuário e fazer a integralização (subtrair o valor do último - primeiro valor de GOAP), mas fica aparecendo para eu digitar além de

"Primeiro: GOAP" e "Último: GOAP" também "Último" e "Primeiro".

 

Eu não preciso de saber os valores do intervalo, eu só necessito dos valores perguntados referentes a "data final" e "data inicial", pois a conta que necessito fazer é justamente com os valores da extremidades e não o intervalo todo: valor de GOAP[data final] - valor de GOAP[data inicial]

 

Eu só consegui fazer da maneira descrita acima, assim eu gostaria de saber se há como fazer uma fórmula para fazer a operação direta (já tentei de diversas formas aqui e não consegui, procurei em posts e livros), tipo:

 

Pergunta ao usuário:

data final (armazena o valor de GOAP para esta data)

data inicial (armazena o valor de GOAP para esta data)

Operação: valor de GOAP[data final] - valor de GOAP[data inicial] -> mostra ao usuário o valor!

 

Alguém saberia fazer esta consulta de forma direta?

Obrigado a todos!

 

(outra dúvida de quebra, tem como eu perguntar ao usuário a data e o resultado que retornar da consulta eu armazenar numa variável. Tipo: x=resultado da consulta. Isso resolveria minha dúvida acima e muitas outras aqui. Ou eu consigo fazer uma operação matematica com o resultado de uma consulta e como o resultado de várias consultas?)

Valeu!

 

Obs.: Alguém tem uma apostila ou manual de operações e análise de dados no access (operações matemáticas, contas)?

Agora eu vou....

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não sei se entendi bem , mas

 

select GOAP,min(DATA) menor_data,max(DATA) maoir_data
from   FIQ2660
group by GOAP

Algumas operações com diferença poderiam ser feitas mas não conheço as function(se é que existem) de acess que fazem isto.

 

Ajudou ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Em Consulta

 

 

--esse faz da tabela toda

 

SELECT

DLookUp("goap","fiq2660","cdbl(data) = " & CDbl(DMax("data","fiq2660","cdbl(data) Between #08/01/2010# And #08/02/2010#"))) AS Ultimo,

DLookUp("goap","fiq2660","cdbl(data) = " & CDbl(DMin("data","fiq2660","cdbl(data) Between #08/01/2010# And #08/02/2010#"))) AS Primeiro, [ultimo]-[Primeiro] AS Integralização;

 

 

 

-- filtrando intervalo

 

SELECT

DLookUp("goap","fiq2660","cdbl(data) = " & CDbl(DMax("data","fiq2660","cdbl(data) Between " & CDbl([dataini]) & " And " & CDbl([datafim])))) AS Ultimo,

DLookUp("goap","fiq2660","cdbl(data) = " & CDbl(DMin("data","fiq2660","cdbl(data) Between " & CDbl([dataini]) & " And " & CDbl([datafim]) & " "))) AS Primeiro, [ultimo]-[Primeiro] AS Integralização, CDate([informe a Data Inicial]) AS DataIni, CDate([informe a Data Final]) AS DataFim;

 

 

--função pra jogar em variavel

 

public function RetornaIntegralizacao

 

RetornaIntegralizacao = dlookup("[nomedaconsulta]", "Integralização")

 

end function

 

 

 

 

......POR PARTES.......

 

Essa consulta não roda pelo modo estrutura, você tem que botar no modo sql e executar, porque ??? não sei....rsssss

 

Para jogar em variável você tem que em um módulo colocar essa função...

 

"nomedaconsulta" é o nome que você vai usar pra salvar essa consulta

 

Se ajudar manda um abraço

 

 

rsss

 

 

Qualquer dúvida é só postar

 

abçs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valeu galera, vai demorar um pouquinho pra eu testar porque primeiro eu tenho que destilar aqui...enteder...to acostumado a usar VBA e não SQL. To quebrando a cabeça pra trabalhar no modo design, as coisas são muito engessadas e não funcionam... Pelo menos eu não sei fazer funcionar... Gostei muito dessa linguagem de SQL, não parece difícil... Bem objetiva e parecida com VBA mas sem precisar declarar variável... Vou engatinhar e aprender a fazer coisas simples e bobas em SQL pra ver se eu saio do zero e depois engreno nesse código aí! Valeu pela ajuda galera...Muito Obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.