|
Пронумеровать записи в хапросе. | ☑ | ||
---|---|---|---|---|
0
Престарелый Заяц
22.07.20
✎
09:11
|
Добрый день.
Результат запроса два столбика: количество и артикул, количество может повторятся, артикул - нет. Задача пронумеровать записи - платформа меньше 13 :(. Можно как то такое сделать? |
|||
1
Престарелый Заяц
22.07.20
✎
09:13
|
Забыл написать - артикул типа строка.
|
|||
2
Галахад
гуру
22.07.20
✎
09:14
|
Гм. А для чего это нужно?
|
|||
3
Престарелый Заяц
22.07.20
✎
09:22
|
(2) Выбрать первые N записей в каждой группе.
|
|||
4
Garykom
гуру
22.07.20
✎
09:22
|
(0) Хумерация хаписей хв хапросе хэто ху...удивительная хтука
|
|||
5
Престарелый Заяц
22.07.20
✎
09:23
|
(4) Да она вполне себе нормальная если есть уникальность.
|
|||
6
azt-yur
22.07.20
✎
09:28
|
Делается такая х..нь соединением таблицы с самой собой. Но использовать такие запросы не гуд, если таблица большая, то считать будет долго.
Пример для справочника валют: ВЫБРАТЬ Валюты.Ссылка ПОМЕСТИТЬ Вал ИЗ Справочник.Валюты КАК Валюты ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ Вал.Ссылка, КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Вал1.Ссылка) КАК К ИЗ Вал КАК Вал ЛЕВОЕ СОЕДИНЕНИЕ Вал КАК Вал1 ПО Вал.Ссылка < Вал1.Ссылка СГРУППИРОВАТЬ ПО Вал.Ссылка УПОРЯДОЧИТЬ ПО К |
|||
7
Василий Алибабаевич
22.07.20
✎
09:35
|
(3) "Выбрать первые N записей в каждой группе." Вполне средствами языка запросов. Без всяких нумераций.
|
|||
8
Престарелый Заяц
22.07.20
✎
09:37
|
(6) Немного не то вроде.
(7) Другого способа не видел - поищу. |
|||
9
Престарелый Заяц
22.07.20
✎
09:38
|
(7) Язык запросов же 1С "не умеет" в кореллирующие подзапросы, хотя он вроде как то эмулился, но в итоге получается страшнее чем селфджойн.
|
|||
10
Мимохожий Однако
22.07.20
✎
09:39
|
(3) Выбрать первые 100 в тексте запроса нельзя?
|
|||
11
Василий Алибабаевич
22.07.20
✎
09:39
|
(8) ГЫ. "ВЫБРАТЬ ПЕРВЫЕ ... ИЗ ..."
В справке : "ВЫБРАТЬ [РАЗРЕШЕННЫЕ] [РАЗЛИЧНЫЕ] [ПЕРВЫЕ <Количество>] " |
|||
12
Престарелый Заяц
22.07.20
✎
09:41
|
(11) Первые не значит "первые любые".
|
|||
13
Престарелый Заяц
22.07.20
✎
09:42
|
(10) Если в нужном порядке, то нельзя.
|
|||
14
Василий Алибабаевич
22.07.20
✎
09:43
|
(12) "первые любые" ??? Вот здесь не понятно. Чем "первые 100" отличаются от "первых любых 100"?
|
|||
15
Garykom
гуру
22.07.20
✎
09:43
|
(0) Не надо нумеровать записи в запросе!
Результат запроса уже пронумерован всегда! |
|||
16
Василий Алибабаевич
22.07.20
✎
09:45
|
(13) Почему нельзя то? Вложенный запрос сортируй как хочешь. Из него выбери первых <сколько нужно>. Они будут в нужном порядке. Всяко будет быстрее, чем (6).
|
|||
17
Престарелый Заяц
22.07.20
✎
09:45
|
(14) Есть критерий сортировки стоимость. Выбрать самые продаваемые товары в каждой товарной группе, это нормально делается с ссылочными полями либо с унмкальными записями.
|
|||
18
Престарелый Заяц
22.07.20
✎
09:46
|
(15) Другое дело, что эта нумерация недоступна в движках ничего 13.
|
|||
19
Престарелый Заяц
22.07.20
✎
09:48
|
(16) Что куда вложено? Есть пример?
|
|||
20
acht
22.07.20
✎
09:55
|
(19) выбрать первые 100 * из (выбрать количество, артикул, стоимость из ...) как пiдзапрос упорядочить по пiдзапрос.стоимость
|
|||
21
Василий Алибабаевич
22.07.20
✎
09:59
|
(19) Пример по рейтингу дебеторов по группам финансирования
ВЫБРАТЬ Контрагенты.Финансирование КАК Финансирование, ВложенныйЗапрос.Контрагент КАК Контрагент, ВложенныйЗапрос.СуммаОстаток КАК СуммаОстаток ИЗ Справочник.Контрагенты КАК Контрагенты //Вот он вложенный запрос. В нем выбираются первые 20 мутдаков, которые не платят ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ ПЕРВЫЕ 20 ВзаиморасчетыОстатки.Контрагент КАК Контрагент, ВзаиморасчетыОстатки.СуммаОстаток КАК СуммаОстаток, ВзаиморасчетыОстатки.Контрагент.Финансирование КАК КонтрагентФинансирование ИЗ РегистрНакопления.Взаиморасчеты.Остатки КАК ВзаиморасчетыОстатки //Вот она сотрировка по сумме задолженности УПОРЯДОЧИТЬ ПО СуммаОстаток) КАК ВложенныйЗапрос //Вот оно условие связи ПО Контрагенты.Финансирование = ВложенныйЗапрос.КонтрагентФинансирование |
|||
22
Престарелый Заяц
22.07.20
✎
10:20
|
(21) В подзапросе ты выбираешь просто первые 20, а нужно первые 20 в конкретной группе, это и будет кореллирующий подзапрос, который в 1С не работает.
Ладно фиг с ним, можно сделать то и в коде. |
|||
23
Василий Алибабаевич
22.07.20
✎
10:25
|
(22) Птля... Это просто пример вложенного запроса. Можно сделать подзапрос с параметрами отбора. Можно сделать в СКД и тогда "оно само". ...
|
|||
24
Престарелый Заяц
22.07.20
✎
10:55
|
(23) "Можно сделать подзапрос с параметрами отбора." - параметрами отбора должен быть элемент из верхнего запроса, а это и не выходит сделать.
На СКД можно сделать, если количество выбираемых записей фиксированно (но это не точно), хотя можно попробовать - спасибо за дельный совет - поробую. |
|||
25
Мимохожий Однако
22.07.20
✎
10:58
|
(22) Получи нужные записи нужной группы, отсортируй по нужному полю. И из этого запроса выбери первые в нужном количестве.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |