Testes condicionais em SQl Server 2008
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.
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
Curtidas 0
Respostas
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
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.
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
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
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
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
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
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