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

Sentencia SQL. Ayuda

Estas en el tema de Sentencia SQL. Ayuda en el foro de Bases de Datos General en Foros del Web. Hola, necesito realizar una sentencia SQL. Hoy estoy espesito y no la logro realizar. Serian 2 tablas con dos campos a igualar. Tablas Vtos ( ...
  #1 (permalink)  
Antiguo 28/05/2009, 10:27
 
Fecha de Ingreso: mayo-2009
Mensajes: 22
Antigüedad: 15 años
Puntos: 0
Sentencia SQL. Ayuda

Hola, necesito realizar una sentencia SQL. Hoy estoy espesito y no la logro realizar.

Serian 2 tablas con dos campos a igualar.

Tablas Vtos (Documento, NumVto ) y Pedidos (Documento, NumVto) .

Seria sacar todos los registros de Vtos que no esten en Pedidos. Si solo es el campo Documento seria facil, pero al ser dos campo la condicion no me sale sacarla, ya que un Documento puede tener varios Numvto.

Antas la sacaba con:

Select * from Vtos where Documento not in (Select distinct Documento from Pedidos)

¿¿¿Como sería con los dos campos de condicion???

Muchas Gracias!!!!.
  #2 (permalink)  
Antiguo 28/05/2009, 13:50
 
Fecha de Ingreso: enero-2008
Mensajes: 268
Antigüedad: 16 años, 3 meses
Puntos: 11
Respuesta: Sentencia SQL. Ayuda

Hola
Pues igual sólo que mejor qeu usar un not in, usar un not exist.
De esta forma la consulta estará optimizada.

Por lo tanto la cosa te qeuda:

Cita:
Select a.* from Vtos a
where not exists (select 1 from pedidos b where b.Documento= a.b.Documento and b.NumVto= a.NumVto)
Lo que hacemos es buscar los pedidos de VTOS que no esten en pedidos, básicamente, tal cual decias.

saludos.

EDITO: esto es para ORACLE (para el resto sera muy muy parecido, pero creo que no exacytamente igual)
  #3 (permalink)  
Antiguo 28/05/2009, 14:21
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Sentencia SQL. Ayuda

Esto también sirve.
Código sql:
Ver original
  1. SELECT * FROM Vtos WHERE (Documento,NumVoto) NOT IN (SELECT Documento,numvoto FROM Pedidos);

Un saludo.
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #4 (permalink)  
Antiguo 28/05/2009, 14:48
 
Fecha de Ingreso: enero-2008
Mensajes: 268
Antigüedad: 16 años, 3 meses
Puntos: 11
Respuesta: Sentencia SQL. Ayuda

Hola huesos.
Efectivamente, lo query que le comentas es perfectamente válida, pero no está optimizada.
Antes que usar un Not in, o un In hay que usar un exists.

Un saludo, y que tengas buena noche. (o dia, dependiendo de donde te ecuentres)
  #5 (permalink)  
Antiguo 28/05/2009, 14:54
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Sentencia SQL. Ayuda

Totalmente deacuerdo javi_cassi.
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #6 (permalink)  
Antiguo 29/05/2009, 00:28
 
Fecha de Ingreso: mayo-2009
Mensajes: 22
Antigüedad: 15 años
Puntos: 0
Respuesta: Sentencia SQL. Ayuda

Hola muchisimas gracias a los 2.

Funcionan perfectamente. A veces es mas facil de lo que parece. :)

Muchas gracias por la rapidez.

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 04:53.