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

SQL con NOT EXISTS no funciona

Estas en el tema de SQL con NOT EXISTS no funciona en el foro de SQL Server en Foros del Web. Buenas estoy intentando hacer esta consulta , juntando una tabla de clientes con otra de albaranes donde la fecha del albaran es entre el 2005 ...
  #1 (permalink)  
Antiguo 16/06/2009, 09:16
 
Fecha de Ingreso: enero-2004
Ubicación: here I Am
Mensajes: 437
Antigüedad: 20 años, 4 meses
Puntos: 1
SQL con NOT EXISTS no funciona

Buenas estoy intentando hacer esta consulta , juntando una tabla de clientes con otra de albaranes donde la fecha del albaran es entre el 2005 y el 2009 , pero luego hago un NOT EXISTS para mirar que de las ventas seleccionadas NINGUNA contenga el TIPO DE PRODUCTO entre el año 2006 y 2009. Es decir intento hacer que tengan ventas entre el año 2005 y 2009 , pero luego intento hacer que de esas ventas no haya ninguna entre el 2006 y 2009 que contenga el tipo de producto = 2



Cita:
Select * from cliente c inner join albaran a on
c.codigo_cliente = a.codigo_cliente and c.tienda = a.tienda

where not exists (Select * from albaran a2 inner join lineaAlbaran l on a2.tienda = l.tienda where a2.tienda = a.tienda and (year(a2.data) >= 2006 and year(a2.data) <= 2009) and l.tipoproducto <> 2)

and year a.data between 2005 and 2009


La sql me funciona pero el not exists no , si lo comento me devuelve los mismos resultados.

gracias radge
__________________
Nuevo foro sobr el mundo del motor - Renault foro
http://www.renaultforo.com
  #2 (permalink)  
Antiguo 16/06/2009, 13:35
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 18 años, 9 meses
Puntos: 39
Respuesta: SQL con NOT EXISTS no funciona

Creo que te faltaban los paréntesis.
Código sql:
Ver original
  1. SELECT *
  2. FROM cliente c
  3. INNER JOIN albaran a ON c.codigo_cliente = a.codigo_cliente AND c.tienda = a.tienda
  4. WHERE NOT EXISTS (
  5.     SELECT *
  6.     FROM albaran a2
  7.     INNER JOIN lineaAlbaran l ON a2.tienda = l.tienda
  8.     WHERE a2.tienda = a.tienda AND YEAR(a2.DATA) BETWEEN 2006 AND 2009 AND l.tipoproducto <> 2)
  9. AND YEAR(a.DATA) BETWEEN 2005 AND 2009
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
  #3 (permalink)  
Antiguo 21/06/2009, 23:45
Avatar de alfcm  
Fecha de Ingreso: mayo-2009
Mensajes: 291
Antigüedad: 15 años
Puntos: 7
Respuesta: SQL con NOT EXISTS no funciona

WHERE campo1 NOT EXISTS (SELECT campo2 FROM.......

Creo que te falto poner el nombre del campo antes del NOT EXISTS y ademas si no me equivoco, solo va un campo (campo2) en la subconsulta para el NOT EXISTS para compararlo con el campo1 luego del WHERE
  #4 (permalink)  
Antiguo 25/06/2009, 20:28
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 10 meses
Puntos: 180
Respuesta: SQL con NOT EXISTS no funciona

alfcm

El codigo que a bien publica Mr. flaviovich, esta 100% correcto, no le hace falta ningun campo antes del NOT EXISTS, es mas, si lo pusiera, enviaria un mensaje de error.

recomiendo leer su ayuda en linea.
  #5 (permalink)  
Antiguo 26/06/2009, 00:31
 
Fecha de Ingreso: enero-2004
Ubicación: here I Am
Mensajes: 437
Antigüedad: 20 años, 4 meses
Puntos: 1
Respuesta: SQL con NOT EXISTS no funciona

gracias por vuestros aportes !!!

sql funcionando !

salu2 radge
__________________
Nuevo foro sobr el mundo del motor - Renault foro
http://www.renaultforo.com
  #6 (permalink)  
Antiguo 26/06/2009, 22:05
Avatar de alfcm  
Fecha de Ingreso: mayo-2009
Mensajes: 291
Antigüedad: 15 años
Puntos: 7
Respuesta: SQL con NOT EXISTS no funciona

Si tienes razon iislas, fue un lapsus.. creo que muy rapido conteste la pregunta sin darme cuenta, ademas que tiempo no uso el NOT EXISTS me confundi, pero bueno ya se resolvio
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 21:26.