Agrupar Intervalo de Datas.
Ola Boa tarde!!!
Estou com um problema que a principio achei de seria simples.
Preciso agrupar um intervalo de horario.
Tenho um campo datetime e estou extraindo deste campo o horario, so que preciso que tudo que compreender o horario de 00:00:00 as 09:00:00 sera considerado como primeira hora, ou simplemente o numero um escrever realmente primeira hora.
Nao estou conseguindo fazer nem pensar em como fazer isso.
Essa necessidade se da, devido uma situacao que surgiu aqui na empresa, a diretoria deseja saber qual a movimentacao hora a hora da empresa, e assim tomar medidas para os horarios que maior volume de vendas e menor volume de vendas.
Algue poderia me dar uma forca.
desde ja agradeco.
Abraco.
Alex - Lekao
Estou com um problema que a principio achei de seria simples.
Preciso agrupar um intervalo de horario.
Tenho um campo datetime e estou extraindo deste campo o horario, so que preciso que tudo que compreender o horario de 00:00:00 as 09:00:00 sera considerado como primeira hora, ou simplemente o numero um escrever realmente primeira hora.
Nao estou conseguindo fazer nem pensar em como fazer isso.
Essa necessidade se da, devido uma situacao que surgiu aqui na empresa, a diretoria deseja saber qual a movimentacao hora a hora da empresa, e assim tomar medidas para os horarios que maior volume de vendas e menor volume de vendas.
Algue poderia me dar uma forca.
desde ja agradeco.
Abraco.
Alex - Lekao
Alex Lekao
Curtidas 0
Respostas
Emanoély Gura
13/06/2012
Utilizando case vc não consegue resolver?
Algo tipo:
case when hora between hr_inicio and hr_fim then Primeira hora
Ai agrupa depois.. não sei se é esse o caso...
Algo tipo:
case when hora between hr_inicio and hr_fim then Primeira hora
Ai agrupa depois.. não sei se é esse o caso...
GOSTEI 0
Alex Lekao
13/06/2012
pior que nao consegui... estava justamente tentando com o case e nao funcionou.
estou tentando agora fazer com cast e convert mas tive que parar para resolver outro problema, mas ja estou retornando.
mas com o case nao consegui, teria que converter aglumas coisa que nao me lembro agora.
mesmo assim muito obrigado pela forca.
estou tentando agora fazer com cast e convert mas tive que parar para resolver outro problema, mas ja estou retornando.
mas com o case nao consegui, teria que converter aglumas coisa que nao me lembro agora.
mesmo assim muito obrigado pela forca.
GOSTEI 0
Emanoély Gura
13/06/2012
Ééé.. vc vai ter que usar cast ou datepart até.
Mas se for o caso, cola o código aqui e ajustamos isso.
Trabalho bastantinho com isso, vai que posso ajudar.
Em todo caso, boa sorte!
:)
Mas se for o caso, cola o código aqui e ajustamos isso.
Trabalho bastantinho com isso, vai que posso ajudar.
Em todo caso, boa sorte!
:)
GOSTEI 0
Alex Lekao
13/06/2012
eh camarada...
eu tentei usar o date part e nao deu certo, vou colar o codigo que coloquei para vc ver.
algumas coisas eu comentei porque estava fazendo testes... rsrsr
mais uma vez obrigado pela forca.
SELECT
TOP 500
/*CASE
WHEN DATEPART(HH,R.DTHCAD) BETWEEN 00:00:00 AND 09:00:00 THEN 1
WHEN DATEPART(HH,R.DTHCAD) BETWEEN 09:00:01 AND 10:00:00 THEN 2
WHEN DATEPART(HH,R.DTHCAD) BETWEEN 10:00:01 AND 11:00:00 THEN 3
WHEN DATEPART(HH,R.DTHCAD) BETWEEN 11:00:01 AND 12:00:00 THEN 4
WHEN DATEPART(HH,R.DTHCAD) BETWEEN 12:00:01 AND 13:00:00 THEN 5
WHEN DATEPART(HH,R.DTHCAD) BETWEEN 13:00:01 AND 14:00:00 THEN 6
WHEN DATEPART(HH,R.DTHCAD) BETWEEN 14:00:01 AND 15:00:00 THEN 7
WHEN DATEPART(HH,R.DTHCAD) BETWEEN 15:00:01 AND 16:00:00 THEN 8
WHEN DATEPART(HH,R.DTHCAD) BETWEEN 16:00:01 AND 17:00:00 THEN 9
WHEN DATEPART(HH,R.DTHCAD) BETWEEN 17:00:01 AND 18:00:00 THEN 10
WHEN DATEPART(HH,R.DTHCAD) BETWEEN 18:00:01 AND 23:59:59 THEN 11
ELSE 0
END,*/
cast(R.DTHCAD as time),
R.DTHCAD,
--R.NUMREQ,
--R.NUMNOT,
R.TOTGERAL
FROM JACSYSDB.DBO.REQVDA AS R
WHERE (1=1)
AND (R.TIPOREQ = VD)
--group by
--datepart(hh,R.DTHCAD)
--R.NUMREQ,
--R.NUMNOT,
--R.TOTGERAL
eu tentei usar o date part e nao deu certo, vou colar o codigo que coloquei para vc ver.
algumas coisas eu comentei porque estava fazendo testes... rsrsr
mais uma vez obrigado pela forca.
SELECT
TOP 500
/*CASE
WHEN DATEPART(HH,R.DTHCAD) BETWEEN 00:00:00 AND 09:00:00 THEN 1
WHEN DATEPART(HH,R.DTHCAD) BETWEEN 09:00:01 AND 10:00:00 THEN 2
WHEN DATEPART(HH,R.DTHCAD) BETWEEN 10:00:01 AND 11:00:00 THEN 3
WHEN DATEPART(HH,R.DTHCAD) BETWEEN 11:00:01 AND 12:00:00 THEN 4
WHEN DATEPART(HH,R.DTHCAD) BETWEEN 12:00:01 AND 13:00:00 THEN 5
WHEN DATEPART(HH,R.DTHCAD) BETWEEN 13:00:01 AND 14:00:00 THEN 6
WHEN DATEPART(HH,R.DTHCAD) BETWEEN 14:00:01 AND 15:00:00 THEN 7
WHEN DATEPART(HH,R.DTHCAD) BETWEEN 15:00:01 AND 16:00:00 THEN 8
WHEN DATEPART(HH,R.DTHCAD) BETWEEN 16:00:01 AND 17:00:00 THEN 9
WHEN DATEPART(HH,R.DTHCAD) BETWEEN 17:00:01 AND 18:00:00 THEN 10
WHEN DATEPART(HH,R.DTHCAD) BETWEEN 18:00:01 AND 23:59:59 THEN 11
ELSE 0
END,*/
cast(R.DTHCAD as time),
R.DTHCAD,
--R.NUMREQ,
--R.NUMNOT,
R.TOTGERAL
FROM JACSYSDB.DBO.REQVDA AS R
WHERE (1=1)
AND (R.TIPOREQ = VD)
--group by
--datepart(hh,R.DTHCAD)
--R.NUMREQ,
--R.NUMNOT,
--R.TOTGERAL
GOSTEI 0
Alex Lekao
13/06/2012
OPA... e ae... olha eu aqui novamente... rssr
entao consegui fazer... o codigo que ficou vou colar abaixo.
a unica coisa que nao entendi o que fiz de errado eh que o agrupamento parece nao estar acontecendo.
SELECT
--TOP 500
CASE
WHEN convert(varchar,R.DTHCAD,8) BETWEEN 00:00:00 AND 09:00:00 THEN 01
WHEN convert(varchar,R.DTHCAD,8) BETWEEN 09:00:01 AND 10:00:00 THEN 02
WHEN convert(varchar,R.DTHCAD,8) BETWEEN 10:00:01 AND 11:00:00 THEN 03
WHEN convert(varchar,R.DTHCAD,8) BETWEEN 11:00:01 AND 12:00:00 THEN 04
WHEN convert(varchar,R.DTHCAD,8) BETWEEN 12:00:01 AND 13:00:00 THEN 05
WHEN convert(varchar,R.DTHCAD,8) BETWEEN 13:00:01 AND 14:00:00 THEN 06
WHEN convert(varchar,R.DTHCAD,8) BETWEEN 14:00:01 AND 15:00:00 THEN 07
WHEN convert(varchar,R.DTHCAD,8) BETWEEN 15:00:01 AND 16:00:00 THEN 08
WHEN convert(varchar,R.DTHCAD,8) BETWEEN 16:00:01 AND 17:00:00 THEN 09
WHEN convert(varchar,R.DTHCAD,8) BETWEEN 17:00:01 AND 18:00:00 THEN 10
WHEN convert(varchar,R.DTHCAD,8) BETWEEN 18:00:01 AND 23:59:59 THEN 11
ELSE 00
END as hora,
--cast(R.DTHCAD as time) as tsthora1,
--convert(varchar,R.DTHCAD,8) as tsthora2,
--R.DTHCAD,
--R.NUMREQ,
--R.NUMNOT,
sum(R.TOTGERAL) as total
FROM REQVDA AS R
WHERE (1=1)
AND (R.TIPOREQ = VD)
AND (R.DATEMI = 14/06/2012)
group by
--hora
convert(varchar,R.DTHCAD,8)
--R.NUMREQ,
--R.NUMNOT,
--R.TOTGERAL
order by
--hora
convert(varchar,R.DTHCAD,8)
entao consegui fazer... o codigo que ficou vou colar abaixo.
a unica coisa que nao entendi o que fiz de errado eh que o agrupamento parece nao estar acontecendo.
SELECT
--TOP 500
CASE
WHEN convert(varchar,R.DTHCAD,8) BETWEEN 00:00:00 AND 09:00:00 THEN 01
WHEN convert(varchar,R.DTHCAD,8) BETWEEN 09:00:01 AND 10:00:00 THEN 02
WHEN convert(varchar,R.DTHCAD,8) BETWEEN 10:00:01 AND 11:00:00 THEN 03
WHEN convert(varchar,R.DTHCAD,8) BETWEEN 11:00:01 AND 12:00:00 THEN 04
WHEN convert(varchar,R.DTHCAD,8) BETWEEN 12:00:01 AND 13:00:00 THEN 05
WHEN convert(varchar,R.DTHCAD,8) BETWEEN 13:00:01 AND 14:00:00 THEN 06
WHEN convert(varchar,R.DTHCAD,8) BETWEEN 14:00:01 AND 15:00:00 THEN 07
WHEN convert(varchar,R.DTHCAD,8) BETWEEN 15:00:01 AND 16:00:00 THEN 08
WHEN convert(varchar,R.DTHCAD,8) BETWEEN 16:00:01 AND 17:00:00 THEN 09
WHEN convert(varchar,R.DTHCAD,8) BETWEEN 17:00:01 AND 18:00:00 THEN 10
WHEN convert(varchar,R.DTHCAD,8) BETWEEN 18:00:01 AND 23:59:59 THEN 11
ELSE 00
END as hora,
--cast(R.DTHCAD as time) as tsthora1,
--convert(varchar,R.DTHCAD,8) as tsthora2,
--R.DTHCAD,
--R.NUMREQ,
--R.NUMNOT,
sum(R.TOTGERAL) as total
FROM REQVDA AS R
WHERE (1=1)
AND (R.TIPOREQ = VD)
AND (R.DATEMI = 14/06/2012)
group by
--hora
convert(varchar,R.DTHCAD,8)
--R.NUMREQ,
--R.NUMNOT,
--R.TOTGERAL
order by
--hora
convert(varchar,R.DTHCAD,8)
GOSTEI 0
Bruno Leandro
13/06/2012
Ola Alex, tente desta forma.
SELECT
TOP 500
CASE
WHEN DATEPART(HHmi,R.DTHCAD) BETWEEN 0000 AND 0900 THEN 1
WHEN DATEPART(HHmi,R.DTHCAD) BETWEEN 0901 AND 1000 THEN 2
WHEN DATEPART(HHmi,R.DTHCAD) BETWEEN 1001 AND 1100 THEN 3
WHEN DATEPART(HHmi,R.DTHCAD) BETWEEN 1101 AND 1200 THEN 4
WHEN DATEPART(HHmi,R.DTHCAD) BETWEEN 1201 AND 1300 THEN 5
WHEN DATEPART(HHmi,R.DTHCAD) BETWEEN 1301 AND 1400 THEN 6
WHEN DATEPART(HHmi,R.DTHCAD) BETWEEN 1401 AND 1500 THEN 7
WHEN DATEPART(HHmi,R.DTHCAD) BETWEEN 1501 AND 1600 THEN 8
WHEN DATEPART(HHmi,R.DTHCAD) BETWEEN 1601 AND 1700 THEN 9
WHEN DATEPART(HHmi,R.DTHCAD) BETWEEN 1701 AND 1800 THEN 10
WHEN DATEPART(HHmi,R.DTHCAD) BETWEEN 1801 AND 2359 THEN 11
ELSE 0
END,
cast(R.DTHCAD as time),
R.DTHCAD,
--R.NUMREQ,
--R.NUMNOT,
R.TOTGERAL
FROM JACSYSDB.DBO.REQVDA AS R
WHERE (1=1)
AND (R.TIPOREQ = VD)
group by
1
--R.NUMREQ,
--R.NUMNOT,
--R.TOTGERAL
SELECT
TOP 500
CASE
WHEN DATEPART(HHmi,R.DTHCAD) BETWEEN 0000 AND 0900 THEN 1
WHEN DATEPART(HHmi,R.DTHCAD) BETWEEN 0901 AND 1000 THEN 2
WHEN DATEPART(HHmi,R.DTHCAD) BETWEEN 1001 AND 1100 THEN 3
WHEN DATEPART(HHmi,R.DTHCAD) BETWEEN 1101 AND 1200 THEN 4
WHEN DATEPART(HHmi,R.DTHCAD) BETWEEN 1201 AND 1300 THEN 5
WHEN DATEPART(HHmi,R.DTHCAD) BETWEEN 1301 AND 1400 THEN 6
WHEN DATEPART(HHmi,R.DTHCAD) BETWEEN 1401 AND 1500 THEN 7
WHEN DATEPART(HHmi,R.DTHCAD) BETWEEN 1501 AND 1600 THEN 8
WHEN DATEPART(HHmi,R.DTHCAD) BETWEEN 1601 AND 1700 THEN 9
WHEN DATEPART(HHmi,R.DTHCAD) BETWEEN 1701 AND 1800 THEN 10
WHEN DATEPART(HHmi,R.DTHCAD) BETWEEN 1801 AND 2359 THEN 11
ELSE 0
END,
cast(R.DTHCAD as time),
R.DTHCAD,
--R.NUMREQ,
--R.NUMNOT,
R.TOTGERAL
FROM JACSYSDB.DBO.REQVDA AS R
WHERE (1=1)
AND (R.TIPOREQ = VD)
group by
1
--R.NUMREQ,
--R.NUMNOT,
--R.TOTGERAL
GOSTEI 0
Alex Lekao
13/06/2012
Oooopa... eu aqui novamente....
camarada consegui resolver o agrupamento, repeti o case no group by e no order by, vou colar novamente o codigo abaixo.
agora se houver uma maneira de otimizar o script ou outra forma de faze-lo, algo que fique melhor mais profissional, etc.
aceito sugestoes... rsrsr
eh isso abraco e muito obrigado.
SELECT
CASE
WHEN convert(varchar,R.DTHCAD,8) BETWEEN 00:00:00 AND 09:00:00 THEN 01
WHEN convert(varchar,R.DTHCAD,8) BETWEEN 09:00:01 AND 10:00:00 THEN 02
WHEN convert(varchar,R.DTHCAD,8) BETWEEN 10:00:01 AND 11:00:00 THEN 03
WHEN convert(varchar,R.DTHCAD,8) BETWEEN 11:00:01 AND 12:00:00 THEN 04
WHEN convert(varchar,R.DTHCAD,8) BETWEEN 12:00:01 AND 13:00:00 THEN 05
WHEN convert(varchar,R.DTHCAD,8) BETWEEN 13:00:01 AND 14:00:00 THEN 06
WHEN convert(varchar,R.DTHCAD,8) BETWEEN 14:00:01 AND 15:00:00 THEN 07
WHEN convert(varchar,R.DTHCAD,8) BETWEEN 15:00:01 AND 16:00:00 THEN 08
WHEN convert(varchar,R.DTHCAD,8) BETWEEN 16:00:01 AND 17:00:00 THEN 09
WHEN convert(varchar,R.DTHCAD,8) BETWEEN 17:00:01 AND 18:00:00 THEN 10
WHEN convert(varchar,R.DTHCAD,8) BETWEEN 18:00:01 AND 23:59:59 THEN 11
ELSE 00
END as hora,
--cast(R.DTHCAD as time) as tsthora1,
--convert(varchar,R.DTHCAD,8) as tsthora2,
--R.DTHCAD,
--R.NUMREQ,
--R.NUMNOT,
sum(R.TOTGERAL) as total
FROM REQVDA AS R
WHERE (1=1)
AND (R.TIPOREQ = VD)
AND (R.DATEMI = 14/06/2012)
group by
CASE
WHEN convert(varchar,R.DTHCAD,8) BETWEEN 00:00:00 AND 09:00:00 THEN 01
WHEN convert(varchar,R.DTHCAD,8) BETWEEN 09:00:01 AND 10:00:00 THEN 02
WHEN convert(varchar,R.DTHCAD,8) BETWEEN 10:00:01 AND 11:00:00 THEN 03
WHEN convert(varchar,R.DTHCAD,8) BETWEEN 11:00:01 AND 12:00:00 THEN 04
WHEN convert(varchar,R.DTHCAD,8) BETWEEN 12:00:01 AND 13:00:00 THEN 05
WHEN convert(varchar,R.DTHCAD,8) BETWEEN 13:00:01 AND 14:00:00 THEN 06
WHEN convert(varchar,R.DTHCAD,8) BETWEEN 14:00:01 AND 15:00:00 THEN 07
WHEN convert(varchar,R.DTHCAD,8) BETWEEN 15:00:01 AND 16:00:00 THEN 08
WHEN convert(varchar,R.DTHCAD,8) BETWEEN 16:00:01 AND 17:00:00 THEN 09
WHEN convert(varchar,R.DTHCAD,8) BETWEEN 17:00:01 AND 18:00:00 THEN 10
WHEN convert(varchar,R.DTHCAD,8) BETWEEN 18:00:01 AND 23:59:59 THEN 11
ELSE 00
END
--hora
--convert(varchar,R.DTHCAD,8)
--R.NUMREQ,
--R.NUMNOT,
--R.TOTGERAL
order by
CASE
WHEN convert(varchar,R.DTHCAD,8) BETWEEN 00:00:00 AND 09:00:00 THEN 01
WHEN convert(varchar,R.DTHCAD,8) BETWEEN 09:00:01 AND 10:00:00 THEN 02
WHEN convert(varchar,R.DTHCAD,8) BETWEEN 10:00:01 AND 11:00:00 THEN 03
WHEN convert(varchar,R.DTHCAD,8) BETWEEN 11:00:01 AND 12:00:00 THEN 04
WHEN convert(varchar,R.DTHCAD,8) BETWEEN 12:00:01 AND 13:00:00 THEN 05
WHEN convert(varchar,R.DTHCAD,8) BETWEEN 13:00:01 AND 14:00:00 THEN 06
WHEN convert(varchar,R.DTHCAD,8) BETWEEN 14:00:01 AND 15:00:00 THEN 07
WHEN convert(varchar,R.DTHCAD,8) BETWEEN 15:00:01 AND 16:00:00 THEN 08
WHEN convert(varchar,R.DTHCAD,8) BETWEEN 16:00:01 AND 17:00:00 THEN 09
WHEN convert(varchar,R.DTHCAD,8) BETWEEN 17:00:01 AND 18:00:00 THEN 10
WHEN convert(varchar,R.DTHCAD,8) BETWEEN 18:00:01 AND 23:59:59 THEN 11
ELSE 00
END
--hora
--convert(varchar,R.DTHCAD,8)
camarada consegui resolver o agrupamento, repeti o case no group by e no order by, vou colar novamente o codigo abaixo.
agora se houver uma maneira de otimizar o script ou outra forma de faze-lo, algo que fique melhor mais profissional, etc.
aceito sugestoes... rsrsr
eh isso abraco e muito obrigado.
SELECT
CASE
WHEN convert(varchar,R.DTHCAD,8) BETWEEN 00:00:00 AND 09:00:00 THEN 01
WHEN convert(varchar,R.DTHCAD,8) BETWEEN 09:00:01 AND 10:00:00 THEN 02
WHEN convert(varchar,R.DTHCAD,8) BETWEEN 10:00:01 AND 11:00:00 THEN 03
WHEN convert(varchar,R.DTHCAD,8) BETWEEN 11:00:01 AND 12:00:00 THEN 04
WHEN convert(varchar,R.DTHCAD,8) BETWEEN 12:00:01 AND 13:00:00 THEN 05
WHEN convert(varchar,R.DTHCAD,8) BETWEEN 13:00:01 AND 14:00:00 THEN 06
WHEN convert(varchar,R.DTHCAD,8) BETWEEN 14:00:01 AND 15:00:00 THEN 07
WHEN convert(varchar,R.DTHCAD,8) BETWEEN 15:00:01 AND 16:00:00 THEN 08
WHEN convert(varchar,R.DTHCAD,8) BETWEEN 16:00:01 AND 17:00:00 THEN 09
WHEN convert(varchar,R.DTHCAD,8) BETWEEN 17:00:01 AND 18:00:00 THEN 10
WHEN convert(varchar,R.DTHCAD,8) BETWEEN 18:00:01 AND 23:59:59 THEN 11
ELSE 00
END as hora,
--cast(R.DTHCAD as time) as tsthora1,
--convert(varchar,R.DTHCAD,8) as tsthora2,
--R.DTHCAD,
--R.NUMREQ,
--R.NUMNOT,
sum(R.TOTGERAL) as total
FROM REQVDA AS R
WHERE (1=1)
AND (R.TIPOREQ = VD)
AND (R.DATEMI = 14/06/2012)
group by
CASE
WHEN convert(varchar,R.DTHCAD,8) BETWEEN 00:00:00 AND 09:00:00 THEN 01
WHEN convert(varchar,R.DTHCAD,8) BETWEEN 09:00:01 AND 10:00:00 THEN 02
WHEN convert(varchar,R.DTHCAD,8) BETWEEN 10:00:01 AND 11:00:00 THEN 03
WHEN convert(varchar,R.DTHCAD,8) BETWEEN 11:00:01 AND 12:00:00 THEN 04
WHEN convert(varchar,R.DTHCAD,8) BETWEEN 12:00:01 AND 13:00:00 THEN 05
WHEN convert(varchar,R.DTHCAD,8) BETWEEN 13:00:01 AND 14:00:00 THEN 06
WHEN convert(varchar,R.DTHCAD,8) BETWEEN 14:00:01 AND 15:00:00 THEN 07
WHEN convert(varchar,R.DTHCAD,8) BETWEEN 15:00:01 AND 16:00:00 THEN 08
WHEN convert(varchar,R.DTHCAD,8) BETWEEN 16:00:01 AND 17:00:00 THEN 09
WHEN convert(varchar,R.DTHCAD,8) BETWEEN 17:00:01 AND 18:00:00 THEN 10
WHEN convert(varchar,R.DTHCAD,8) BETWEEN 18:00:01 AND 23:59:59 THEN 11
ELSE 00
END
--hora
--convert(varchar,R.DTHCAD,8)
--R.NUMREQ,
--R.NUMNOT,
--R.TOTGERAL
order by
CASE
WHEN convert(varchar,R.DTHCAD,8) BETWEEN 00:00:00 AND 09:00:00 THEN 01
WHEN convert(varchar,R.DTHCAD,8) BETWEEN 09:00:01 AND 10:00:00 THEN 02
WHEN convert(varchar,R.DTHCAD,8) BETWEEN 10:00:01 AND 11:00:00 THEN 03
WHEN convert(varchar,R.DTHCAD,8) BETWEEN 11:00:01 AND 12:00:00 THEN 04
WHEN convert(varchar,R.DTHCAD,8) BETWEEN 12:00:01 AND 13:00:00 THEN 05
WHEN convert(varchar,R.DTHCAD,8) BETWEEN 13:00:01 AND 14:00:00 THEN 06
WHEN convert(varchar,R.DTHCAD,8) BETWEEN 14:00:01 AND 15:00:00 THEN 07
WHEN convert(varchar,R.DTHCAD,8) BETWEEN 15:00:01 AND 16:00:00 THEN 08
WHEN convert(varchar,R.DTHCAD,8) BETWEEN 16:00:01 AND 17:00:00 THEN 09
WHEN convert(varchar,R.DTHCAD,8) BETWEEN 17:00:01 AND 18:00:00 THEN 10
WHEN convert(varchar,R.DTHCAD,8) BETWEEN 18:00:01 AND 23:59:59 THEN 11
ELSE 00
END
--hora
--convert(varchar,R.DTHCAD,8)
GOSTEI 0
Alex Lekao
13/06/2012
Oi Bruno, bom dia!!!
Cara nao vi seu post quando postei a resposta...
entao vou testar com seu codigo tbm para verificar como fica.
Brigadao pela foca.
Cara nao vi seu post quando postei a resposta...
entao vou testar com seu codigo tbm para verificar como fica.
Brigadao pela foca.
GOSTEI 0
Alex Lekao
13/06/2012
Oi Bruno, bom dia!!!
Deu mensagem que HHmi nao eh uma opcao datepart reconhecida.
Mais uma vez muito obrigado.
Deu mensagem que HHmi nao eh uma opcao datepart reconhecida.
Mais uma vez muito obrigado.
GOSTEI 0
Emanoély Gura
13/06/2012
Éé Alex.. assim num vai rolar..
Faz assim:
WHEN convert(date,R.DTHCAD,108) BETWEEN 00:00:00 AND 09:00:00 THEN 1
Veja que formato você tá salvando as datas no banco... aaaa-mm-dd ou aa-mm-dd pra daí sim usar o convert certo.
Qualquer dúvida, de uma olhada aqui óó:
http://msdn.microsoft.com/pt-br/library/ms187928.aspx
Diz aí se rolou ou não.
Abrass
Faz assim:
WHEN convert(date,R.DTHCAD,108) BETWEEN 00:00:00 AND 09:00:00 THEN 1
Veja que formato você tá salvando as datas no banco... aaaa-mm-dd ou aa-mm-dd pra daí sim usar o convert certo.
Qualquer dúvida, de uma olhada aqui óó:
http://msdn.microsoft.com/pt-br/library/ms187928.aspx
Diz aí se rolou ou não.
Abrass
GOSTEI 0
Emanoély Gura
13/06/2012
Num fico como link ali, mas num dá nada..
Observe aquela tabela que tem de Estilo de data e hora.. acho que ajuda!
:)
Observe aquela tabela que tem de Estilo de data e hora.. acho que ajuda!
:)
GOSTEI 0
Alex Lekao
13/06/2012
Oi Manu, boa tarde!!!
Entao com esse convert que vc postou nao da certo porque vai converter datahora para data, ai vai usar somente as datas.
to dando uma olhada no link que mandou.
Obrigado.
Entao com esse convert que vc postou nao da certo porque vai converter datahora para data, ai vai usar somente as datas.
to dando uma olhada no link que mandou.
Obrigado.
GOSTEI 0
Emanoély Gura
13/06/2012
Ahh beleza..
É, vai ter q achar o convert certo pro teu formato de data. Espero que o link ajude então...
:)
Conta aqui se deu certo..
É, vai ter q achar o convert certo pro teu formato de data. Espero que o link ajude então...
:)
Conta aqui se deu certo..
GOSTEI 0
Alex Lekao
13/06/2012
blz...
um dos posts que cologuei acima eu ja tinha conseguido o formato adequado.
so estava com problema com o agrupamento, mas usei o mesmo case no agrupamento e na ordenacao e deu certo.
agora so precisaria saber se esse codigo ta bom ou se da para melhorar por causa de desempenho essas coisas...
mais uma vez... muito obrigado.
um dos posts que cologuei acima eu ja tinha conseguido o formato adequado.
so estava com problema com o agrupamento, mas usei o mesmo case no agrupamento e na ordenacao e deu certo.
agora so precisaria saber se esse codigo ta bom ou se da para melhorar por causa de desempenho essas coisas...
mais uma vez... muito obrigado.
GOSTEI 0
Emanoély Gura
13/06/2012
ahh taaah.. posta o código de novo??
:)
:)
GOSTEI 0
Emanoély Gura
13/06/2012
Não precisa.. já achei o certo.. haha
GOSTEI 0
Emanoély Gura
13/06/2012
Seguinte.. por que vc não trabalha com uma tabela auxiliar??
Ou outra sugestão, tranforma teu select em udf.. e ai depois no select da udf, usa o group by e order by..
O que vc acha?? Serve no teu caso??
Ou outra sugestão, tranforma teu select em udf.. e ai depois no select da udf, usa o group by e order by..
O que vc acha?? Serve no teu caso??
GOSTEI 0
Emanoély Gura
13/06/2012
Outra sugestão..
Transforme esse select em view.. e depois ordena/agrupa o select da view.
;)
Transforme esse select em view.. e depois ordena/agrupa o select da view.
;)
GOSTEI 0
Alex Lekao
13/06/2012
Oi.. bom dia!!!
muito obrigado pelas dicas...
Cara... apesar de eu ter feito curso... sou muito novato neste mundo do SQL e do SQL Server...
entao nao conheco bem alguns detalhes tecnicos a respeito, e algumas das coisas que vc sugeriu eu nao conheco bem como faz...
mas vou pesquisar a respeito e ver o que consigo como opcao ao script montado.
Muito obrigado mesmo pela forca e empenho em me ajudar, sua atitude amina quem ta comecando, parabens!!!
Obrigadno novamente.
Abraco.
muito obrigado pelas dicas...
Cara... apesar de eu ter feito curso... sou muito novato neste mundo do SQL e do SQL Server...
entao nao conheco bem alguns detalhes tecnicos a respeito, e algumas das coisas que vc sugeriu eu nao conheco bem como faz...
mas vou pesquisar a respeito e ver o que consigo como opcao ao script montado.
Muito obrigado mesmo pela forca e empenho em me ajudar, sua atitude amina quem ta comecando, parabens!!!
Obrigadno novamente.
Abraco.
GOSTEI 0
Emanoély Gura
13/06/2012
De nada!
E qualquer coisa pergunte mesmo... Estamos aí pra isso..
Abraço! :)
E qualquer coisa pergunte mesmo... Estamos aí pra isso..
Abraço! :)
GOSTEI 0
Marcos
13/06/2012
SELECT
TO_CHAR(DATA,'HH24') INTEVALO_DATA
group by DATA
TO_CHAR(DATA,'HH24') INTEVALO_DATA
group by DATA
GOSTEI 0