Uso de HAVING

23/01/2006 - 13:23 por Pedro Echavarria | Informe spam
Tengo una consulta como esta:

select cliente, balance=(select sum(t.valor) from transaccion t where
t.cliente=cl.cliente) from cliente cl


Pero quiero agregarle un filtro con HAVING (pensaba que servia para eso):

select cliente, balance=(select sum(t.valor) from transaccion t where
t.cliente=cl.cliente) from cliente cl
having balance>0

para que solo me devuelva los clientes que tienen balances positivos.


Pero no me lo acepta . Pensaba que servia para eso. Si no es para
eso, para que sirve entonces el HAVING ?

Como puedo resolver un caso como este (ojo caso cuando debe ponerse una
condicion de filtro basado en una columna que sea una expresion o subquery)?


Agradezco cualquier ayuda .


Pedro

Preguntas similare

Leer las respuestas

#1 Juan Carlos
23/01/2006 - 15:20 | Informe spam
Si lo utilizas de esta forma te funcionaria

select cliente, balance=(select sum(t.valor) from transaccion t where
t.cliente=cl.cliente having sum(T.valor)>0) from cliente cl

Saludos

"Pedro Echavarria" escribió en el mensaje
news:
Tengo una consulta como esta:

select cliente, balance=(select sum(t.valor) from transaccion t where
t.cliente=cl.cliente) from cliente cl


Pero quiero agregarle un filtro con HAVING (pensaba que servia para eso):

select cliente, balance=(select sum(t.valor) from transaccion t where
t.cliente=cl.cliente) from cliente cl
having balance>0

para que solo me devuelva los clientes que tienen balances positivos.


Pero no me lo acepta . Pensaba que servia para eso. Si no es para
eso, para que sirve entonces el HAVING ?

Como puedo resolver un caso como este (ojo caso cuando debe ponerse una
condicion de filtro basado en una columna que sea una expresion o
subquery)?


Agradezco cualquier ayuda .


Pedro

Respuesta Responder a este mensaje
#2 Alfredo Novoa
23/01/2006 - 17:42 | Informe spam
On Mon, 23 Jan 2006 09:20:06 -0500, "Juan Carlos"
wrote:

Si lo utilizas de esta forma te funcionaria

select cliente, balance=(select sum(t.valor) from transaccion t where
t.cliente=cl.cliente having sum(T.valor)>0) from cliente cl



Y esto también funcionaría:

select cliente,sum(valor) as balance from transaccion having
sum(valor)>0


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