Ayuda con una select

marcos
01 de Septiembre del 2005
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


Carlos
01 de Septiembre del 2005
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.