У меня есть база данных оракула, и я пытаюсь запросить данные в таблице1 и внутреннем соединении с другой таблицей2, где один из столбцов (дата) равен самой последней дате и другой столбец в таблице 2 (построен) равен «да». Этот запрос ниже не подбирая функции, где и не может точно определить, почемуВнутреннее соединение SQL-запроса и где на второй таблице
SELECT id, b, c, d
FROM table1 a
INNER JOIN table2 b on b.id = a.id
WHERE b.date =(SELECT MAX(date) FROM table2) AND b.built = 'yes'
Фактический запрос
SELECT m_tp_str, m_tp_trn, m_tp_dte, m_tp_buy, m_tp_qtyeq, m_tp_nom, m_instr,
m_tp_p, m_tp_status2
FROM HA_PRD_DM.TP_ALL_REP a INNER JOIN HA_PRD_DM.UDF_CURR_REP b
ON a.m_udf_ref2 = b.m_nb
WHERE b.m_rep_date2 = (SELECT MAX(c.m_rep_date2) FROM HA_PRD_DM.UDF_CURR_REP c)
AND b.m_purpose = 'yes'
Что значит «не поднять функцию, где есть функция? Вы получили сообщение об ошибке? Вы получаете нулевые строки? Можете ли вы опубликовать некоторые ожидаемые результаты? Я ожидаю, что вы хотите получить строку с 'MAX (date)' _ для каждого id_, но это не то, что вы говорите в вопросе, и это не то, что ваш запрос будет делать. Некоторые разъяснения помогут. –
@MatthewMcPeak У меня нет ошибок или нулевых строк. У меня ожидается 5k строк, но я получаю более 1,5 мм. И нет MAX (дата) для каждого идентификатора. Я хочу получить все ID (может быть дубликатов), который имеет максимальную дату – obabs
Маловероятно, что это ** фактический ** запрос (вы выбираете 'b', который является псевдонимом для таблицы, поэтому, пожалуйста, не делайте ответ ** да это фактический запрос **). Отправьте фактический запрос, иначе вам будет сложно помочь. – mathguy