Saludos.
Tengo la siguiente instrucción SQL y no se por qué razón no me está
calculando los valores errados para los totales:
select periodo.cod_periodo,
cast(periodo.mes_inicio as char(2)) + '/' +
cast(periodo.ano_inicio as char(4)) + ' al ' +
cast(periodo.mes_fin as char(2)) + '/' +
cast(periodo.ano_fin as char(4)) Periodo,
EstunePlusPregradoCarreras.Nombre Carrera,
escuela.nombre_escuela Escuela,
count(distinct record_academico.cedula) TotalMujeresYHombres,
TM = sum(Case estudiante.sexo when 'M' then 1 else 0 end),
TF = sum(Case estudiante.sexo when 'F' then 1 else 0 end)
from record_academico, materia, escuela, periodo,
EstunePlusPregradoCarreras, Estudiante
where (EstunePlusPregradoCarreras.Id = Escuela.CarreraId)and
(escuela.cod_escuela = materia.cod_escuela)and
(materia.cod_materia = record_academico.cod_materia)and
(periodo.cod_periodo = record_academico.cod_periodo)and
(Estudiante.cedula = record_academico.cedula)and
(periodo.cod_periodo = 98)
group by escuela.cod_escuela,
escuela.nombre_escuela,
periodo.cod_periodo,
periodo.mes_inicio,
periodo.ano_inicio,
periodo.mes_fin,
periodo.ano_fin,
EstunePlusPregradoCarreras.Nombre
Me está arrojando el siguiente resultado:
T TM TF
98 10/2002 al 1 /2003 Administración ADMINISTRACIÓN 30 180 90
98 10/2002 al 1 /2003 Administración DISEÑO 37 150 220
98 10/2002 al 1 /2003 Administración TURISMO 21 54 135
98 10/2002 al 1 /2003 Computación COMPUTACIÓN 36 208 80
98 10/2002 al 1 /2003 Ingeniería ING.CIVIL 12 92
6
98 10/2002 al 1 /2003 Ingeniería ING.ELECTRÓNICA 45 344 16
Como podrán ver no se cumple que T = TM + TF. Se que la columna T está
correcta, pero qué pasa co las otras dos?
Gracias de antemano.
Jo
Leer las respuestas