I think you need a CASE
statement because TO_CHAR
is returning "0"
:
(CASE WHEN SUM(ENROLLMENTS)=0 THEN 'none' ELSE SUM(ENROLLMENTS) END) ENROLLMENTS
Вопрос
Right now my query is giving me a 0 when I count the enrolled date. How could I have a row show me 'none' result instead of a 0.
what I am missing here ?
COALESCE(TO_CHAR(SUM(ENROLLMENTS)),'none') ENROLLMENTS
this is what I have
SELECT lt.STUDENT_ID,lt.FIRST_NAME, lt.LAST_NAME,COALESCE(TO_CHAR(SUM(ENROLLMENTS)),'none') ENROLLMENTS
FROM STUDENT lt
LEFT OUTER JOIN
(SELECT s.STUDENT_ID, z.COURSE_NO,COUNT(e.ENROLL_DATE) AS ENROLLMENTS
FROM STUDENT s
LEFT JOIN ENROLLMENT e ON s.STUDENT_ID = e.STUDENT_ID
LEFT JOIN SECTION z ON e.SECTION_ID = z.SECTION_ID
WHERE s.PHONE LIKE '702%'
GROUP BY s.STUDENT_ID, z.COURSE_NO) rt
ON lt.STUDENT_ID = rt.STUDENT_ID
WHERE lt.PHONE LIKE '702%'
GROUP BY lt.STUDENT_ID,lt.FIRST_NAME, lt.LAST_NAME,ENROLLMENTS
ORDER BY lt.LAST_NAME,lt.FIRST_NAME;
instead of having results
STUDENT_ID FIRST_NAME LAST_NAME ENROLLED
---------- ------------------------- ------------------------- -----------
253 Walter Boremmann 1
396 James E. Norman 0
etc
I'd like to have it like this
STUDENT_ID FIRST_NAME LAST_NAME ENROLLED
---------- ------------------------- ------------------------- -----------
253 Walter Boremmann 1
396 James E. Norman none
etc
Решение
I think you need a CASE
statement because TO_CHAR
is returning "0"
:
(CASE WHEN SUM(ENROLLMENTS)=0 THEN 'none' ELSE SUM(ENROLLMENTS) END) ENROLLMENTS