Oracle SQL Получить ссылку на третью таблицу - PullRequest
1 голос
/ 14 апреля 2020

У меня есть база данных с 3 таблицами:

  • PM_FLX_ENTE
  • PM_ST
  • PM_ANO_SP

, и я хотел бы получить PM_ANO_SP.L_ANO_SP для определенных значений PM_ANO_L.L_ANO, который содержит кодовый номер с /.

SELECT COUNT(RF_INTRN),TRIM(pm_st.c_st),TRIM(pm_ano_l.L_ANO)
    FROM PM_FLX_ENTE
    INNER JOIN PM_ST ON PM_FLX_ENTE.C_ST = PM_ST.C_ST
    INNER JOIN PM_ANO_L ON PM_FLX_ENTE.C_ANO = pm_ano_l.c_ano
    WHERE pm_flx_ente.C_ANO <> '0000'
        AND pm_ano_l.c_lang = 'FR'
    group by TRIM(pm_st.c_st), TRIM(pm_ano_l.L_ANO)
ORDER BY COUNT(RF_INTRN) DESC

sql query result and pm_ano_sp table Не могли бы вы мне помочь, пожалуйста

Ответы [ 2 ]

1 голос
/ 14 апреля 2020

Это немного излишне, но если в вашем PM_ANO_SP есть только Id, то переходить к объединению и работать с тем, что вы получаете, - путь:

SELECT 
    COUNT(RF_INTRN),
    TRIM(NVL(PM_ANO_SP.L_ANO_SP, pm_st.c_st)), -- If found in PM_ANO_SP, use it
    TRIM(pm_ano_l.L_ANO)
FROM PM_FLX_ENTE
INNER JOIN PM_ST 
    ON PM_FLX_ENTE.C_ST = PM_ST.C_ST
INNER JOIN PM_ANO_L 
    ON PM_FLX_ENTE.C_ANO = PM_ANO_L.C_ANO
LEFT JOIN PM_ANO_SP 
    ON PM_ST.C_ST = PM_ANO_SP.C_ST -- < Don't know the name
WHERE 
    pm_flx_ente.C_ANO <> '0000'
    AND pm_ano_l.c_lang = 'FR'
GROUP BY TRIM(pm_st.c_st), TRIM(pm_ano_l.L_ANO)
ORDER BY COUNT(RF_INTRN) DESC
0 голосов
/ 14 апреля 2020

Один из вариантов - добавить еще одно условие в предложение WHERE:

and instr(PM_ANO_L.L_ANO, '/') > 0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...