Ayuda con una select
Tengo la siguiente consulta:
SELECT ALL BOSI_PARTICIPANTES.DNI DNI,
BOSI_PARTICIPANTES.NOMBRE NOMBRE,BOSI_PARTICIPANTES.APELLIDO1||' '||BOSI_PARTICIPANTES.APELLIDO2 APELLIDOS,
FLOOR(BOSI_PARTICIPANTES.NOTA1)||' '||FLOOR(BOSI_PARTICIPANTES.NOTA2) NOTA,
BOSI_PARTICIPANTES.NMSOLICITUD NMSOLICITUD
FROM BOSI_PARTICIPANTES
WHERE (NVL(NOTA1,0)>=5 AND NVL(NOTA2,0)<5)
OR (NVL(NOTA1,0)<5 AND NVL(NOTA2,0)>=5)
El campo nota me saca las notas concatenadas y yo necesito la nota que es mayor a 5, pero no me acuerdo de como hacer para que sólo me coja en una columna la nota mayor a 5.
Alguien me podrÃa echar una mano?
Gracias de antemano
SELECT ALL BOSI_PARTICIPANTES.DNI DNI,
BOSI_PARTICIPANTES.NOMBRE NOMBRE,BOSI_PARTICIPANTES.APELLIDO1||' '||BOSI_PARTICIPANTES.APELLIDO2 APELLIDOS,
FLOOR(BOSI_PARTICIPANTES.NOTA1)||' '||FLOOR(BOSI_PARTICIPANTES.NOTA2) NOTA,
BOSI_PARTICIPANTES.NMSOLICITUD NMSOLICITUD
FROM BOSI_PARTICIPANTES
WHERE (NVL(NOTA1,0)>=5 AND NVL(NOTA2,0)<5)
OR (NVL(NOTA1,0)<5 AND NVL(NOTA2,0)>=5)
El campo nota me saca las notas concatenadas y yo necesito la nota que es mayor a 5, pero no me acuerdo de como hacer para que sólo me coja en una columna la nota mayor a 5.
Alguien me podrÃa echar una mano?
Gracias de antemano
Con esta 'SELECT' no mostrarás las filas que hayan sacado más de un cinco en las dos notas (aunque, a lo mejor, es eso lo que quieres ¿?).
Si quieres seleccionarlas filas con notas mayores que cinco Y AMBAS (nota1 y nota2) PUEDEN SERLO:
SELECT BOSI_PARTICIPANTES.DNI DNI,
BOSI_PARTICIPANTES.NOMBRE NOMBRE,
BOSI_PARTICIPANTES.APELLIDO1||' '||BOSI_PARTICIPANTES.APELLIDO2 APELLIDOS,
CASE WHEN BOSI_PARTICIPANTES.NOTA1 >= 5 THEN TO_CHAR(FLOOR(BOSI_PARTICIPANTES.NOTA1)) || ' ' ELSE NULL END) ||
CASE WHEN BOSI_PARTICIPANTES.NOTA2 >= 5 THEN TO_CHAR(FLOOR(BOSI_PARTICIPANTES.NOTA2)) ELSE NULL END) NOTA,
BOSI_PARTICIPANTES.NMSOLICITUD NMSOLICITUD
FROM BOSI_PARTICIPANTES
WHERE (NVL(NOTA1,0)>=5 OR NVL(NOTA2,0)>=5)
Si sólo una de las notas puede ser mayor que cinco:
SELECT ALL BOSI_PARTICIPANTES.DNI DNI,
BOSI_PARTICIPANTES.NOMBRE NOMBRE,
BOSI_PARTICIPANTES.APELLIDO1||' '||BOSI_PARTICIPANTES.APELLIDO2 APELLIDOS,
CASE WHEN BOSI_PARTICIPANTES.NOTA1 >= 5 THEN TO_CHAR(FLOOR(BOSI_PARTICIPANTES.NOTA1)) ELSE TO_CHAR(FLOOR(BOSI_PARTICIPANTES.NOTA2)) NOTA,
BOSI_PARTICIPANTES.NMSOLICITUD NMSOLICITUD
FROM BOSI_PARTICIPANTES
WHERE (NVL(NOTA1,0)>=5 AND NVL(NOTA2,0)<5)
OR (NVL(NOTA1,0)<5 AND NVL(NOTA2,0)>=5)
Saludos.
Carlos.
Si quieres seleccionarlas filas con notas mayores que cinco Y AMBAS (nota1 y nota2) PUEDEN SERLO:
SELECT BOSI_PARTICIPANTES.DNI DNI,
BOSI_PARTICIPANTES.NOMBRE NOMBRE,
BOSI_PARTICIPANTES.APELLIDO1||' '||BOSI_PARTICIPANTES.APELLIDO2 APELLIDOS,
CASE WHEN BOSI_PARTICIPANTES.NOTA1 >= 5 THEN TO_CHAR(FLOOR(BOSI_PARTICIPANTES.NOTA1)) || ' ' ELSE NULL END) ||
CASE WHEN BOSI_PARTICIPANTES.NOTA2 >= 5 THEN TO_CHAR(FLOOR(BOSI_PARTICIPANTES.NOTA2)) ELSE NULL END) NOTA,
BOSI_PARTICIPANTES.NMSOLICITUD NMSOLICITUD
FROM BOSI_PARTICIPANTES
WHERE (NVL(NOTA1,0)>=5 OR NVL(NOTA2,0)>=5)
Si sólo una de las notas puede ser mayor que cinco:
SELECT ALL BOSI_PARTICIPANTES.DNI DNI,
BOSI_PARTICIPANTES.NOMBRE NOMBRE,
BOSI_PARTICIPANTES.APELLIDO1||' '||BOSI_PARTICIPANTES.APELLIDO2 APELLIDOS,
CASE WHEN BOSI_PARTICIPANTES.NOTA1 >= 5 THEN TO_CHAR(FLOOR(BOSI_PARTICIPANTES.NOTA1)) ELSE TO_CHAR(FLOOR(BOSI_PARTICIPANTES.NOTA2)) NOTA,
BOSI_PARTICIPANTES.NMSOLICITUD NMSOLICITUD
FROM BOSI_PARTICIPANTES
WHERE (NVL(NOTA1,0)>=5 AND NVL(NOTA2,0)<5)
OR (NVL(NOTA1,0)<5 AND NVL(NOTA2,0)>=5)
Saludos.
Carlos.
