Ver Mensaje Individual
  #1 (permalink)  
Antiguo 16/11/2014, 17:17
tuuutooo
 
Fecha de Ingreso: septiembre-2008
Mensajes: 72
Antigüedad: 15 años, 7 meses
Puntos: 0
Información Problemas con query

Hola amigos, quisiera me puedan ayudan, estoy haciendo una consulta pero al relacionar unas tablas no me resulta lo que necesito hacer. Me explico, tengo las siguientes tablas:

persona: id_persona, area_id, rut, dv, nombre, fecha_nac, edad, sexo
1, 1, 1111111, 1, Leonardo, 1980-10-22, 34, M
2, 2, 2222222, 2, Maria, 1981-01-23, 33, F
3, 3, 3333333, 3, Luz, 1984-09-05, F

test_personal: id_perso, persona_id, asistencia_id, resultado
1, 1, 2, Bueno
2, 2, 2, Regular

test_sicologico: id_sico, persona_id, asistencia_id, resultado
1, 2, 2, Malo
2, 3, 2, Excelente

test_academico: id_aca, persona_id, asistencia_id, resultado
1, 2, 2, Bueno

test_artistico: id_arti, persona_id, asistencia_id, resutado
1, 1, 2, Bueno
2, 2, 1, Regular
3, 3, 1, Bueno

Yo tengo el siguiente query

Código SQL:
Ver original
  1. SELECT COUNT(DISTINCT (ta.persona_id, tan.persona_id, cn.persona_id, f.persona_id, s.persona_id, t.persona_id)) AS total FROM persona AS a, test_personal AS ta, test_academico AS tan, test_sicologico AS cn, test_artistico AS f, empresa AS e, area AS c WHERE a.id_alumno=ta.persona_id AND a.id_alumno=tan.persona_id AND a.id_alumno=cn.persona_id AND a.id_alumno=f.persona_id AND e.rut=1234 AND ta.asistencia_id=2 AND tan.asistencia_id=2 AND cn.asistencia_id=2 AND f.asistencia_id=2 AND  AND c.id_curso=a.curso_id AND e.id_area=c.area_id

Lo que necesito hacer es contar solo los datos únicos de las personas que rindieron estos test, y que su asistencia-id=2 y por rut de la empresa.... El valor que me deberia entregar es 3 y solo llego a dos, alguna idea como solucionar esto para que llegue al valor correcto.

Gracias