Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

problema con having

Estas en el tema de problema con having en el foro de SQL Server en Foros del Web. que tal a tod@s espero se la esten pasando bien... tengo este problema, necesito obtener el total de registros de mi tabla 'revision_avaluo', que cumplan ...
  #1 (permalink)  
Antiguo 08/11/2006, 17:14
 
Fecha de Ingreso: agosto-2004
Mensajes: 296
Antigüedad: 19 años, 9 meses
Puntos: 0
problema con having

que tal a tod@s espero se la esten pasando bien...

tengo este problema, necesito obtener el total de registros de mi tabla 'revision_avaluo', que cumplan con las clausulas where escritas ahi abajo, es decir, que los registros de los avaluos de la tabla 'revision_avaluo', sean los mismos que estan en la tabla 'operacion' y que en 'operacion', en la columna OPE_FK_PER_VALUADOR coincidan con ese valor(30119).... bueno, hasta ahi todo bien,si me trae los registros(30), pero, de la tabla 'rev_avaluo', solo necesito los registros que solo se encuentran una vez (count(rev.no_avaluo) = 1) y que cumplen las condiciones de rev.aceptado = 1...
por eso le puse el having a mi consulta, pero no me arroja nada, y ya cheque manualmente y si tengo registros que cumplen con las condiciones del where y del join y que solo se encuentran una vez en la tabla 'rev_avaluo', es decir, segun yo , esta consulta me deberia enviar 15,.... pero no se en que estoy mal.....

aqui esta mi consulta:

select count(rev.no_avaluo)
from revision_avaluo as rev
left join operacion as ope on ope.OPE_FK_PER_VALUADOR = 30119
where rev.no_avaluo = ope.ope_cve_operacion and rev.aceptado = 1
having count(rev.no_avaluo) = 1

espero haver podido explicar bien mi problema, y que alguien me pueda ayudar... de todos modos voy a seguir intentando ver en que anda mal...

muchas gracias a todos
  #2 (permalink)  
Antiguo 09/11/2006, 08:35
Avatar de Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 19 años, 4 meses
Puntos: 38
y mediante que campo estas agrupando??? (Group by)
porque esta asi el join??? con el valor fijo y las operaciones de union en el where??
segun yo deberia ser alreves... osease en el On deben ir las expresiones de union entre las tablas y en el where las condiciones para seleccionar los registros... y el having funciona en base al agrupamiento que se declara en el group by... como ves???

entonces quedaria algo como....

Código:
Select  rev.no_avaluo 
       ,count(rev.no_avaluo) 
From    revision_avaluo as rev
Left join 
        operacion as ope 
On      rev.no_avaluo = ope.ope_cve_operacion  And 
        rev.aceptado = 1 
Where   ope.OPE_FK_PER_VALUADOR = 30119
Group by
        rev.no_avaluo
Having  count(rev.no_avaluo) = 1
__________________
La sencillez y naturalidad son el supremo y último fin de la cultura...
--
MCTS : SQL Server 2008, .NET Framework 3.5, ASP.NET Applications.

Última edición por Andres95; 09/11/2006 a las 08:42
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:04.