1. user822247 12.02.20 13:37 Сейчас в теме

Подскажите с нумерацией строк в запросе

Здравствуйте

есть простенький запрос с добавленной колонкой номер
Подскажите как правильно пронумеровать.

ВЫБРАТЬ
	1 КАК Цифра,
	"А" КАК Буква
ПОМЕСТИТЬ Вт1

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
	2,
	"А"

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
	1,
	"В"

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
	2,
	"В"
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	ВтПро.Буква,
	ВтПро.Цифра КАК Цифра
ПОМЕСТИТЬ Вт2
ИЗ
	Вт1 КАК ВтПро
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	КОЛИЧЕСТВО(Вт1.Буква) КАК Номер,
	Вт2.Буква,
	Вт2.Цифра
ИЗ
	Вт2 КАК Вт2
		ВНУТРЕННЕЕ СОЕДИНЕНИЕ Вт1 КАК Вт1
		ПО Вт2.Буква >= Вт1.Буква
			И Вт2.Цифра >= Вт1.Цифра

СГРУППИРОВАТЬ ПО
	Вт2.Буква,
	Вт2.Цифра

УПОРЯДОЧИТЬ ПО
	Номер
Показать



Пробую сделать так но выходить дважды цифра 2
Найденные решения
3. davealone 140 12.02.20 14:04 Сейчас в теме
(1) Нужно определить какое основное поле, какое вторичное (буква или цыфра). По условию И у Вас не попадет строка следующей буквы и меньшей цыфры. нужно как-то так:

		ПО (Вт2.Буква > Вт1.Буква
			ИЛИ Вт2.Буква = Вт1.Буква
			И Вт2.Цифра >= Вт1.Цифра)


Или наоборот через цыфру если по ней должны быть первая сортировка
user822247; +1 Ответить
Остальные ответы
Избранное Подписка Сортировка: Древо
2. lmnlmn 58 12.02.20 14:00 Сейчас в теме
(1) Сформулируйте понятнее конечную цель. Что пронумеровать: строки запроса, цифры, буквы?
4. user822247 12.02.20 14:05 Сейчас в теме
(2) пронумеровать по порядку выход полей

а 1
а 2
в 1
в 2
12. lmnlmn 58 12.02.20 15:34 Сейчас в теме
(4) У вас в итоговом запросе 3 поля "Номер", "Буква" и "Цифра" которые в этом порядке и выводятся. Будет проще если вы не абстрактный пример приведете, а реальный, либо будете использовать устоявшуюся в среде 1С терминологию.
3. davealone 140 12.02.20 14:04 Сейчас в теме
(1) Нужно определить какое основное поле, какое вторичное (буква или цыфра). По условию И у Вас не попадет строка следующей буквы и меньшей цыфры. нужно как-то так:

		ПО (Вт2.Буква > Вт1.Буква
			ИЛИ Вт2.Буква = Вт1.Буква
			И Вт2.Цифра >= Вт1.Цифра)


Или наоборот через цыфру если по ней должны быть первая сортировка
user822247; +1 Ответить
6. user822247 12.02.20 14:10 Сейчас в теме
(3) попробовал Ваш вариант и результат тот же. цифра 2 повторяется.
Основное поле Буква и после уже цифра
7. davealone 140 12.02.20 14:15 Сейчас в теме
(6) Цифра 2 и должна повторится, она же есть в таблице - по сути это аналитика. Номер строки не повторится

Номер Буква Цифра
1 А 1
2 А 2
3 В 1
4 В 2
13. user822247 12.02.20 17:17 Сейчас в теме
(7) Все верно
Я не правильно перенес условие. Вместо вашего варианта сделал
		ПО (Вт2.Буква > Вт1.Буква
				ИЛИ Вт2.Буква = Вт1.Буква)
			И Вт2.Цифра >= Вт1.Цифра

Могу я узнать за какое время вы придумали условие ?


Я очень много времени потратил на эту задачу и не смог ничего придумать (это грустно).
14. davealone 140 12.02.20 19:57 Сейчас в теме
(13)Эмм, пару минут на скопировать в консоль запрос, убедится, что в запросе не верна нумерация и увидеть что условие номера отсекает. С реальной аналитикой более понятно (когда документы, например, там дата базовое, номер вторичное - там быстрее понимаешь что нужно, сортируем по дате, а если дата совпала - по номеру). Так что не печальтесь, иногда проста свежий взгляд нужен.
5. user774630 12.02.20 14:08 Сейчас в теме
Функция АВТОНОМЕРЗАПИСИ
Данная функция может быть использована в списке выборки при создании временной таблицы для создания поля с уникальным, последовательно возрастающим значением во временной таблице. Функцию можно использовать в том случае, если во временной таблице требуется создать ключевое поле. Значение, сформированное этой функцией будет уникально в пределах временной таблицы, при формировании которой использовалась функция.

Пример запроса:
ВЫБРАТЬ
Склад,
Товар,
СУММА(СуммаДокумента) КАК Сумма,
АВТОНОМЕРЗАПИСИ () Как Ключ
ПОМЕСТИТЬ
Продажи
ИЗ Документ.РасходнаяНакладная
СГУППИРОВАТЬ ПО Склад, Товар

В результате данного запроса будет создана временная таблица Продажи, в которой в качестве значения поля Ключ будет последовательно возрастающее числовое значение.

Данную функцию НЕЛЬЗЯ использовать в следующих случаях:

в запросах, содержащих ОБЪЕДИНИТЬ на верхнем уровне,
в запросах, не формирующих временную таблицу,
вне списка выборки,
в выражениях языка запросов.
Показать
user822247; davealone; +2 Ответить
8. davealone 140 12.02.20 14:20 Сейчас в теме
Да можно как в (5)
Но это будет работать только с 8.3.14+ и если это последняя таблица в запросе, иначе нужно с сортировкой играть.
9. aezdakov 12.02.20 14:22 Сейчас в теме
(5) да, только работает это с 8.3.13.1513 версии платформы
user774630; +1 Ответить
10. YannikAlx 33 12.02.20 14:28 Сейчас в теме
(9) А у нас уже БП3 (самая массовая конфа) доросла до минималки 8.3.15.1830
11. aezdakov 12.02.20 14:49 Сейчас в теме
(10)Поздравляю вас. А у нас УТ 10,2 так никуда и не доросла.
ТС ничего не говорил, про версию платформы и конфигурацию, поэтому моё уточнение лишним не будет, а особенно, если кто-то придёт сюда из гугла.
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

Программист 1С
Санкт-Петербург
зарплата до 150 000 руб.
Полный день

Программист, аналитик, эксперт 1С
Санкт-Петербург
По совместительству

Бизнес-аналитик 1С
Москва
зарплата от 150 000 руб.
Полный день

Программист 1С
Москва
зарплата от 180 000 руб.
Полный день

Программист 1С
Санкт-Петербург
зарплата до 130 000 руб.
Полный день