Я использую сиквел про для выбора данных из нескольких таблиц. Мне нужно сделать две вещи, которые, похоже, нуждаются в каком-то цикле. Я никогда не использовал какую-либо форму итерации в sql и не могу найти ресурс для начинающих, чтобы учиться.
Может ли кто-нибудь предложить, как выполнить следующие две задачи, или предложить учебник, где я могу изучить основы и понять это оттуда:
Задача 1. Просмотрите таблицу истории версий, найдите соответствующую запись истории для заданного идентификатора, который применялся на определенную дату, и выберите значение из этой записи. Форма таблицы истории:
- id, Item_id, version-created_at, значение
eg
- 1, 123, 2014-05-01, 754
- 2, 456, 2014-05-10, 333
- 3, 123, 2014-05-27, 709
и мне нужно найти значение элемента 123 на дату 2014-05-25 (т. е. мне нужно найти идентификатор записи = 1 и значение = 754, потому что это самая последняя версия элемента 123, созданная до моей целевой даты .
Итак, я полагаю, что мне нужно просмотреть таблицу в поисках элемента 123 и сравнить даты этих записей. Но я не знаю, как справиться с итерацией перехода от одной записи к другой и их сравнения.
Задание 2. Просмотрите одно текстовое поле, содержащее номер идентификатора продукта и соответствующую цену продукта в строке, и найдите идентификатор продукта с самой низкой ценой. Форма строки представляет собой серию пар цены «p» и идентификатора «i» в случайном порядке, например:
" - :p: 99.8 :i: 3 - :p: 59.0 :i: 5 - :p: 109.8 :i: 18 - :p: 82.45 :i: 46 "
и в этом примере мне нужно найти «5», являющийся идентификатором продукта с самой низкой ценой 59 долларов.
Итак, я полагаю, что мне нужно пройти через каждый из наборов p/i, возможно, путем подсчета символов, но я понятия не имею, как перебирать и сравнивать, чтобы найти лучшую цену.
Небольшая помощь не помешала бы.
Спасибо.