Nesesito sumar unos valores y no me resulta

14/09/2006 - 01:05 por jmery | Informe spam
Hola:
Tengo que realizar una consulta que reste 2 fechas y me de la diferencia
en horas y dependiendo de la cantidad de horas le asigno un valor. Eso lo
pude lograr con un CASE, pero necesito sacar el promedio de esos resultados.
Lo intenté con avg(...) pero no me resulta. Ahi va la consulta donde 'nota'
no es un campo. si alguien me puede ayudar, gracias. La idea que me de el
promedio de 'notas'.

select nota case
when DATEDIFF(hh, dateassigned, eventdate)<12 then 70
when DATEDIFF(hh, dateassigned, eventdate)> and DATEDIFF(hh,
dateassigned, eventdate)<# then 60
when DATEDIFF(hh, dateassigned, eventdate)>$ and DATEDIFF(hh,
dateassigned, eventdate)<5 then 50
when DATEDIFF(hh, dateassigned, eventdate)>6 and DATEDIFF(hh,
dateassigned, eventdate)<G then 40
when DATEDIFF(hh, dateassigned, eventdate)>H then 20 end

from tblafassignment a left join tblAFAssignmentEvent e on
a.assignmentid=e.assignmentid
where a.shopperid'159 and originalValue='assigned' and newvalue='confirmed'
 

Leer las respuestas

#1 Alejandro Mesa
14/09/2006 - 01:46 | Informe spam
jmery,

Trata usando esa consulta como una tabla derivada.

select avg(nota)
from
(
select ... -- aqui pon tu sentencia "select"
) as t



AMB

"jmery" wrote:

Hola:
Tengo que realizar una consulta que reste 2 fechas y me de la diferencia
en horas y dependiendo de la cantidad de horas le asigno un valor. Eso lo
pude lograr con un CASE, pero necesito sacar el promedio de esos resultados.
Lo intenté con avg(...) pero no me resulta. Ahi va la consulta donde 'nota'
no es un campo. si alguien me puede ayudar, gracias. La idea que me de el
promedio de 'notas'.

select nota > case
when DATEDIFF(hh, dateassigned, eventdate)<12 then 70
when DATEDIFF(hh, dateassigned, eventdate)> and DATEDIFF(hh,
dateassigned, eventdate)<# then 60
when DATEDIFF(hh, dateassigned, eventdate)>$ and DATEDIFF(hh,
dateassigned, eventdate)<5 then 50
when DATEDIFF(hh, dateassigned, eventdate)>6 and DATEDIFF(hh,
dateassigned, eventdate)<G then 40
when DATEDIFF(hh, dateassigned, eventdate)>H then 20 end

from tblafassignment a left join tblAFAssignmentEvent e on
a.assignmentid=e.assignmentid
where a.shopperid'159 and originalValue='assigned' and newvalue='confirmed'

Preguntas similares