Usuário com melhor resposta
Dúvida com Calculo no Campo Datetime

Pergunta
-
Bom dia!
Por favor, me ajudem com uma dúvida...
Tenho um select onde na linha order by é chamado o campo Data_Recebimento e esse select ordena uma fila de propostas...
Só que um usuário irá determinar a prioridade, que está relacionado a horas, dessas propostas e então no select que monta a fila eu tenho que mexer no Order By...
Eu pensei em duas possibilidades e quero ajuda pra montar esse trecho do comando...
1- subtrair as horas do campo Data_Recebimento (tipo datetime) pois cada prioridade é uma hora... prioridade 1 = 6h, prioridade 2 = 5h, prioridade 3 = 4h, prioridade 4 = 3h, prioridade 2 = 1h e prioridade 0 = 0h (Não calcula nada, pois essa proposta não sofreu alteração na prioridade). Essas horas estão dentro de um campo, Prioridade_Hora.
2- ordenar da seguinte forma: Data_Recebimento (onde só pegue a data), Prioridade, Data_recebimento (onde só pegue a hora)
Alguém pode me ajudar a montar esse trecho do Order by? Dá pra fazer esse tipo de conta?? Subtrair no Order by?
Obrigada desde já!!
- Editado acolafati quinta-feira, 14 de novembro de 2013 12:49
Respostas
-
Utilize dessa forma:
SELECT Proposta FROM Dados_Originais INNER JOIN Tabela_Prioridade ON Dados_Originais.Prioridade_ID = Tabela_Prioridade.Prioridade_ID ORDER BY Data_Recebimento-CAST(Prioridade_Hora AS DATETIME)
"A vida é um paraíso, mas os homens não o sabem e não se preocupam em sabê-lo." Fiodor Dostoievski
- Marcado como Resposta acolafati segunda-feira, 16 de dezembro de 2013 20:24
-
Deleted
- Marcado como Resposta Giovani Cr sexta-feira, 22 de novembro de 2013 14:51
Todas as Respostas
-
Bom dia,
Acolafati, não sei se entendi corretamente, mas experimente mais ou menos dessa forma:
order by cast(Data_Recebimento as Date), Prioridade_Hora DESC, cast(Data_Recebimento as Time)
Se não for obtido o resultado desejado, acho que seria melhor você postar alguns valores de exemplo para facilitar o entendimento da questão.
Espero que ajude.
Assinatura: http://www.imoveisemexposicao.com.br
-
Oi bom dia!
Obrigada pelo retorno!!
Pelo que estou vendo terei que fazer uma conta mesmo...
Não consigo adicionar imagem ou link... mas veja se você entende...
TABELA_PRIORIDADE Prioridade_ID Prioridade_Hora 0 0h 1 6h 2 5h 3 4h 4 3h 5 2h 6 1h DADOS_ORIGINAIS
Proposta Data_Recebimento Prioridade_ID Hora a ser Subtraida A 12/11/2013 10:30 0 0h B 12/11/2013 11:00 3 4h C 12/11/2013 14:30 4 3h D 13/11/2013 10:00 6 1h E 13/11/2013 10:45 2 5h F 14/11/2013 12:30 5 2h G 14/11/2013 15:30 1 6h RESULTADO_DESEJADO Proposta Data_Recebimento Prioridade_ID Hora Alterada B 12/11/2013 11:00 3 07:00 A 12/11/2013 10:30 0 10:30 C 12/11/2013 14:30 4 11:30 E 13/11/2013 10:45 2 05:45 D 13/11/2013 10:00 6 09:00 G 14/11/2013 15:30 1 09:30 F 14/11/2013 12:30 5 10:30 Resumindo o meu Select hoje é asism...
SELECT Proposta FROM Dados_Originais ORDER BY Data_Recebimento
Mas a ordem teria que ser pelo calculo da Hora do campo Data_Recebimento - (menos) Prioridade_Horas
Dai eu sei que temos que montar algo assim:
SELECT Proposta FROM Dados_Originais
INNER JOIN Tabela_Prioridade ON
Dados_Originais.Prioridade_ID = Tabela_Prioridade.Prioridade_ID
ORDER BY ...??????
Conseguiu me entender??
Fico muito grata!!!
-
Tenta assim:
SELECT Proposta FROM Dados_Originais INNER JOIN Tabela_Prioridade ON Dados_Originais.Prioridade_ID = Tabela_Prioridade.Prioridade_ID ORDER BY DATEADD(hh,Prioridade_Hora,Data_Recebimento)
"A vida é um paraíso, mas os homens não o sabem e não se preocupam em sabê-lo." Fiodor Dostoievski
-
-
Acolafati, de que tipo é a coluna Prioridade_Hora?
Se for do tipo integer ou semelhante experimente apenas adicionar um sinal de menos na query sugerida pelo Kanaãm para subtrair:
ORDER BY DATEADD(hh, -Prioridade_Hora, Data_Recebimento)
Se for do tipo Time experimente:
ORDER BY Dados_Originais.Data_Recebimento - Tabela_Prioridade.Prioridade_Hora
Espero que ajude.
Assinatura: http://www.imoveisemexposicao.com.br
-
Acolafati, de que tipo é a coluna Prioridade_Hora?
Se for do tipo integer ou semelhante experimente apenas adicionar um sinal de menos na query sugerida pelo Kanaãm para subtrair:
ORDER BY DATEADD(hh, -Prioridade_Hora, Data_Recebimento)
Se for do tipo Time experimente:
ORDER BY Dados_Originais.Data_Recebimento - Tabela_Prioridade.Prioridade_Hora
Espero que ajude.
Assinatura: http://www.imoveisemexposicao.com.br
Não havia me atentado ao tipo do campo.
Obrigado!"A vida é um paraíso, mas os homens não o sabem e não se preocupam em sabê-lo." Fiodor Dostoievski
-
-
Utilize dessa forma:
SELECT Proposta FROM Dados_Originais INNER JOIN Tabela_Prioridade ON Dados_Originais.Prioridade_ID = Tabela_Prioridade.Prioridade_ID ORDER BY Data_Recebimento-CAST(Prioridade_Hora AS DATETIME)
"A vida é um paraíso, mas os homens não o sabem e não se preocupam em sabê-lo." Fiodor Dostoievski
- Marcado como Resposta acolafati segunda-feira, 16 de dezembro de 2013 20:24
-
Deleted
- Marcado como Resposta Giovani Cr sexta-feira, 22 de novembro de 2013 14:51