|
v8: Помогите с решением. Поиск наименования в массиве строк | ☑ | ||
---|---|---|---|---|
0
Альбатрос
25.06.13
✎
12:37
|
Исходные данные - массив строк.
Задача: найти наименование справочника, имеющее макс. кол-во вхождений строк из массива. Предложите грамотное решение =) Заранее спасибо за ответы. |
|||
1
Maxus43
25.06.13
✎
12:41
|
запросом?
|
|||
2
SherifSP
25.06.13
✎
12:42
|
(0) Добавить колонку в массив с типом число и значением 1 на каждую строку, и просто сгруппируй по колонкам
|
|||
3
Альбатрос
25.06.13
✎
12:42
|
(1) Ну да. Только кроме как запрос в цикле я ничего не придумал =)
|
|||
4
SherifSP
25.06.13
✎
12:43
|
+(2) И отсортируй по числовой колонке по убыванию, 1 строка будит та, которую ты ищешь))
|
|||
5
pessok
25.06.13
✎
12:43
|
(2) самый безобидный вариант
|
|||
6
Альбатрос
25.06.13
✎
12:49
|
(2) (4) Сори, я что-то не понял. (((
"Добавить колонку в массив" - массив не имеет колонок, значит, вы имеете ввиду ТЗ. Хорошо. Добавлю колонку числовую, заполню ее для всех строк значением 1. Как мне поможет сортировка этой ТЗ в запросе при выборе макс. количества вхождения строк этой же ТЗ в какое-либо наименование справочника? Еще раз сори, если туплю =) |
|||
7
pessok
25.06.13
✎
12:50
|
(6) плохо читал. еще и свернуть надо
ТЗ.Свернуть("ПолеПоиска", "Количество"); Тз.Сортировать("Количество Убыв"); МаксВхождений = ТЗ[0].ПолеПоиска |
|||
8
salvator
25.06.13
✎
12:51
|
(6) А попробовать, не?
|
|||
9
acsent
25.06.13
✎
12:52
|
динамический запрос с колонками - 1 за вхождение элемента
|
|||
10
Альбатрос
25.06.13
✎
12:52
|
(7) Не, не, вы неправильно меня поняли ))) Сейчас дам пример
|
|||
11
fmrlex
25.06.13
✎
12:53
|
(0) Куда справочнику должны входить строки?
В элементы справочника? |
|||
12
Альбатрос
25.06.13
✎
12:58
|
Элементы массива:
"Хутин" "Пуй" "и" "это" "все" "знают" Наименования элементов справочника: 1. "Хутин Пуй - и в России это все знают" 2. "Хутин Пуй" 3. "Хутин Пуй все знают". Так вот, мне нужен запрос, который бы вернул мне ссылку на элемент справочника с наименованием[1], т.к. в это наименование вошло наибольшое кол-во элементов массива. Ессесно, кол-во элементов массива может быть разное. Надеюсь, понятно объяснил.=) |
|||
13
fmrlex
25.06.13
✎
13:02
|
(12) Запрос. И на 8.3 есть статистические функции.
|
|||
14
Deon
25.06.13
✎
13:03
|
(12) собирай запрос из кучи объединенных запросиков по каждому элементу массива.
|
|||
15
Альбатрос
25.06.13
✎
13:03
|
(13) Понятно, что запрос. Я его придумать не могу. К сожалению, только 8.2
|
|||
16
kosts
25.06.13
✎
13:04
|
Запрос, подобно и групировка
|
|||
17
Deon
25.06.13
✎
13:08
|
ВЫБРАТЬ
Спр.Ссылка, 1 КАК КолвоВхождений ИЗ Справочник.Спр КАК Спр ГДЕ Спр.Наименование ПОДОБНО "%Хутин%" ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ Спр.Ссылка, 1 ИЗ Справочник.Спр КАК Спр ГДЕ Спр.Наименование ПОДОБНО "%Пуй%" и т.д. Ну и потом это в вложенный запрос, и группировочку сверху |
|||
18
Альбатрос
25.06.13
✎
13:10
|
(17) Кол-во элементов массива разное, но, в принципе, можно же в цикле текст присоединять. Должно сработать
|
|||
19
Альбатрос
25.06.13
✎
13:10
|
(18) или нельзя? =)
|
|||
20
Альбатрос
25.06.13
✎
13:12
|
(16) Вы имели ввиду вариант (17)?
|
|||
21
Deon
25.06.13
✎
13:12
|
(19) Можно и даже нужно. Сборка текста запроса в цикле мистянами не запрещена.
|
|||
22
Rovan
гуру
25.06.13
✎
13:12
|
(18) да
|
|||
23
kosts
25.06.13
✎
13:13
|
Перевести массив в ТЗ.
В запросе. Из ТЗ сделать временную таблицу. Далее соединяем временную таблицу со справочником с "подобно". Потом группировка. |
|||
24
Deon
25.06.13
✎
13:15
|
(23) а ведь да, так прикольней
|
|||
25
Альбатрос
25.06.13
✎
13:16
|
(23) Хм... сработает? Теоритически тоже должен. Этот вариант попроще, чем (17) Начну с него =)
Всем большое спасибо!!! |
|||
26
Альбатрос
28.06.13
✎
09:08
|
Мужики, как применить ПОДОБНО к полю ВТ?
Вот так работает: ПО (Контрагенты.Наименование ПОДОБНО МассивСтрок.Стр) А вот так нет: ПО (Контрагенты.Наименование ПОДОБНО %МассивСтрок.Стр%) |
|||
27
kosts
28.06.13
✎
10:19
|
||||
28
Очкарик
28.06.13
✎
10:22
|
(0) перебери массив пузырьковым методом
|
|||
29
HeroShima
28.06.13
✎
10:31
|
(0) подстроки могут пересекаться? наименования одних элементов могут быть подстроками других?
|
|||
30
Альбатрос
28.06.13
✎
11:28
|
(29) Влегкую.
(27) Вообщем, накалякал вот такой запрос. Так и не придумал, как здесь правильно использовать группировку: Запрос.Текст = "ВЫБРАТЬ | МассивСтрокВН.Стр |ПОМЕСТИТЬ МассивСтрок |ИЗ | &МассивСтрокВН КАК МассивСтрокВН |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | Контрагенты.Ссылка КАК Ссылка |ИЗ | МассивСтрок КАК МассивСтрок | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Контрагенты КАК Контрагенты | ПО (Контрагенты.Наименование ПОДОБНО ""%"" + МассивСтрок.Стр + ""%"") | |СГРУППИРОВАТЬ ПО | Контрагенты.Ссылка"; |
|||
31
MKZM
28.06.13
✎
11:36
|
Берешь список наименований справочников и цикле считаешь вхождение слов, запоминешь название и кол вхож переменных. Если появляется строка с большим вхождением, то запоминаешь вместо прежних. вроде так.
|
|||
32
Альбатрос
28.06.13
✎
11:45
|
(31) Хоцца через запрос сделать =) Тем более он уже почти готов в (30), осталось только выявить в нем ссылку, имеющую наибольшее вхождение. А я вот не могу понять как. Говорят, через группировку, но я и так и сяк пробовал, результата не получил. Как тут говорят, у меня ошибка в ДНК =)
|
|||
33
kosts
28.06.13
✎
12:52
|
(32)
КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Участники.Ссылка) КАК КолВо или Добавь поле с единицей. В группировке просуммируй. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |