EDIT: Мои фактические выберите выглядит следующим образом:Выберите определенную запись из выбранного запроса
select x.id, x.name, x.status, y.edit, y.date
, LEAD(y.date) OVER (PARTITION BY x.id ORDER BY y.date) - date AS edit_diff
from (table1 x left join table2 y on x.id = y.id)
where x.id = 1
результат выглядит следующим образом:
ID Name Status Edit Date edit_diff
1 n1 closed edt1 01/01/2005 6
1 n1 closed edt1 07/01/2005 8
1 n1 closed edt2 15/01/2005 5
1 n1 closed edt2 20/01/2005 3
1 n1 closed edt3 23/01/2005 null
Я на самом деле хочу, чтобы мои выбрать, чтобы вернуться только изменения со старыми датами:
ID Name Status Edit Date edit_diff
1 n1 closed edt1 01/01/2005 14
1 n1 closed edt2 15/01/2005 8
1 n1 closed edt3 23/01/2005 null
Помогите? Я пробовал (SELECT edit from mytable WHERE DATE = MAX(DATE))
, но он не работает, так как у меня есть order by
по тому же запросу. Благодарю.
Я попробовал ваш второй код и выдает эту ошибку: ORA-00904 : '" x "." name ": недопустимый идентификатор. Идентификатор FYI, имя, статус и редактирование поступают из разных таблиц (я не знаю, имел ли это инцидент): 'select x.id, x.name, x.status, y.edit, y.date from (table1 x left join table2 y on x.id = y.id) где x.id = 1 ' – RidRoid
В моем ответе и в вашем вопросе нет' x.name' или 'y.edit'. Если у вас другой вопрос, вы должны задать ему другой вопрос. Это предназначено для ответа на вопрос, который вы * задали *, используя имя таблицы 'mytable', которое * вы * предоставили. –
Моя ошибка, извините за это :) Я обновил свой вопрос с помощью правильного запроса (я подумал, что это не повлияет на решение, так как я пытаюсь манипулировать результатом запроса select, а не самого запроса ...) – RidRoid