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

Select anidadas

Estas en el tema de Select anidadas en el foro de SQL Server en Foros del Web. Tengo una superduda en una consulta SELECT, os la cuento para ver si alguien me puede ayudar: Tengo una serie de registros de la forma... ...
  #1 (permalink)  
Antiguo 28/03/2006, 05:22
 
Fecha de Ingreso: abril-2005
Mensajes: 17
Antigüedad: 19 años
Puntos: 0
Sonrisa Select anidadas

Tengo una superduda en una consulta SELECT, os la cuento para
ver si alguien me puede ayudar:

Tengo una serie de registros de la forma...
1,N
2,N
1,V
2,N

Hago dos consultas, una que me calcula un count de todos mis
registros, que será 4

Y otra que me calcula el número de registros que tienen una N,
que será 3

Yo quiero que me saque un promedio solo si el número de N's obtenidas
es igual al numero total de registros obtenidos en la primera consulta.

Lo que necesito es una especie de anidamiento, que solo me ejecute la segunda
select si el count de la segunda es igual al count de la primera

De antemano Muuchas gracias
  #2 (permalink)  
Antiguo 28/03/2006, 08:09
Avatar de .seb  
Fecha de Ingreso: marzo-2006
Ubicación: Uruguay
Mensajes: 493
Antigüedad: 18 años, 1 mes
Puntos: 1
No queda clara tu duda... promedio?
Escribe por favor una especia de pseudocódigo que aclarar la idea.
__________________
saludos
seba
http://sgomez.blogspot.com
  #3 (permalink)  
Antiguo 28/03/2006, 18:00
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años
Puntos: 25
Entonces tu pregunta se simplifica a averiguar si todos los campos del select tienen N, que es la unica manera en que un valor será igual al otro

Una idea rapida es:

IF
(SELECT Count(campo) FROM tabla)
=
(SELECT Count(campo) FROM tabla WHERE otrocampo = 'N')
BEGIN
SELECT Avg(campo) FROM tabla
END
ELSE
BEGIN
SELECT 0 --No fueron iguales
END
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
  #4 (permalink)  
Antiguo 30/03/2006, 06:44
 
Fecha de Ingreso: abril-2005
Mensajes: 17
Antigüedad: 19 años
Puntos: 0
Gracias

Muchas gracias por responder tan pronto, aunque mi intención no era hacerlo con procedimientos almacenados. Queria que una única SELECT me calculara todo. Al final lo he conseguido haciendo un UNION ALL un poco complicado.

Muchas gracias de todas formas.
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 06:06.