ВНУТРЕННЕЕ СОЕДИНЕНИЕ от другого ВНУТРЕННЕГО СОЕДИНЕНИЯ - PullRequest
0 голосов
/ 09 апреля 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 Можете ли вы мне помочь, пожалуйста

1 Ответ

0 голосов
/ 09 апреля 2020

Вы видите какую-то ошибку?

Обратите внимание, что при выполнении нескольких внутренних объединений предыдущие условия объединения должны выполняться для других объединений.

IE

INNER JOIN PM_ST ON PM_FLX_ENTE.C_ST = PM_ST.C_ST

Должен оценить значение true, чтобы сработало следующее

INNER JOIN PM_ANO_L ON PM_FLX_ENTE.C_ANO = pm_ano_l.c_ano

Чтобы решить эту проблему, вы можете изменить ВНУТРЕННИЕ СОЕДИНЕНИЯ на ВЛЕВО СОЕДИНЕНИЯ

SELECT TRIM(pm_st.c_st),TRIM(pm_ano_l.L_ANO),COUNT(RF_INTRN)
        FROM PM_FLX_ENTE
        LEFT JOIN PM_ST ON PM_FLX_ENTE.C_ST = PM_ST.C_ST
        LEFT JOIN PM_ANO_L ON PM_FLX_ENTE.C_ANO = pm_ano_l.c_ano
        LEFT JOIN PM_ANO_SP ON PM_ANO_L.L_ANO = pm_ano_sp.l_ano_sp
            WHERE pm_flx_ente.C_ANO <> '0000'
            AND C_LANG = 'FR'
            and pm_ano_l.L_ANO like '%/%'
        GROUP BY pm_st.c_st,pm_ano_l.L_ANO
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...