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

Crear sentencia de exclusion de datos

Estas en el tema de Crear sentencia de exclusion de datos en el foro de SQL Server en Foros del Web. Hola a todos: Tengo la sigueinte sentencia: SELECT tabla1.id FROM tabla1 WHERE tabla1.pagado = 1 AND id IN (SELECT TOP 1000 id FROM tabla1) AND ...
  #1 (permalink)  
Antiguo 02/02/2012, 11:28
 
Fecha de Ingreso: agosto-2007
Mensajes: 268
Antigüedad: 16 años, 8 meses
Puntos: 2
Crear sentencia de exclusion de datos

Hola a todos:

Tengo la sigueinte sentencia:

SELECT tabla1.id
FROM tabla1
WHERE tabla1.pagado = 1
AND id IN (SELECT TOP 1000 id FROM tabla1)
AND id NOT IN (SELECT TOP 1000 id FROM tabla2)

La idea de esta sentencia es que me traiga los registros de la tabla 1 donde el valor pagado = 1 pero que a su vez no exista registro de dicho pago en la tabla 2, ya probe y me sigue trayendo registros existentes en la tabla 2.

¿Alguien me puede ayudar a saber que estoy haciendo mal?
  #2 (permalink)  
Antiguo 02/02/2012, 11:36
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Crear sentencia de exclusion de datos

Código SQL:
Ver original
  1. SELECT tabla1.id
  2. FROM tabla1
  3. LEFT JOIN tabla2 ON tabla1.id=tabla2.id
  4. WHERE tabla1.pagado = 1
  5. AND id IN (SELECT TOP 1000 id FROM tabla1)
  6. AND tabla2.id IS NOT NULL

saludos!
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 02/02/2012, 11:43
 
Fecha de Ingreso: agosto-2007
Mensajes: 268
Antigüedad: 16 años, 8 meses
Puntos: 2
Respuesta: Crear sentencia de exclusion de datos

Hola Libras:

Acabo de hacer la prueba de la sentencia que me diste y no me funcionó. =(. ¿Alguna otra sugerencia?
  #4 (permalink)  
Antiguo 02/02/2012, 11:49
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Crear sentencia de exclusion de datos

Manda una pequeña muestra de tus datos unos 5 registros de tabla1 y tabla2 y lo que quieres que arroje el query.

saludos!
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #5 (permalink)  
Antiguo 02/02/2012, 12:09
 
Fecha de Ingreso: agosto-2007
Mensajes: 268
Antigüedad: 16 años, 8 meses
Puntos: 2
Respuesta: Crear sentencia de exclusion de datos

Hola Libras:

Un pequeño ejemplo es:

Tabla 1 Tabla 2
Id Pagado Id
1 1 2
2 1 4
3 0
4 1


Entonces, el resultado que quiero obtener es el 1, ya que este cumple con la condicion de pagado = 1 y ademas NO existe en la tabla 2

Saludos...
  #6 (permalink)  
Antiguo 02/02/2012, 12:20
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Crear sentencia de exclusion de datos

Código SQL:
Ver original
  1. CREATE TABLE #temp
  2. (
  3. id INT,
  4. pagado INT
  5. )
  6.  
  7. CREATE TABLE #temp2
  8. (
  9. id INT
  10. )
  11.  
  12. INSERT INTO #temp VALUES (1,1)
  13. INSERT INTO #temp VALUES (2,1)
  14. INSERT INTO #temp VALUES (3,0)
  15. INSERT INTO #temp VALUES (4,1)
  16.  
  17. INSERT INTO #temp2 VALUES (2)
  18. INSERT INTO #temp2 VALUES (4)
  19.  
  20.  
  21. SELECT * FROM #temp AS t
  22. LEFT JOIN #temp2 AS t1 ON (t.id=t1.id)
  23. WHERE t.pagado=1 AND t1.id IS NULL

Saludos!
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #7 (permalink)  
Antiguo 02/02/2012, 12:43
 
Fecha de Ingreso: agosto-2007
Mensajes: 268
Antigüedad: 16 años, 8 meses
Puntos: 2
Respuesta: Crear sentencia de exclusion de datos

Hola Libras:

Voy a proceder a verificar esta manera.

Saludos...

Etiquetas: registro, select, sentencia, tabla
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 05:15.