Гость
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Разноуровневый список: сортировка в запросе / 25 сообщений из 30, страница 1 из 2
31.07.2018, 15:02
    #39681603
MokeevP
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разноуровневый список: сортировка в запросе
Здравствуй, Форум

Хочу спросить Вас, как можно решить такую проблему:
Дано таблица с пунктами нормативной документации:
IDПункЗначения21.42.53.3.75.1.1.95.1.17.85.1.7.
Как можно сделать запрос чтобы список был по порядку возрастания (По лоГГике, а не по значению символа), исключая такие случаи:
95.1.17.85.1.7.
из теоретических размышлений:
1. Заставлять людей ставить нули в нужных местах (но они всё равно не знают сколько их нужно)
2. Как то распарсивать, но понятия нет ни как это делать вообще, ни как это реализовать в sql запросе
____
vk.com/taenfox
...
Рейтинг: 0 / 0
31.07.2018, 15:04
    #39681608
MokeevP
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разноуровневый список: сортировка в запросе
И ещё одна проблема в то же лукошко:
хочется как то добавлять отступы в соответствии с уровнем списка
...
Рейтинг: 0 / 0
31.07.2018, 15:25
    #39681619
ROI
ROI
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разноуровневый список: сортировка в запросе
MokeevP1. Заставлять людей ставить нули в нужных местах (но они всё равно не знают сколько их нужно)
2. Как то распарсивать, но понятия нет ни как это делать вообще, ни как это реализовать в sql запросе
деревья, сборки, этапы, версии сборок.
Это неоднократно осуждалось не только на нашей ветке.
Это текстовое поле и нули нужны для сортировки.
По этому сколько знакомест в каждой части вам придется определяться обязательно и прцедуркой поправлять пользователей (то есть вставлять нулики)
С уважением.
...
Рейтинг: 0 / 0
31.07.2018, 15:43
    #39681629
Predeclared
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разноуровневый список: сортировка в запросе
Long from IP
Не?
...
Рейтинг: 0 / 0
31.07.2018, 15:53
    #39681637
MokeevP
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разноуровневый список: сортировка в запросе
PredeclaredLong from IP
Не?

Не, не хочу рисковать при ситуации, когда я захочу поменять трактовку, старую сделать недействительной, а новая получится в самом низу списка, потому что id - счётчик
...
Рейтинг: 0 / 0
31.07.2018, 15:56
    #39681638
MokeevP
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разноуровневый список: сортировка в запросе
ROIMokeevP1. Заставлять людей ставить нули в нужных местах (но они всё равно не знают сколько их нужно)
2. Как то распарсивать, но понятия нет ни как это делать вообще, ни как это реализовать в sql запросе
деревья, сборки, этапы, версии сборок.
Это неоднократно осуждалось не только на нашей ветке.
Это текстовое поле и нули нужны для сортировки.
По этому сколько знакомест в каждой части вам придется определяться обязательно и прцедуркой поправлять пользователей (то есть вставлять нулики)
С уважением.

А если я категорически не знаю на сколько уровней очередной документописец захочет погрузится в структуру?
И пользователю придётся на каждый уровень отвечать в inputbox циферку?
...
Рейтинг: 0 / 0
31.07.2018, 16:02
    #39681643
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разноуровневый список: сортировка в запросе
Если структура именно такая - строго цифры, строго разделённые точками, и если имеется некое ограничение на количество цифр - я бы нарисовал функцию, которая форматирует эти номера в номера с фиксированным количеством ведущих нулей. Типа

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
const cnt as integer = 10

function myformat(idx as string) as string
  arr=split(idx, ".")
  for i = lbound(arr) to ubound(arr)
    arr(i) = right(string(cnt, '0') & arr(i), cnt)
  next i
  myformat = join(arr, '.')
end function


И использовал её в запросах для сортировки.
...
Рейтинг: 0 / 0
31.07.2018, 17:04
    #39681676
Predeclared
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разноуровневый список: сортировка в запросе
MokeevP..., потому что id - счётчик
А при чем тут ID и счетчик?
...
Рейтинг: 0 / 0
31.07.2018, 17:21
    #39681682
Serg197311
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разноуровневый список: сортировка в запросе
MokeevP
А если я категорически не знаю на сколько уровней очередной документописец захочет погрузится в структуру?
И пользователю придётся на каждый уровень отвечать в inputbox циферку?
У меня с деревом, при его заполнении, добавлении - перемещении конечных нод и папок была такая же проблема....ввел в таблицу доп поле - уровень - и заполняю его функцией при каждом добавлении- перемещении
...
Рейтинг: 0 / 0
31.07.2018, 17:22
    #39681684
MokeevP
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разноуровневый список: сортировка в запросе
PredeclaredMokeevP..., потому что id - счётчик
А при чем тут ID и счетчик?
При том что я не знаю как счётчику произвольное значение присвоить

Возможно, я не правильно понял Ваше предложение
...
Рейтинг: 0 / 0
31.07.2018, 17:25
    #39681687
MokeevP
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разноуровневый список: сортировка в запросе
Serg197311MokeevPА если я категорически не знаю на сколько уровней очередной документописец захочет погрузится в структуру?
И пользователю придётся на каждый уровень отвечать в inputbox циферку?
У меня с деревом, при его заполнении, добавлении - перемещении конечных нод и папок была такая же проблема....ввел в таблицу доп поле - уровень - и заполняю его функцией при каждом добавлении- перемещении

и, наверно, родительский пункт, да?
Вариант нравится, но потом запрос всё равно не знаю как сделать
...
Рейтинг: 0 / 0
31.07.2018, 17:46
    #39681700
MokeevP
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разноуровневый список: сортировка в запросе
AkinaЕсли структура именно такая - строго цифры, строго разделённые точками, и если имеется некое ограничение на количество цифр - я бы нарисовал функцию, которая форматирует эти номера в номера с фиксированным количеством ведущих нулей. Типа

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
const cnt as integer = 10

function myformat(idx as string) as string
  arr=split(idx, ".")
  for i = lbound(arr) to ubound(arr)
    arr(i) = right(string(cnt, '0') & arr(i), cnt)
  next i
  myformat = join(arr, '.')
end function


И использовал её в запросах для сортировки.

А если попробовать так
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
function myformat(idx as string) as integer

dim mf as string

do while left(idx,1)<>"."
  mf= mf & left(idx,1)
  idx = right(idx, len(idx)-1)
loop

mf = mf & "."

do while len(idx)<>0
   if left(idx,1)="." then go to SkipDot
   
   mf = mf & right(cstr(left(idx,InStr(idx,"."))/1000),4)
   idx = right(idx, len(idx)-InStr(idx,"."))

   SkipDot:
   idx = right(idx, len(idx)-1)
loop
end function



Вообще сейчас это на коленке писал и задумка была круче исполнения, но, если тут ещё чуть-чуть поколдовать оно ведь может и списки а,б,в воспринимать... наверно... если оно вообще работает :D
...
Рейтинг: 0 / 0
31.07.2018, 17:48
    #39681702
Serg197311
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разноуровневый список: сортировка в запросе
MokeevP
и, наверно, родительский пункт, да?
Вариант нравится, но потом запрос всё равно не знаю как сделать
Ну у меня - да, родительский...
У вас надо нарисовать функцию которая бы выдавала некую абсолютную величину, рассчитанную из кода пункта, разместить ее в модуле под public function, и при выполнении запроса указывать сортировку по ней....
Саму функцию сейчас рисовать не буду - устал - но идея такая: цифра до первой точки - число тысяч, от первой до второй - сотен, после второй - единицы. Достаем символы через instr и mid, конвертируем их через eval и складываем.
Гуру, не бейте сильно ногами если что не так написал......
...
Рейтинг: 0 / 0
31.07.2018, 17:53
    #39681704
Serg197311
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разноуровневый список: сортировка в запросе
Ну может стоит порядок нулей увеличить... чтоб 3.17.4 с 4.5.2 правильно разместить....
...
Рейтинг: 0 / 0
31.07.2018, 17:56
    #39681705
MokeevP
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разноуровневый список: сортировка в запросе
[quot Serg197311]MokeevPГуру, не бейте сильно ногами если что не так написал......

Не переживайте, бить будут меня)
...
Рейтинг: 0 / 0
31.07.2018, 18:07
    #39681706
Лапух
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разноуровневый список: сортировка в запросе
MokeevP,
В какой то подобной БД, например справочник УК, я создал 3 числовых поля
Статья
Часть
Пункт
Сортировал по ним
А визуально в запросе соединял эти 3 поля.
...
Рейтинг: 0 / 0
31.07.2018, 18:10
    #39681708
Serg197311
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разноуровневый список: сортировка в запросе
ЛапухMokeevP,
В какой то подобной БД, например справочник УК, я создал 3 числовых поля

А если есть возможность сделать так - ИМХО самый лучший выход...
...
Рейтинг: 0 / 0
31.07.2018, 18:20
    #39681711
MokeevP
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разноуровневый список: сортировка в запросе
Serg197311ЛапухMokeevP,
В какой то подобной БД, например справочник УК, я создал 3 числовых поля

А если есть возможность сделать так - ИМХО самый лучший выход...
Но это опять таки при известном количестве уровней.

Суть моей бд в выставлении замечаний к отчетам. К этим замечаниям нужно прикрутить нормативку. А нормативку у нас это различные отраслевые регламенты, стандарты нашей организации, стандарты этой системы организаций, инструкции и методички и короче хрен его знает какие там уровни :D
...
Рейтинг: 0 / 0
31.07.2018, 18:30
    #39681717
Лапух
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разноуровневый список: сортировка в запросе
MokeevP, навряд ли больше 4.
Для 4 параметра можно придумать имечко, например - подпункт.
Зато простенькое и со вкусом.
Даже такой - Лапух как я сможет понять логику работы с БД, а уж ваши пользователи или вы сами , как разработчик и подавно.
Иногда использую одно числовое поле - Номер по порядку.
Навводил данных, хоть со 100 подпунктами, пронумеровал как тебе хотса и отсортировал по этому полю.
Нудно, но именно так как тебе захочется.
Лично я сторонник первого варианта из 3-х таблиц и в 3-й таблице 2 поля, если есть 4-й подпункт.
...
Рейтинг: 0 / 0
31.07.2018, 19:19
    #39681734
Лапух
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разноуровневый список: сортировка в запросе
Лапух, тока щас мои тараканы в голове подсказали, что я кому то помогал делать БД по военной части, а там градация типа такой была
Армия
Корпус
Дивизия
Полк
Батальон
Рота
Взвод
Отделение
Возможно - Группа (спецназ)
И это было реализовано на 2-х таблицах.
Как только доберусь до ПК из планшета, то выложу если интересно.
Хотя это наверное общеизвестный метод решения задачи.
...
Рейтинг: 0 / 0
31.07.2018, 19:47
    #39681739
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разноуровневый список: сортировка в запросе
MokeevPА если попробовать такА в чём профит?
Для смешанных данных можно в моём коде вместо нулей добавлять и пробелы - работать будет точно так же.
...
Рейтинг: 0 / 0
31.07.2018, 22:35
    #39681784
MokeevP
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разноуровневый список: сортировка в запросе
AkinaMokeevPА если попробовать такА в чём профит?
Для смешанных данных можно в моём коде вместо нулей добавлять и пробелы - работать будет точно так же.

Не знаю как на счёт профита, я твой просто не понимаю, скилл не тот
Но интересно - будет работать или нет мой, завтра оба попробую и посмотрю кто куды и что к чему
...
Рейтинг: 0 / 0
31.07.2018, 22:41
    #39681787
MokeevP
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разноуровневый список: сортировка в запросе
ЛапухЛапух, тока щас мои тараканы в голове подсказали, что я кому то помогал делать БД по военной части, а там градация типа такой была
Армия
Корпус
Дивизия
Полк
Батальон
Рота
Взвод
Отделение
Возможно - Группа (спецназ)
И это было реализовано на 2-х таблицах.
Как только доберусь до ПК из планшета, то выложу если интересно.
Хотя это наверное общеизвестный метод решения задачи.

в отношении меня - "Нищему что ни дай - всё прибыль", посему буду рад изучить, клади :)

Я понимаю как решить такую задачу в разрезе выдачи отчёта через VBA
Но я не очень понимаю как сделать это посредством Select`а
В моей настольной книжке есть параграф про рекурсивные запросы и, насколько я это понимаю, это то, что нужно, но практически применить их я пока не в силе, просто понимания ещё нет, натурально смотрю в книгу и вижу фигу
Книга, кстати, из серии "для чайников"
...
Рейтинг: 0 / 0
31.07.2018, 23:08
    #39681792
MokeevP
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разноуровневый список: сортировка в запросе
Кстати, а полтора километра Union'ов - это, наверно, не слишком адекватное решение?)
...
Рейтинг: 0 / 0
01.08.2018, 06:05
    #39681819
Лапух
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разноуровневый список: сортировка в запросе
MokeevP, посмотрел пример, на свежую голову, что хотел показать.
Там немного не то, точнее совсем не то, что вам нужно.
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Разноуровневый список: сортировка в запросе / 25 сообщений из 30, страница 1 из 2
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]