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

Avanzado: Consulta SQL "al menos un registro"

Estas en el tema de Avanzado: Consulta SQL "al menos un registro" en el foro de Bases de Datos General en Foros del Web. Tengo una tabla: TABLA: Codigo (numerico) Nombre (string) Asignado (0/1) Esta tabla es muy grande, ya tiene unos 2 millones de registros. Mi problema es ...
  #1 (permalink)  
Antiguo 29/05/2002, 06:09
 
Fecha de Ingreso: enero-2002
Mensajes: 26
Antigüedad: 22 años, 9 meses
Puntos: 0
Avanzado: Consulta SQL "al menos un registro"

Tengo una tabla:

TABLA:
Codigo (numerico)
Nombre (string)
Asignado (0/1)

Esta tabla es muy grande, ya tiene unos 2 millones de registros.
Mi problema es que necesito una consulta que me diga si quedan registros sin asignar, es decir, Asignado = 0.
Para hacer esto actualmente hago la siguiente SELECT:

SELECT Count(*) FROM TABLA WHERE Asignado=0

Si la select me devuelve que hay más de 0 sé que quedan registros con Asignado = 0 y si es 0 se que todos tienen Asignado = 1.

El caso es que el tiempo de ejecución de esta select consume bastante tiempo en buscar todos los registros cuando yo solo necesito que en cuanto encuentre que hay uno se pare y me lo indique. Es decir, simplemente que me diga que existe al menos un registro con esa condición.

Me han hablado de EXISTS pero lo he mirado y me da la impresion de que no sirve para mi proposito.

A ver si algún experto por ahi...

Muchas Gracias.

Sergio.
  #2 (permalink)  
Antiguo 29/05/2002, 09:32
 
Fecha de Ingreso: enero-2002
Ubicación: Medellin
Mensajes: 10
Antigüedad: 22 años, 10 meses
Puntos: 0
Re: Avanzado: Consulta SQL "al menos un registro"

Hola...

si necesitas que al menos haya uno haz:

select TOP 1 varaible from tabla where variable=0...

te retorna al menos uno de los no asignados

cualquier cosa me dices!

Juan Fernando
  #3 (permalink)  
Antiguo 29/05/2002, 09:37
 
Fecha de Ingreso: enero-2002
Ubicación: Zaragoza
Mensajes: 144
Antigüedad: 22 años, 10 meses
Puntos: 0
Re: Avanzado: Consulta SQL "al menos un registro"

Has probado el tiempo de ejecucuón con
SELECT top 1 asignado, count(asignado) FROM TABLA WHERE Asignado=0 group by asignado

Espero que te sirva

Saludos

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 14:33.