Está en la página 1de 4

PROBLEMA 1

EJERCICIO 1

select
substr( nam, 1, instr(nam, ',',1) )||substr( nam, instr(nam, ',',1)+1 , 1 )||
substr( nam, instr(nam, ' ',1,2)+1 ,1 ) APELLIDO_MATERNO, NAM
from NOMBRES;

EJERCICIO 2

select rut, to_char( substr(rut, 1,LENGTH(rut)-2 ) , 'FM999G999G999',


'nls_numeric_characters=,.')||substr(rut, LENGTH(rut) , 1 ),
replace( to_char( replace(rut,'-','.') , 'FM999G999G999D99',
'nls_numeric_characters=,.') ,',','-')
from [NOMBRE_TABLA];

EJERCICIO 3

select
substr( nam, 1 , instr(nam, ' ') ) PRIMER_NOMBRE,
substr( nam, instr(nam, ' ',3) , instr(nam, ',',1)-instr(nam, ' ',1,1) )
SEGUNDO_NOMBRE,
substr( nam, instr(nam, ',',1)+1 , instr(nam, ' ',1,2)-instr(nam, ',',1) )
APELLIDO_PATERNO,
substr( nam, instr(nam, ' ',1,2) , LENGTH(NAM)+1-instr(nam, ' ',1,2) )
APELLIDO_MATERNO,
from NOMBRES;

EJERCICIO 4

SELECT NOMBRE, NOTA, (5.5*2)-NOTA


FROM Asignatura;

EJERCICO 5

SELECT SUBSTR(RUT , LENGTH(RUT), 1), COUNT(RUT) AS CANTIDAD_ALUMNOS


FROM ASIGNATURA
GROUP BY SUBSTR(RUT , LENGTH(RUT), 1)
ORDER BY CANTIDAD_ALUMNOS

PROBLEMA 2

EJERCICIO 1

SELECT *
FROM EMPLEADO
where to_char(FECHA_FINIQUITO,'MM') > 6
and to_char(fecha_contrato,'MM') > 6

EJERCICIO 2

SELECT fecha_contrato, FECHA_FINIQUITO,


(NVL( FECHA_FINIQUITO , SYSDATE)-fecha_contrato)/365 AS ANYO
FROM EMPLEADO;

ejercicio 3
SELECT to_char(TO_DATE(FECHA_FINIQUITO, 'dd/MM/yyyy'),'yyyy')||'|'||
to_char(TO_DATE(FECHA_FINIQUITO, 'dd/MM/yyyy'),'MM')||'|'||
to_char(TO_DATE(FECHA_FINIQUITO, 'dd/MM/yyyy'),'dd')
FROM EMPLEADO

ejercicio 4

update EMPLEADO
set sueldo = sueldo*1.015
WHERE to_char(TO_DATE(FECHA_FINIQUITO, 'dd/MM/yyyy'),'yyyy') = '2021'

ejercicio 5

SELECt round( ( (NVL( TO_DATE(FECHA_FINIQUITO, 'dd/MM/yyyy'), SYSDATE)-


TO_DATE(fecha_contrato, 'dd/MM/yyyy'))/365)* 12 , 0) * sueldo*0.11
FROM EMPLEADO;

PROBLEMA 3

EJERCICIO 1

select rut, numero_correctas, numero_incorrectas,


CASE
WHEN (numero_correctas) <= (30*0.70) THEN
ROUND((3/((30*0.70)))*(numero_correctas)+1 ,1)
ELSE ROUND((3/(30-(30*0.70)))*(numero_correctas-(30*0.7))+4 ,1)
END NOTA_FINAL
from evaluacion
ORDER BY numero_correctas;

EJERCICIO 2

select
MAX(
CASE
WHEN (numero_correctas*2) <= (60*0.75) THEN
ROUND((3/((60*0.75)))*(numero_correctas*2)+1 ,1)
ELSE ROUND((3/(60-(60*0.75)))*(numero_correctas*2-(60*0.75))+4 ,1)

END ) MAXIMA_NOTA_FINAL,
MIN(
CASE
WHEN (numero_correctas*2) <= (60*0.75) THEN
ROUND((3/((60*0.75)))*(numero_correctas*2)+1 ,1)
ELSE ROUND((3/(60-(60*0.75)))*(numero_correctas*2-(60*0.75))+4 ,1)

END ) MINIMA_NOTA_FINAL

from evaluacion
ORDER BY numero_correctas;

EJERCICIO 3

select numero_correctas , NUMERO_INCORRECTAS ,(numero_correctas*1.5)


PUNTAJE_CORRECTAS ,
(NUMERO_INCORRECTAS*0.5) PUNTAJE_INCORRECTAS , (numero_correctas*1.5)-
(NUMERO_INCORRECTAS*0.5) POBTENIDO,
CASE
WHEN (numero_correctas*1.5) - (NUMERO_INCORRECTAS*0.5) <= ( 45*0.80) THEN
ROUND((3/( (45*0.80) ))*( (numero_correctas*1.5) - (NUMERO_INCORRECTAS*0.5) )
+1 ,1)
ELSE ROUND((3/(45-(45*0.80)))*( ( (numero_correctas*1.5)-
(NUMERO_INCORRECTAS*0.5) ) - (45*0.80))+4 ,1)

END NOTA
from evaluacion
ORDER BY numero_correctas;

EJERCICIO 4

select COUNT(DISTINCT rut)


from evaluacion
WHERE 4-(CASE
WHEN (numero_correctas) <= (30*0.50) THEN
ROUND((3/((30*0.50)))*(numero_correctas)+1 ,1)
ELSE ROUND((3/(30-(30*0.50)))*(numero_correctas-(30*0.50))+4 ,1)
END ) BETWEEN 0.1 AND 0.3
ORDER BY numero_correctas;

select COUNT(DISTINCT rut)


from evaluacion
WHERE 4-(CASE
WHEN (numero_correctas) <= (30*0.50) THEN
ROUND((3/((30*0.50)))*(numero_correctas)+1 ,1)
ELSE ROUND((3/(30-(30*0.50)))*(numero_correctas-(30*0.50))+4 ,1)
END ) >= 0.1

AND 4-(CASE
WHEN (numero_correctas) <= (30*0.50) THEN
ROUND((3/((30*0.50)))*(numero_correctas)+1 ,1)
ELSE ROUND((3/(30-(30*0.50)))*(numero_correctas-(30*0.50))+4 ,1)
END ) <= 0.3

ORDER BY numero_correctas;

EJERCICIO 5

select rut, numero_correctas, numero_incorrectas,


CASE
WHEN (numero_correctas) <= (30*0.50) THEN
ROUND((3/((30*0.50)))*(numero_correctas)+1 ,1)
ELSE ROUND((3/(30-(30*0.50)))*(numero_correctas-(30*0.50))+4 ,1)
END NOTA_FINAL_50,
CASE
WHEN (numero_correctas) <= (30*0.60) THEN
ROUND((3/((30*0.60)))*(numero_correctas)+1 ,1)
ELSE ROUND((3/(30-(30*0.60)))*(numero_correctas-(30*0.60))+4 ,1)
END NOTA_FINAL_60,
CASE
WHEN (numero_correctas) <= (30*0.70) THEN
ROUND((3/((30*0.70)))*(numero_correctas)+1 ,1)
ELSE ROUND((3/(30-(30*0.70)))*(numero_correctas-(30*0.70))+4 ,1)
END NOTA_FINAL_70,
CASE
WHEN (numero_correctas) <= (30*0.80) THEN
ROUND((3/((30*0.80)))*(numero_correctas)+1 ,1)
ELSE ROUND((3/(30-(30*0.80)))*(numero_correctas-(30*0.80))+4 ,1)
END NOTA_FINAL_80,
CASE
WHEN (numero_correctas) <= (30*0.90) THEN
ROUND((3/((30*0.90)))*(numero_correctas)+1 ,1)
ELSE ROUND((3/(30-(30*0.90)))*(numero_correctas-(30*0.90))+4 ,1)
END NOTA_FINAL_90
from evaluacion
ORDER BY numero_correctas;

También podría gustarte