Ver Mensaje Individual
  #1 (permalink)  
Antiguo 18/08/2011, 13:10
Avatar de JJPichon
JJPichon
 
Fecha de Ingreso: agosto-2011
Ubicación: Manzanillo, Colima
Mensajes: 7
Antigüedad: 13 años, 3 meses
Puntos: 0
Pregunta Doble Count en un Select con 3 Tablas

Hola Amigos!

Tengo una pregunta, acerca de como hacer u organizar una consulta con un select que realizo.

Explico:
Tengo 3 Tablas y sus campos

sisPerfiles
tCodPerfil
tCodEstatus

sisUsuarios
eCodUsuario
tCodPerfil

sisSeccionesPerfiles
tCodSeccion
tCodPerfil


Las tablas de sisUsuarios y sisSeccionesPerfiles las vinculo con sisPerfiles, donde un nuevo usuario y una nueva seccione se le asigna un perfil de la tabla sisPerfiles.

En la consulta, se busca obtener cuantos usuarios y secciones se encuentran dados de alta con los perfiles que ya existen.

Aqui mi consulta:

SELECT * FROM (
SELECT sp.tCodEstatus AS Estatus, sp.tCodPerfil, count(su.tCodPerfil) AS NumeroUsuarios,
count(ss.tCodPerfil) AS NumeroSecciones
FROM sisPerfiles sp
LEFT JOIN sisUsuarios su ON sp.tCodPerfil = su.tCodPerfil
LEFT JOIN sisSeccionesPerfiles ss ON sp.tCodPerfil = ss.tCodPerfil
GROUP BY sp.tCodEstatus, sp.tCodPerfil) AS n1
WHERE Estatus !='EL'

Aqui mis datos:

sisPerfiles
tCodPerfil | tEstatus
Perfil1-------AC
Perfil2-------AC
Perfil3-------AC

sisUsuarios
eCodUsuario | tCodPerfil
Usuario1-------Perfil1
Usuario1-------Perfil1
Usuario2-------Perfil2
Usuario3-------Perfil2
Usuario4-------Perfil3

sisSeccionesPerfiles
tCodSeccion | tCodPerfil
Seccion1-------Perfil1
Seccion1-------Perfil1
Seccion1-------Perfil1
Seccion1-------Perfil1
Seccion1-------Perfil1
Seccion1-------Perfil1
Seccion2-------Perfil2
Seccion2-------Perfil2
Seccion2-------Perfil2
Seccion3-------Perfil3

y este es el resultado de mi select:

Estatus | tCodPerfil | NumeroUsuarios | NumeroSecciones
AC ----- Perfil1 ------- 12 ------- 12
AC ----- Perfil2 -------- 6 -------- 6
AC ----- Perfil3 -------- 1 -------- 1

el error que muestra al momento de dar los resultados, multiplica el numero de ususarios por el numero de secciones y el resultado se muestra en esos mismos, ya que la Perfil1 tiene 2 usuarios y 6 secciones 2X6=12
la Perfil2 tiene 2 usuarios y 3 secciones 2X3=6
y la Perfil3 tiene 1 usuario y 1 sección 1X1=1

alguien puede ayudarme con mi consulta¿?

de ante mano, gracias!!

Última edición por JJPichon; 18/08/2011 a las 13:19