Как я могу использовать оператор CASE, чтобы включить учащихся, которых нет в конкретной таблице? - PullRequest
0 голосов
/ 16 апреля 2020

В последнем выбранном столбце мне нужен запрос, чтобы вернуть учеников, которых нет даже в этой таблице, и просто заполнить их «Нет индекса». У меня проблемы с написанием заявления по делу, которое позволит мне это сделать. Я думал, что просто использование полного внешнего соединения для таблицы sortest вернул бы нули, что было бы хорошо, но это не так. Это потому, что я указал, что в предложении WHERE результат теста должен быть «IR»?

select                              
    distinct spriden_id ID,                             
    spriden_last_name ||', '||spriden_first_name || ' '|| spriden_mi "Name" ,
    to_char(nvl(rcrapp2_pell_pgi,0), '$999,999,999') EFC,
    saradap_term_code_entry "Admit Term",
    decode(saradap_styp_code, '0', 'GED (Freshman)', '1', 'Freshman (No Transfer Credits)', '2', 
        'Freshman (With College Credit)',
        '3', 'Freshman Transfer (36-44 cr)', '4', 'Sophomore Transfer (45-89 cr)', '5', 
        'Junior Transfer (90-134 cr)', '6', 'Senior Transfer (135-999 cr)' ) "Student Type",
         nvl(decode(rcrapp1_inst_hous_cde, '1', 'With Parents', '2', 'Campus Housing', '3', 'Off 
         Campus'), 'Other') "Housing",
    sortest_test_score "Index Rating"

from
    spriden
    inner join rcrapp2
    on spriden_pidm = rcrapp2_pidm
    inner join rcrapp1
    on spriden_pidm = rcrapp1_pidm
    inner join saradap
    on spriden_pidm = saradap_pidm
    full outer join sortest
    on spriden_pidm = sortest_pidm
    --rcrapp2,
    --rcrapp1,
    --saradap,
    --sortest


where 
    spriden_change_ind is null
    --and spriden_pidm = rcrapp2_pidm
    --and spriden_pidm = saradap_pidm
   -- and spriden_pidm = rcrapp1_pidm
    --and spriden_pidm = sortest_pidm

    and rcrapp1_aidy_code = rcrapp2_aidy_code
    and rcrapp1_seq_no = rcrapp2_seq_no
    and rcrapp1_infc_code = rcrapp2_infc_code

    and rcrapp1_infc_code = 'EDE'
    and rcrapp2_pell_pgi < '30000'
    and rcrapp1_curr_rec_ind = 'Y'
    and saradap_term_code_entry >= '202001'
    and rcrapp2_aidy_code = '2021'
    and saradap_apst_code = 'D'
    and saradap_resd_code = 'R'
    and saradap_styp_code in ('0','1', '2', '3', '4', '5', '6')
    and rcrapp1_inst_hous_cde in ('1', '2', '3', '4')
    and sortest_tesc_code = 'IR'

order by 2 desc;
...