Testes condicionais em SQl Server 2008

SQL Server

09/10/2013

Tenho um horario(tbl.horario) que preciso testar em qual intervalo de tempo está cadastrado (tbl.intervalo) e deve retornar um tempo para cada intervalo.
Porém existem alguns que tem mais de um tempo cadastrado e preciso fazer uma média entre esses...
Mais ou menos assim

//Achando o horario
Select hrIni from tbl.horario

//Achando o intervalo de horario do periodo, aqui é cadastrado a hora que começa e termina cada faixa de horário
Select hrIni, hrFim from tbl.periodo

//Achando o tempo total por intervalo que é a soma de dois campos
Select (tmpIni + tmpFim)as Tempo from intervalo group by codInt
Aqui deveria retornar intervalo : 10 tempo: 50 por exemplo uma linha só.. preciso testar se retornou mais de uma linha se sim fazer uma média entre os tempos.
E unir esses selects distintos.
Cássia Freitas

Cássia Freitas

Curtidas 0

Respostas

Jair N.

Jair N.

09/10/2013

Bom Dia, pelo que entendi seria algo asim:

SELECT CASE WHEN (tbl_atl.tmpFim IS NOT NULL) AND (tbl_atl.tmpIni < tbl_atl.tmpFim) THEN (tbl_atl.tmpIni + tbl_atl.tmpFim)
ELSE (DATEDIFF(DAYOFYEAR, tbl_atl.horario,(SELECT TOP 1 tbl_prx.tmpIni FROM horario tbl_prx WHERE (tbl_prx.tmpIni > divulgacao.tmpIni) ORDER BY tbl_prx.tmpIni)))
END AS periodo
FROM horario tbl_atl
ORDER BY tbl_atl.tmpIni


Tenho um horario(tbl.horario) que preciso testar em qual intervalo de tempo está cadastrado (tbl.intervalo) e deve retornar um tempo para cada intervalo.
Porém existem alguns que tem mais de um tempo cadastrado e preciso fazer uma média entre esses...
Mais ou menos assim

//Achando o horario
Select hrIni from tbl.horario

//Achando o intervalo de horario do periodo, aqui é cadastrado a hora que começa e termina cada faixa de horário
Select hrIni, hrFim from tbl.periodo

//Achando o tempo total por intervalo que é a soma de dois campos
Select (tmpIni + tmpFim)as Tempo from intervalo group by codInt
Aqui deveria retornar intervalo : 10 tempo: 50 por exemplo uma linha só.. preciso testar se retornou mais de uma linha se sim fazer uma média entre os tempos.
E unir esses selects distintos.
GOSTEI 0
Alex Lekao

Alex Lekao

09/10/2013

Nossa... eu ainda nao consegui entender bem o que esta querendo.

possivelmente vai ter que usar subselects para conseguir o resultado esperado.

mas eu precisaria analisar um pouco mais porque nao estou conseguindo entender bem... rsrsr
GOSTEI 0
Mariana Carvalho

Mariana Carvalho

09/10/2013

Nossa... eu ainda nao consegui entender bem o que esta querendo.

possivelmente vai ter que usar subselects para conseguir o resultado esperado.

mas eu precisaria analisar um pouco mais porque nao estou conseguindo entender bem... rsrsr


tambem achei bem complexo o select.
GOSTEI 0
Alex Lekao

Alex Lekao

09/10/2013

entao... eu nao tenho certeza da complexidade, mas gostaria de um pouco mais de detalhas a respeito do que ela esta querendo fazer, para ver se consigo ajudar de alguma forma. rsrs
GOSTEI 0
POSTAR