Jump to content
FMacau

Consultas de Datas e Calculos

Recommended Posts

FMacau

Boa noite pessoal tudo em ordem com vocês?

Tenho o seguinte problema em mãos... Estou neste momento a criar uma base de dados no Access (versão 2007), que é para um cliente que é camionista, ele faz um relatório de todos os seus dias de viagem, com vários detalhes.

Mas isso é o menos importante, a minha questão é a seguinte: fazer consultas entre 2 datas, e depois ele devolve: veiculo, tractor, reboque, condutor, ano, mês, dia, inicio & passagem & fim (da viagem), pais, km realizados, horas de trabalho, horas descanso, dieta, observações.

e depois uma outra consulta, também entre 2 datas, mas a diferença de dias não pode ser superior a 7 ( o objectivo desta consulta é mostrar os "resultados" de uma determinada semana), semelhante à anterior e com todos os campos referidos acima, mas desta vez com mais 4 campos: Total KM Realizados, Total Horas Trabalhos, Total Horas Descanso, Total Dieta, ou seja, estes 4 campos têm de ter uma operação de soma.

Alguém me consegue ajudar com isto? :/


Filipe Macau © 2013

Web Designer & Designer Gráfico @ - http://www.filipemacau.com/ | geral@filipemacau.com

Web Design . Design Gráfico . Decoração . Desenho . Fotografia . Video . Informática . Merchandise . Tradução

Share this post


Link to post
Share on other sites
AJBM

Boas!

Mostra o desenho da bd.

A informação que vais a presentar é a por viagem ou é da semana?

Mas já te posso dizer mais ao menos o que vais ter que fazer, vais ter agrupar a informação por (viagem ou semana) e somar as horas de trabalhos...

Para agrupar usas o group by e para somar a funcao sum

Share this post


Link to post
Share on other sites
acao

boas

tens que fazer um select nestes termos:

terás que usar «between»

queryRelCombstPorViat = "SELECT * FROM Combustivel WHERE DataAbastecCombustivel  BETWEEN CDate('" & vInicioIntervaloDatas & "') And " & _
						    "CDate('" & vFimIntervaloDatas & "') and MatriculaViat = '" & cboRelCombustivel.Text & "' ORDER BY DataAbastecCombustivel;"

a query que coloquei é net com ligação a db acess, não foi testado em msacess mas penso que funcionará.

adapte ás suas necessidades.

cumps

acao

Share this post


Link to post
Share on other sites
FMacau

Boas!

Mostra o desenho da bd.

A informação que vais a presentar é a por viagem ou é da semana?

Mas já te posso dizer mais ao menos o que vais ter que fazer, vais ter agrupar a informação por (viagem ou semana) e somar as horas de trabalhos...

Para agrupar usas o group by e para somar a funcao sum

Tem de ter as duas funções, uma mostra por dia, e a outra mostra por semana.

boas

tens que fazer um select nestes termos:

terás que usar «between»

queryRelCombstPorViat = "SELECT * FROM Combustivel WHERE DataAbastecCombustivel  BETWEEN CDate('" & vInicioIntervaloDatas & "') And " & _
							"CDate('" & vFimIntervaloDatas & "') and MatriculaViat = '" & cboRelCombustivel.Text & "' ORDER BY DataAbastecCombustivel;"

a query que coloquei é net com ligação a db acess, não foi testado em msacess mas penso que funcionará.

adapte ás suas necessidades.

cumps

acao

Obrigado pela ajuda, vou tentar fazer utilizando o código que disponibilizou e quando estiver isto pronto e preparado (e se tiver funcionado) avisarei :D

Ah, uma coisa que me esqueci de dizer AJBM, a base de dados, em termos de Relações, não está conectada, pois terá apenas a função de arquivo, mas neste momento questiono-me, sem as ligações conseguirá mostrar-me o que pretendo?


Filipe Macau © 2013

Web Designer & Designer Gráfico @ - http://www.filipemacau.com/ | geral@filipemacau.com

Web Design . Design Gráfico . Decoração . Desenho . Fotografia . Video . Informática . Merchandise . Tradução

Share this post


Link to post
Share on other sites
AJBM

Sem saber a constituicao das tuas tabelas torna-se dificil para te ajudar, mas seria mais ao menos uma coisa assim.

SELECT SUM(horas_trabalho) AS totalDeHorasTrabalho

FROM viagem

where restricao da data

GROUP BY idviagem

Share this post


Link to post
Share on other sites
FMacau

Sem saber a constituicao das tuas tabelas torna-se dificil para te ajudar, mas seria mais ao menos uma coisa assim.

SELECT SUM(horas_trabalho) AS totalDeHorasTrabalho

FROM viagem

where restricao da data

GROUP BY idviagem

Posso-te enviar a BD?

Se sim, manda PM :)


Filipe Macau © 2013

Web Designer & Designer Gráfico @ - http://www.filipemacau.com/ | geral@filipemacau.com

Web Design . Design Gráfico . Decoração . Desenho . Fotografia . Video . Informática . Merchandise . Tradução

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.