18/01/2010, 08:34
|
| Colaborador | | Fecha de Ingreso: enero-2002 Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 10 meses Puntos: 146 | |
Respuesta: Registros aleatorios sobre consulta de unión El el código que pones no estas generando una segunda tabla desde tu consulta UNION, supongo debieses cambiarla por algo así:
Código:
SELECT * FROM (
SELECT Formacion.Id_Curso, Formacion.Visitas, Formacion.FechaAlta, Formacion.Puja, PorcentajeInscritos = CAST((SELECT COUNT(Id) FROM Formacion_Inscritos WHERE Formacion_Inscritos.Id_Curso = Formacion.Id_Curso) / CAST((CASE Formacion.Visitas WHEN 0 THEN 1 ELSE Formacion.Visitas END) AS DECIMAL(9,3)) * 100 AS DECIMAL(9,3)), Formacion.NombreCurso AS Curso, EmpresasCursos.Nombre AS Centro, EmpresasCursos.Poblacion, tbProvincias.Descripcion AS Provincia, EmpresasCursos.Logo
FROM Formacion INNER JOIN EmpresasCursos ON Formacion.Id_Empresa = EmpresasCursos.Id_Empresa
INNER JOIN tbProvincias ON EmpresasCursos.Provincia = tbProvincias.Id
WHERE Formacion.Id_Delegacion = 0 AND Formacion.Sector IN (5,6,7,9,13) AND Formacion.Puja IN (SELECT TOP 4 Formacion.puja FROM Formacion ORDER BY Formacion.Puja DESC)
UNION
SELECT Formacion.Id_Curso, Formacion.Visitas, Formacion.FechaAlta, Formacion.Puja, PorcentajeInscritos = CAST((SELECT COUNT(Id) FROM Formacion_Inscritos WHERE Formacion_Inscritos.Id_Curso = Formacion.Id_Curso) / CAST((CASE Formacion.Visitas WHEN 0 THEN 1 ELSE Formacion.Visitas END) AS DECIMAL(9,3)) * 100 AS DECIMAL(9,3)), Formacion.NombreCurso AS Curso, Formacion_Delegaciones.Nombre AS Centro, Formacion_Delegaciones.Poblacion, tbProvincias.Descripcion AS Provincia, EmpresasCursos.Logo
FROM Formacion INNER JOIN EmpresasCursos ON Formacion.Id_Empresa = EmpresasCursos.Id_Empresa
INNER JOIN Formacion_Delegaciones ON Formacion.Id_Delegacion = Formacion_Delegaciones.Id_Delegacion
INNER JOIN tbProvincias ON Formacion_Delegaciones.Provincia = tbProvincias.Id
WHERE Formacion.Id_Delegacion <> 0 AND Formacion.Sector IN (5,6,7,9,13) AND Formacion.Puja IN (SELECT TOP 4 Formacion.puja FROM Formacion ORDER BY Formacion.Puja DESC
) x
ORDER BY NEWID()
|