Ir para conteúdo

Arquivado

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

Rafaeljuni0.ti

Select Datepart ?

Recommended Posts

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 nao 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.

 

Entao o que preciso eh 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 ja 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 ja 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

Compartilhar este post


Link para o post
Compartilhar em outros sites

supondo uma tabela para equipamento e uma para manutençãp, seria algo assim ...

 

1) manutenções totais

 

select id,count(*) qtd
from manutencao

 

unindo com equipamentos

 

select id,sum(qtd) qtd
from
(
select id,count(*) qtd
from manutencao
union all
select id,0 qtd
from equipamento
)
group by id

 

ajudou ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

supondo uma tabela para equipamento e uma para manutençãp, seria algo assim ...

 

1) manutenções totais

 

select id,count(*) qtd
from manutencao

 

unindo com equipamentos

 

select id,sum(qtd) qtd
from
(
select id,count(*) qtd
from manutencao
union all
select id,0 qtd
from equipamento
)
group by id

 

ajudou ?

 

 

Ola MOtta valeu por responder mas o que preciso nao eh contar o numero de vezes que o equipamento ficou retido e sim a quatidade de horas no mes dia a dia

 

Obrigado !

Compartilhar este post


Link para o post
Compartilhar em outros sites

A subtração entre duas datas dá o número de dias(ou fração) entre elas.

 

Para saber o número de horas basta multiplicar por 24.

 

Uma FUNCTION poderia ser criada para formatar um nº de dias em dias/horas/minutos etc se for o caso.

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.