hacer la media

18/05/2004 - 12:05 por Comando_Calabera | Informe spam
Hay alguna forma de hacer la media del resultado que me devuelve una
consulta???

el codigo que tengo es este, solo tendria que canviar la funcion SUM por la
de media, pero no encuentro cual es si es que existe

select substring(convert(char(10),datahora,108),1,2),sum(PreuVenda)
from thistoric
where idlocal (select idlocal from tlocal
where nomlocal like
(select nomlocal from tlocal
where nomlocal like 'Peque'))
and idproducte = 16
and substring(convert(char(10),datahora,108),1,2) = 22
and convert(char(10),datahora,103) like '07/05/2004'
group by substring(convert(char(10),datahora,108),1,2)


gracias un saludo

Preguntas similare

Leer las respuestas

#1 Comando_Calabera
18/05/2004 - 13:04 | Informe spam
Ys esta
lo encontre
es la funcion AVG(expresion)
de todas formas muchas gracias


"Comando_Calabera" escribió en el mensaje
news:
Hay alguna forma de hacer la media del resultado que me devuelve una
consulta???

el codigo que tengo es este, solo tendria que canviar la funcion SUM por


la
de media, pero no encuentro cual es si es que existe

select substring(convert(char(10),datahora,108),1,2),sum(PreuVenda)
from thistoric
where idlocal > (select idlocal from tlocal
where nomlocal like
(select nomlocal from tlocal
where nomlocal like 'Peque'))
and idproducte = 16
and substring(convert(char(10),datahora,108),1,2) = 22
and convert(char(10),datahora,103) like '07/05/2004'
group by substring(convert(char(10),datahora,108),1,2)


gracias un saludo


Respuesta Responder a este mensaje
#2 Javier Loria
18/05/2004 - 14:16 | Informe spam
Hola:
A riesgo de pecar de entrometido, porque ya te autorespondiste, porque
haces 2 consultas anidadas una dentro de otra?, la primera la entiendo, pero
la segunda no tanto. Creo que el siguiente codigo es mas simple y mas
rapido:
=SELECT substring(convert(char(10),thistoric.datahora,108),1,2)
, AVG(thistoric.PreuVenda)
FROM thistoric
JOIN tlocal
ON thistoric.idlocal=tlocal.idlocal
WHERE tlocal.nomlocal like 'Peque'
AND thistoric.idproducte = 16
AND substring(convert(char(10),thistoric.datahora,108),1,2) = 22
AND convert(char(10),thistoric.datahora,103) like '07/05/2004'
GROUP BY substring(convert(char(10),thistoric.datahora,108),1,2)
= Adicionalmente, como esta una tabla de historicos, asumo que tiene
muchas filas, si este es el caso, yo reconsideraria el uso de funciones
sobre la columna fecha. Podrias reexpresas las condicion de fecha/hora a
algo como:
=AND DataHora BETWEEN '2004-05-07 22:00:00.000'
AND '2004-05-07 22:59:59.999'
= Esta sintaxis le permite al servidor usar de forma eficiente los
indices.
Saludos,


Javier Loria
Costa Rica
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda.

Comando_Calabera escribio:
Ys esta
lo encontre
es la funcion AVG(expresion)
de todas formas muchas gracias


"Comando_Calabera" escribió en el mensaje
news:
Hay alguna forma de hacer la media del resultado que me devuelve una
consulta???

el codigo que tengo es este, solo tendria que canviar la funcion SUM
por la de media, pero no encuentro cual es si es que existe

select substring(convert(char(10),datahora,108),1,2),sum(PreuVenda)
from thistoric
where idlocal >> (select idlocal from tlocal
where nomlocal like
(select nomlocal from tlocal
where nomlocal like 'Peque'))
and idproducte = 16
and substring(convert(char(10),datahora,108),1,2) = 22
and convert(char(10),datahora,103) like '07/05/2004'
group by substring(convert(char(10),datahora,108),1,2)


gracias un saludo
Respuesta Responder a este mensaje
#3 Comando_Calabera
18/05/2004 - 15:07 | Informe spam
Gracias javier, voy a ver como funciona todo eso y a probar de implementarlo
muchas gracias un saludo



"Javier Loria" escribió en el mensaje
news:%
Hola:
A riesgo de pecar de entrometido, porque ya te autorespondiste, porque
haces 2 consultas anidadas una dentro de otra?, la primera la entiendo,


pero
la segunda no tanto. Creo que el siguiente codigo es mas simple y mas
rapido:
=> SELECT substring(convert(char(10),thistoric.datahora,108),1,2)
, AVG(thistoric.PreuVenda)
FROM thistoric
JOIN tlocal
ON thistoric.idlocal=tlocal.idlocal
WHERE tlocal.nomlocal like 'Peque'
AND thistoric.idproducte = 16
AND substring(convert(char(10),thistoric.datahora,108),1,2) = 22
AND convert(char(10),thistoric.datahora,103) like '07/05/2004'
GROUP BY substring(convert(char(10),thistoric.datahora,108),1,2)
=> Adicionalmente, como esta una tabla de historicos, asumo que tiene
muchas filas, si este es el caso, yo reconsideraria el uso de funciones
sobre la columna fecha. Podrias reexpresas las condicion de fecha/hora a
algo como:
=> AND DataHora BETWEEN '2004-05-07 22:00:00.000'
AND '2004-05-07 22:59:59.999'
=> Esta sintaxis le permite al servidor usar de forma eficiente los
indices.
Saludos,


Javier Loria
Costa Rica
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda.

Comando_Calabera escribio:
> Ys esta
> lo encontre
> es la funcion AVG(expresion)
> de todas formas muchas gracias
>
>
> "Comando_Calabera" escribió en el mensaje
> news:
>> Hay alguna forma de hacer la media del resultado que me devuelve una
>> consulta???
>>
>> el codigo que tengo es este, solo tendria que canviar la funcion SUM
>> por la de media, pero no encuentro cual es si es que existe
>>
>> select substring(convert(char(10),datahora,108),1,2),sum(PreuVenda)
>> from thistoric
>> where idlocal > >> (select idlocal from tlocal
>> where nomlocal like
>> (select nomlocal from tlocal
>> where nomlocal like 'Peque'))
>> and idproducte = 16
>> and substring(convert(char(10),datahora,108),1,2) = 22
>> and convert(char(10),datahora,103) like '07/05/2004'
>> group by substring(convert(char(10),datahora,108),1,2)
>>
>>
>> gracias un saludo


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida