| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > СУБД, общие вопросы > Достать предыдущие значения |
| Автор: Platon 4.12.2008, 21:12 | ||||||||
| Здравствуйте, уважаемые. Трудно сформулировать, чего я хочу. есть данные
Мне нужно составить список eId, kId, position, id для "предыдущего сеанса (scan_time)" по отношению к заданному для каждого ключа(если так можно выразиться) "eId kId" . Но предыдущего не совсем. Пример по данным: по отношению к scan_time = 3 список будет следующий
Если же в таблице данных будет отсутствовать запись с ID = 7, то получится:
Эквивалентный запрос:
Но такой запрос только на утилизацию, что я и делаю Прошу о помощи. |
| Автор: Akella 5.12.2008, 09:38 | ||
задаёшь в параметре значение и тебе будет результат с учётом - 1 или я чего-то недопонял? |
| Автор: Zloxa 5.12.2008, 09:58 |
| Целевая платформа? Почему Ваш запрос "на утилизацию"? |
| Автор: Zloxa 5.12.2008, 10:42 | ||
Этот подход в ораклином форуме на sql.ru называют "бабушкиным методом". Этот метод использовался до появления ранжирующих функций в диалекте оракла. Cуть метода - составить строку, которая начинается с ранжируемого значения а в хвосте несет информационную стоставлющую, вычислить аггрегат по полученной строке, затем разобрать ее и извлечь информационную стоставлющую. В нашем примере мы ранжируемся по scan_time. В аггрегируемом выражении мы переводим значение scan_time в строку и дополняем лидирующими нулями до максимальной разрядности числа (в оракле это 40. если у нас scan_time int(10), достаточно будет дополнять до 10 символов) для того, чтобы упорядочивание по строковому представлению совпадало с упорядочиванием по числовому представлению. Хвостиком, мы цепляем к строке position. После вычисления максимального значения из полученной строки извлекаем position. Данный подход не совсем красив и эстетичен. Но позволяет одним проходом, без джойнов достичь желаемого. И, он весьма универсален. Достаточно лишь перевести строковые функции на диалект целевой платформы. |
| Автор: Platon 5.12.2008, 13:30 |
| Zloxa, оох какая интересная теория! Спасибо попробую. |
| Автор: Platon 5.12.2008, 15:48 |
| Оформил. Работает. Zloxa, +1!!! |