none
Select datepart RRS feed

  • Pergunta

  • Boa noite pessoal,,

    Estou com a seguinte situação... tenho um tabela para contabilizar as hora emdia,mes, ano e etc.., 

    Digamos que tenho uma tabela com os seguinte campos:

    TMP_ID => id da tabela

    TMP_DT_INICIO => inicio 

    TMP_DT_FIM=> termino


    Agradeco sempre a atencao do Forum.

    Obrigado!


    • Editado RJ_Silva domingo, 28 de outubro de 2012 20:49
    sábado, 21 de julho de 2012 20:54

Respostas

  • Rafael,

    Então, no caso o seu relatório seria por equipamento, listando todos os dias e horários que o este equipamento passou por revisão ou manutenção, calculando diariamente a quantidade de horas em reparo e ao final de um determinado período o somatória destas horas.

    Veja se este exemplo ajuda:

    Create Table Equipamentos
     (Codigo Int Primary Key Identity(1,1),
      Descricao Varchar(20))
      
    Insert Into Equipamentos Values('TV'),('DVD'),('Rádio')
    
    Create Table Revisao
     (Codigo Int Primary Key Identity(1,1),
      CodEquipamento Int,
      DataEntrada DateTime,
      DataSaida DateTime)
      
    Insert Into Revisao (CodEquipamento,DataEntrada,DataSaida)
    Values (1,GETDATE(), GETDATE()),
    			(1,GETDATE()+2, GETDATE()+5),
    			(2,GETDATE()+10, GETDATE()+15),
    			(3,GETDATE()+2, GETDATE()+6),
    			(2,GETDATE()+22, GETDATE()+30)
    
    
    Select CodEquipamento, COUNT(CodEquipamento) As 'Contagem de Revisões', 
               DATEDIFF(D,DataEntrada, DataSaida) As 'Diferença em Dias',
               DATEDIFF(HH,DataEntrada, DataSaida) As 'Diferença em Horas' 
    from Revisao
    Group By CodEquipamento, DataEntrada, DataSaida


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]

    • Marcado como Resposta RJ_Silva sexta-feira, 6 de dezembro de 2013 21:50
    quinta-feira, 26 de julho de 2012 12:30
  • Rafael,

    Então, no caso o seu relatório seria por equipamento, listando todos os dias e horários que o este equipamento passou por revisão ou manutenção, calculando diariamente a quantidade de horas em reparo e ao final de um determinado período o somatória destas horas.

    Veja se este exemplo ajuda:

    Create Table Equipamentos
     (Codigo Int Primary Key Identity(1,1),
      Descricao Varchar(20))
      
    Insert Into Equipamentos Values('TV'),('DVD'),('Rádio')
    
    Create Table Revisao
     (Codigo Int Primary Key Identity(1,1),
      CodEquipamento Int,
      DataEntrada DateTime,
      DataSaida DateTime)
      
    Insert Into Revisao (CodEquipamento,DataEntrada,DataSaida)
    Values (1,GETDATE(), GETDATE()),
    			(1,GETDATE()+2, GETDATE()+5),
    			(2,GETDATE()+10, GETDATE()+15),
    			(3,GETDATE()+2, GETDATE()+6),
    			(2,GETDATE()+22, GETDATE()+30)
    
    
    Select CodEquipamento, COUNT(CodEquipamento) As 'Contagem de Revisões', 
               DATEDIFF(D,DataEntrada, DataSaida) As 'Diferença em Dias',
               DATEDIFF(HH,DataEntrada, DataSaida) As 'Diferença em Horas' 
    from Revisao
    Group By CodEquipamento, DataEntrada, DataSaida


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]

    Ola Junior,

    Obrigado por responder, da forma que citou acima me ajudaria tambem.

    Mas no relatorio que preciso indetificar quantas horas o equipamento esteve em manutencao no dia anterior por exemplo, independentte do dia em que ele entrou na oficina ou se ta retido ainda ou nao mas preciso saber quantas horas esse equipamento ficou em manutencao ontem . pq meu relatorio preciso informar o percentual da disponibilidade do equipamento no dia anterio e no Mes .

    Ou seja se o equipamento pode esta na oficina a tres e se ele saiu ontem as 14:00 preciso identificar qual foi o percentual da disponibilidade dele no dia anterior (14:00/ 24:00Hrs *100) e tambem no mes (Horas_Manutencao_Mes / (24*(Qtde_dia_no_mes) * 100))

    Lembrando que as informacoes que tenho eh data de entrada e data de saida mas nao preciso somente pegar a diferencas entre essas data e sim quantas horas ele ficou em manutencao no dia anterior o no Mes atual Obviamente se ele ainda estiver em manutencao o dia anterior será 24:00

    Obrigado sempre pela atencao aqui no FORUM !

    • Marcado como Resposta RJ_Silva sexta-feira, 6 de dezembro de 2013 21:50
    sábado, 28 de julho de 2012 20:37

Todas as Respostas

  • Rafael,

    Na verdade seria um histórica de período contabilizando por dia a quantidade de horas?


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]

    segunda-feira, 23 de julho de 2012 16:14
  • Rafael,

    Então, no caso o seu relatório seria por equipamento, listando todos os dias e horários que o este equipamento passou por revisão ou manutenção, calculando diariamente a quantidade de horas em reparo e ao final de um determinado período o somatória destas horas.

    Veja se este exemplo ajuda:

    Create Table Equipamentos
     (Codigo Int Primary Key Identity(1,1),
      Descricao Varchar(20))
      
    Insert Into Equipamentos Values('TV'),('DVD'),('Rádio')
    
    Create Table Revisao
     (Codigo Int Primary Key Identity(1,1),
      CodEquipamento Int,
      DataEntrada DateTime,
      DataSaida DateTime)
      
    Insert Into Revisao (CodEquipamento,DataEntrada,DataSaida)
    Values (1,GETDATE(), GETDATE()),
    			(1,GETDATE()+2, GETDATE()+5),
    			(2,GETDATE()+10, GETDATE()+15),
    			(3,GETDATE()+2, GETDATE()+6),
    			(2,GETDATE()+22, GETDATE()+30)
    
    
    Select CodEquipamento, COUNT(CodEquipamento) As 'Contagem de Revisões', 
               DATEDIFF(D,DataEntrada, DataSaida) As 'Diferença em Dias',
               DATEDIFF(HH,DataEntrada, DataSaida) As 'Diferença em Horas' 
    from Revisao
    Group By CodEquipamento, DataEntrada, DataSaida


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]

    • Marcado como Resposta RJ_Silva sexta-feira, 6 de dezembro de 2013 21:50
    quinta-feira, 26 de julho de 2012 12:30
  • Rafael,

    Então, no caso o seu relatório seria por equipamento, listando todos os dias e horários que o este equipamento passou por revisão ou manutenção, calculando diariamente a quantidade de horas em reparo e ao final de um determinado período o somatória destas horas.

    Veja se este exemplo ajuda:

    Create Table Equipamentos
     (Codigo Int Primary Key Identity(1,1),
      Descricao Varchar(20))
      
    Insert Into Equipamentos Values('TV'),('DVD'),('Rádio')
    
    Create Table Revisao
     (Codigo Int Primary Key Identity(1,1),
      CodEquipamento Int,
      DataEntrada DateTime,
      DataSaida DateTime)
      
    Insert Into Revisao (CodEquipamento,DataEntrada,DataSaida)
    Values (1,GETDATE(), GETDATE()),
    			(1,GETDATE()+2, GETDATE()+5),
    			(2,GETDATE()+10, GETDATE()+15),
    			(3,GETDATE()+2, GETDATE()+6),
    			(2,GETDATE()+22, GETDATE()+30)
    
    
    Select CodEquipamento, COUNT(CodEquipamento) As 'Contagem de Revisões', 
               DATEDIFF(D,DataEntrada, DataSaida) As 'Diferença em Dias',
               DATEDIFF(HH,DataEntrada, DataSaida) As 'Diferença em Horas' 
    from Revisao
    Group By CodEquipamento, DataEntrada, DataSaida


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]

    Ola Junior,

    Obrigado por responder, da forma que citou acima me ajudaria tambem.

    Mas no relatorio que preciso indetificar quantas horas o equipamento esteve em manutencao no dia anterior por exemplo, independentte do dia em que ele entrou na oficina ou se ta retido ainda ou nao mas preciso saber quantas horas esse equipamento ficou em manutencao ontem . pq meu relatorio preciso informar o percentual da disponibilidade do equipamento no dia anterio e no Mes .

    Ou seja se o equipamento pode esta na oficina a tres e se ele saiu ontem as 14:00 preciso identificar qual foi o percentual da disponibilidade dele no dia anterior (14:00/ 24:00Hrs *100) e tambem no mes (Horas_Manutencao_Mes / (24*(Qtde_dia_no_mes) * 100))

    Lembrando que as informacoes que tenho eh data de entrada e data de saida mas nao preciso somente pegar a diferencas entre essas data e sim quantas horas ele ficou em manutencao no dia anterior o no Mes atual Obviamente se ele ainda estiver em manutencao o dia anterior será 24:00

    Obrigado sempre pela atencao aqui no FORUM !

    • Marcado como Resposta RJ_Silva sexta-feira, 6 de dezembro de 2013 21:50
    sábado, 28 de julho de 2012 20:37