Jump to content
Fórum Script Brasil
  • 0

Select Datepart ?


Rafaeljuni0.ti
 Share

Question

Boa noite pessoal,,

Estou com a seguinte situação... tenho um tabela para contabilizar as horas de manutenção em um equipamento no dia,mes, ano e etc..,

Digamos que tenho uma tabela com os seguinte campos:

TMP_ID => id da tabela

TMP_DT_INICIO => inicio da manutenção

TMP_DT_FIM=> termino da manutenção

TMP_EQUIPAMENTO => equipamento manutenido

* uma manutencao nunca pode ocorrer duas vezes ao menos tempo ou seja se um equipamento X estiver na tabela que ele teve retido(em manuntencao) de 10/07/2012 a 18/07/2012 não havera outro registro desse mesmo equipamento entre essa data ..a proxima manutencao devera ser maio que a data de liberacao da ultima manuntecaoq ue esse equipamento fez.

* mas esse equipamento pode entrar e sair da ofcina N vezes ou seja ele pode ficar retido entre 10/07 a 18/07 e depois ficar retido do dia 20/07 a 23/07 por exemplo.

então o que preciso é contruir uma consulta que me diz quantas horas por dia esse equipamento ficou retido dia por dia ...usando o datediff consigo pegar a diferecnas entre o inicio e fim da manutencao e isso já faco em um outra situacao mas aqui preciso saber quanta horas ele ficou retido cada dia no mes atuas ou seja

Digamos que um EQU_NOME ficou retido tres vezes no mes atual (Julho)

do dia 13/07 as 7:00 ate 15/07 as 11:30

do dia 16/07 10:00 ate 18/07 as 11:00

precisaria que ele me retornasse que no dia 01/07 ,02/07 ....ate 12/07 teve 00:00 horas de manuntecao já no dia 13/07 teve 17:00 ,14/07 teve 24:00 e por ai vai

ou seja uma coluna para cada dia do meu atual..sempre do mes atual as horas de manuntencao daquele determinado equipamento por dia ..se ele ficou parada uma vez mas foi 5 dias de manutencao preciso mostrar que dia tal teve tantas horas e por ai vai.

Agradeco sempre a atencao do Forum.

Obrigado

Link to comment
Share on other sites

1 answer to this question

Recommended Posts

  • 0

Bom dia Rafael,

Acho que entendi o seu problema. Então ai vai uma pergunta..... rs.

- Onde você utilizará os dados de dias que o equipamento ficou com 0:00 hs em manutenção?

Por que estou perguntando isto: no seu exemplo, se o script estivesse funcionando, no mês de julho iriam ter 31 linhas de retorno. Uma linha para cada dia. Mas os dias que o equipamento ficou em manutenção foram apenas 2 dias. Então o sql processaria 31 linhas de resultado, para trazer 29 linhas com zero e 2 linhas com resultados que interessa.

Se fosse implementar, faria o "trabalho pesado" no código fonte, e deixaria a consulta no Banco apenas retornar os dis que houveram realmente a manutenção. Os outros dias, o próprio código colocaria zero.

Para separar as datas por hora (como no intervalo de 13/07 a 15/07), terá que testar se a data de início é igual a data de fim. Se for, irá calcular com as horas, senão, terá que calcular as horas até 23:59 hs + 1 hora. Após o calculo, somar 1 dia na data de inicio e realizar novamente o teste.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share



  • Forum Statistics

    • Total Topics
      150.9k
    • Total Posts
      648.8k
×
×
  • Create New...