SQL - Problema con consulta SQL

 
Vista:

Problema con consulta SQL

Publicado por Garyto (6 intervenciones) el 02/05/2010 02:02:23
Hola a todos!!

Tengo un problema con una sentencia SQL. El otro dia puse un post pero creo q no me explique bien, a ver si ahora lo hago mejor.

En la consulta trabajo con dos tablas las cuales tienen un campo fecha.
Mi consulta recibe como parametro una fecha que introduce el usuario.
Necesito que la consulta devuelva los registros en los que la fecha coincide con la primera tabla, pero que la fecha de la segunda tabla no coincida con la fecha introducida por el usuario, siempre que los registros sean del mismo socio.

Ejemplo:

El socio1 tiene un registro en la tabla1 con fecha 1/1/10 y otro registro en la tabla2 con la misma fecha.

El socio2 tiene un registro en la tabla1 con fecha 1/1/10 y otro registro en la tabla2 con la fecha 30/1/10.

El socio3 tiene un registro en la tabla1 con fecha 15/10/09 y otro registro en la tabla2 con la fecha 1/1/10.

Si el usuario introduce como parametro la fecha 1/1/10 me deberia devolver solo el registro del socio2, ya que este es el único que coincide la fecha introducida por el usuario con la fecha del registro de la tabla1 y no tiene un registro con la misma fecha en la tabla2. Por esta misma razón el socio1 no aparecería, ya que este tiene un registro con la misma fecha en la tabla2 y el socio3 tampoco ya que la fecha de la tabla1 no coincide con la introducida como parametro.

A continuación expongo como he planteado la consulta, aunque ya adelanto que no devuelve los resultados esperados:

"SELECT * FROM (tabla1 INNER JOIN tabla2 ON tabla1.num_socio = tabla2.num_socio) WHERE (tabla1.fecha_devolucion = #fecha#) AND (tabla2.fecha_devolucion <> #fecha#)"

Es para una BD Access.

Espero haberme explicado con claridad.

Gracias y un saludo!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Problema con consulta SQL

Publicado por Rolando (2 intervenciones) el 04/05/2010 21:49:22
Solucion1:

create proc Listar_Tabla
@fecha varchar(10)=''
as
Select * from Tabla1 where fecha=@fecha and
fecha NOT IN ( select fecha from tabla2)

Solucion2:

create proc Listar_Tabla
@fecha varchar(10)=''
as
-- Validacion : si hay datos en tabla 2
declare @numregtabla2 numeric(5)

set @numregtabla2 = (select count(*) from Tabla2 where fecha=@fecha )

if @numregtabla2 =0
begin
Select * from Tabla1 where fecha=@fecha
end

y asi hay mas formas, espero haberte ayudado.

saludos

Rolando
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problema con consulta SQL

Publicado por Gary (6 intervenciones) el 10/05/2010 19:15:06
Hola Rolando:

He probado lo que me proponias y no da resultado. Pero he continuado investigando y he avanzado algo. He creado otro post con los avances. Si te interesa puedes revisarlo aqui:

http://www.lawebdelprogramador.com/news/mostrar_new.php?id=89&texto=SQL&n1=560740&n2=0&n3=0&n4=0&n5=0&n6=0&n7=0&n8=0&n9=0&n0=0

Gracias y un saludo!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar