|
Как в запросе получить следующую позицию в списке после элемента с пометкой? | ☑ | ||
---|---|---|---|---|
0
svird
30.08.16
✎
09:29
|
Есть справочник, у элементов справочника есть реквизит Дата, мне надо в запросе получить следующий элемент после элемента с определенной датой. Как это сделать с наименьшими затратами?
|
|||
1
Горогуля
30.08.16
✎
09:33
|
выбрать первые 1 из справочник соединение (выбрать максимум где дата<=&нужная) по дата1>=дата2 порядочить по дата1 убыв
|
|||
2
svird
30.08.16
✎
09:40
|
(1) Проблема в том, что может быть элемент без даты вообще. По дате сортировать нельзя. Если бы можно было по дате отобрать было бы проще.
|
|||
3
Горогуля
30.08.16
✎
09:43
|
>без даты вообще
это как? ну замени первоя января чем-нибудь |
|||
4
Лефмихалыч
30.08.16
✎
09:43
|
гугли: срез последних на каждую дату
|
|||
5
mkalimulin
30.08.16
✎
09:44
|
(0) В каком порядке идут элементы?
|
|||
6
svird
30.08.16
✎
09:52
|
(5) Ну у них есть сортировка наподобие: Порядок шагов, но эти шаги могут быть не уникальны, так как могут быть несколько заходов (типа документооборот), поэтому к порядку шагов тоже привязаться не удается. Самое четкое, это если получить следующий элемент после элемента с определенной датой.
|
|||
7
Горогуля
30.08.16
✎
09:53
|
(6) любой из следующих?
|
|||
8
Горогуля
30.08.16
✎
09:55
|
в БД есть один элемент с датой 1 и пятьдесят элементов с датой 2. который из 50 интересует?
|
|||
9
igork1966
30.08.16
✎
09:57
|
(0)(2) Без сортировки задача не может быть решена в принципе.
Стандарт SQL не гарантирует повторения порядка записей в неупорядоченном результате запроса. |
|||
10
svird
30.08.16
✎
10:01
|
Оно сортируется по параметру Порядок шагов, просто получить номер этого порядка сложно, так как он в каком то регистре еще хранится. Так что можно сказать, что оно отсортировано. Поэтому и хочется получить следующий элемент, после определенного, понимаю, что наверно язык запросов этого не позволяет.
|
|||
11
igork1966
30.08.16
✎
10:07
|
(10) Если сортировка есть, то задача решаемая.
Недавно тут обсуждали получения курса на несколько дат, там как раз аналогичный алгоритм требовался. |
|||
12
aleks_default
30.08.16
✎
10:09
|
(10)Скорее твой язык не позволяет тебе полноценно сформулировать ТЗ.
|
|||
13
igork1966
30.08.16
✎
10:10
|
||||
14
SSSSS_AAAAA
30.08.16
✎
10:11
|
(10) "Так что можно сказать, что оно отсортировано"
Кому можно? Сортировка должна быть в запросе, а не где-то там, за горизонтом... |
|||
15
patria0muerte
30.08.16
✎
10:50
|
Можешь пронумеровать строки запроса по порядку и левым соединением получить искомое поле по НомерСтроки + 1.
Разумеется это взлетит, если есть поле, по которому можно однозначно отсортировать запрос. |
|||
16
mkalimulin
30.08.16
✎
11:07
|
(10) Приведи мысли в порядок. Либо сортировка есть. Тогда эта задача решается. И запросом и не запросом. Либо сортировки нет. Тогда эта задача не решается. Никак, ни запросом, ни каким-либо другим способом. Потому что, в этом случае, понятие "следующий" теряет смысл.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |