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

problema con consulta sql

Estas en el tema de problema con consulta sql en el foro de SQL Server en Foros del Web. Hola a todos!!! Tengo un pequeño rpoblema con la siguiente consulta: Código: IF (SELECT COUNT(IDLibro) FROM Ejemplares WHERE CodigoAcceso IN (SELECT Servicios.CodigoAcceso FROM Servicios INNER ...
  #1 (permalink)  
Antiguo 05/06/2006, 14:59
Avatar de kejos  
Fecha de Ingreso: septiembre-2005
Mensajes: 100
Antigüedad: 18 años, 7 meses
Puntos: 0
Pregunta problema con consulta sql

Hola a todos!!!

Tengo un pequeño rpoblema con la siguiente consulta:

Código:
IF (SELECT COUNT(IDLibro)
	     FROM Ejemplares
	     WHERE CodigoAcceso IN (SELECT  Servicios.CodigoAcceso
				          FROM    Servicios INNER JOIN
					           Multas ON Servicios.IDServicio = Multas.IDServicio
				          WHERE  Multas.FechaCancelacion IS NULL AND
		 			             Multas.IDUsuario IN (SELECT IDUsuario
								       FROM Usuarios
								       WHERE Documento = '21526734'))) != 0
	BEGIN
		SELECT Multas.IDServicio, Multas.IDMulta, Multas.FechaMulta, Multas.Valor INTO #MultaL
		FROM    Servicios INNER JOIN
				Multas ON Servicios.IDServicio = Multas.IDServicio
		WHERE   Multas.FechaCancelacion IS NULL
				AND Multas.IDUsuario IN (SELECT IDUsuario
							  FROM Usuarios
							  WHERE Documento = '21526734')
									 		
		SELECT  Libros.IDLibro AS IDMaterial,Libros.Titulo, Libros.Clasificacion,Libros.IDTipoMaterial, Ejemplares.CodigoAcceso,
			 #MultaL.IDServicio, #MultaL.IDMulta, #MultaL.FechaMulta, #MultaL.Valor 
		FROM    Ejemplares INNER JOIN
                		 Libros ON Ejemplares.IDLibro = Libros.IDLibro CROSS JOIN #MultaL
		WHERE   Ejemplares.CodigoAcceso IN (SELECT Servicios.CodigoAcceso
							FROM   Servicios INNER JOIN
								   Multas ON Servicios.IDServicio = Multas.IDServicio
							WHERE  Multas.FechaCancelacion IS NULL AND
								   Multas.IDUsuario IN (SELECT IDUsuario
											FROM   Usuarios
											WHERE  Documento = '21526734'))
		ORDER BY IDMulta DESC	
	END
Lo que pasa es que cuando ejecuto la consulta me saca registros repetidos, es decir; si por ejemplo tiene 2 multas entonces me salen 4 multas con esta consulta y no entiendo porque, creo que es por el cross join que utilizo pero si no utilizo este crossjoni entonces cómo relaizo la consulta??

a quien me pueda ayudar aodamr e alguna sugerencia de como puedo organizar esta conslta se lo agradezco de antemano
__________________
Kelly Johana:si:
  #2 (permalink)  
Antiguo 05/06/2006, 19:17
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 3 meses
Puntos: 146
Yo volvería a hacer la consulta, creo que estas "enrollando demasiado el riso". Dejando de lado que lo de arriba te regresa dos conjuntos de datos diferentes, pregunto ...

¿tienes una fecha contra la cual complementar la relación?

O pon la estructura de las tablas para verlas más claramente
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 22:37.