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