Oracle - Porcentaje en tabla

   
Vista:
Imágen de perfil de Gerson

Porcentaje en tabla

Publicado por Gerson (3 intervenciones) el 09/09/2015 17:39:18
Hola buenas a Todos mi consulta es la siguiente en una base de Datos tengo las siguientes tablas con sus respectivos campos:
Curso: CODCUR(CODIGO), DESCUR(DESCRIPCIÓN), CRECUR(CREDITOS QUE TIENE EL CURSO), HTEOCUR(NUMERO DE HORAS TEORICAS), HPRACUR(NUMERO DE HORAS PRACTICAS),CICLO,PREQCUR,CODPLAN(CODIGO DE PLAN DE ESTUDIO AL QUE CORRESPONDE)
Escuela: CODESC,DESESC,CODFAC(CODIGO DE LA FACULTAD A LA QUE PERTENECE)
PlanEstudio:CODPAN,DESPLAN,FECHA,CODESC(CODIGO DE LA ESCUELA)
Quisiera saber como puedo realizar la consulta para que me quede lo siguiente
20150904_195508
lo que quiero realizar sería lo de la primera tabla que aparece en la imgen es decir la que se llama porcentaje x cursos con mayor crédito por ciclo. Muchas gracias de antemano.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Gerson

Porcentaje en tabla

Publicado por Gerson (3 intervenciones) el 09/09/2015 19:00:31
Hasta aquí voy bien:
select A.CODPLAN, B.DESESC as ESCUELA, C.CICLO,C.DESCUR as CURSO,
C.CRECUR AS CREDITOS
FROM PLANESTUDIO A
inner join Escuela B on a.codesc=b.codesc
INNER JOIN CURSO C ON a.codplan=c.codplan
where c.codcur in (select CODCUR FROM CURSO WHERE CICLO = '01');
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Porcentaje en tabla

Publicado por Rafael (178 intervenciones) el 10/09/2015 12:45:15
Dependiendo de la version de ORACLE podrias probar con la funcion analitica: PERCENT_RANK

La cual para tu caso seria algo mas o menos asi:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
SELECT A.CODPLAN
	 , B.DESESC AS ESCUELA
	 , C.CICLO
	 , C.DESCUR AS CURSO
	 , C.CRECUR AS CREDITOS
	 , (PERCENT_RANK() OVER (ORDER BY C.CRECUR) ) * 100
FROM   PLANESTUDIO A
       INNER JOIN ESCUELA B
               ON A.CODESC = B.CODESC
       INNER JOIN CURSO C
               ON A.CODPLAN = C.CODPLAN
WHERE C.CODCUR IN (SELECT CODCUR
		           FROM   CURSO
		           WHERE  CICLO = '01');

Nos comentas como te fue???
Si te ha ido bien un +1 no viene mal...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
Imágen de perfil de Gerson

Porcentaje en tabla

Publicado por Gerson (3 intervenciones) el 10/09/2015 18:04:32
Hola, gracias por responder, el resultado que me salió fue el siguiente
Captura
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Porcentaje en tabla

Publicado por Rafael (178 intervenciones) el 15/09/2015 08:40:30
Usas te exactamente la query que te di??

Es que es muy raro ....
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar