• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

Помогите с запросом

  • Автор темы Allexei
  • Дата начала
A

Allexei

Здравствуйте форумчане, помогите с запросм разобраться. Есть запрос типа
Выбрать


|ВЫБРАТЬ
| РеквизитыВКарточке.Ссылка,
| ЗначенияСвойствОбъектов.Значение
|ИЗ
| РеквизитыВКарточке КАК РеквизитыВКарточке
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
| ПО РеквизитыВКарточке.Ссылка = ЗначенияСвойствОбъектов.Объект

Возвращает таблицу типа:
___________________
Ссылка1 | Значение1|
Ссылка1 |Значение2|
Ссылка1 | Значение3|
___________________

Можно ли как ни будь эту таблицу в самом запросе преобразовать в одну строку таблицы типа
_________________________________________
Ссылка1 | Значение1 | Значение2 | Значение3|
_________________________________________
 
A

Allexei

пока на ум приходит только использовать конструкцию Выбрать когда с последующей группировкой по полю ссылка. Может есть еще варианты?
 
U

unknown181538

А оно действительно сильно надо?
Неохота ща пример искать...
Помещаешь во временную таблицу, соединяешь ее саму с собой агрегируешь количество...


вот это читаем.
 
P

puh14

Это несколько противоречит логике скуля - фактически меняется список колонок запроса, да еще это может быть динамическим (количество записей не известно). То бишь подмена текста запроса. Если заложится например что берем первые пять записей - тогда можно придумать, но всё равно будет громоздко.
 
U

unknown181538

... ну получилось в общем-то...
 
P

puh14

Ну так это нумерация строк в запросе - а потом СКД это дело выводит. Если посмотреть на результаты запроса там будут только три колонки и усё.
 
U

unknown181538

Ну так это нумерация строк в запросе - а потом СКД это дело выводит. Если посмотреть на результаты запроса там будут только три колонки и усё.
Точно.... это не то
Но иначе я не вижу, зачем это нужно)
 
A

Allexei

Поскольку количество "ЗначениеN", конечно и заранее известно сделал через Выбрать когда..., потом сделал группировку по ссылка и Суммирование с функцией Макс по "Значение". Все получилось. Нужно было для вывода в СКД отчета по клиентам где "Значение" это значение из регистра "АдресаКонтрагента". Хотелось чтоб строкой шел контрагент а далее все его возможные адреса.Спасибо за советы.
 
P

puh14

Я вот тоже с утра столкнулся - только у меня надо было раскидать суммы по условиям ( в каждой колонке - свой интервал по датам). Решил через временную таблицу.

Собственно первый запрос сделал сырую таблицу и поместил её в времянку ( сразу в одном нельзя было - вложенные выборы не пахали)

Код:
ВЫБРАТЬ
Первая.Контрагент,
Первая.КонтрагентПредставление,
Первая.НомерНакладной,
Первая.ДатаНакладной,
Первая.СуммаКОплате,
Первая.ОтсрочкаПлатежа,
Первая.Проект,
Первая.ПроектПредставление,
Первая.Оплачено,
Первая.НеОплачено,
Первая.СрокОплаты,
Первая.ПросроченнаяЗадолженностьДни,
Первая.ПросроченнаяЗадолженностьСумма,
Первая.ОплатаДата,
Первая.Накладная,
Первая.СуммаДок,
Первая.ДокументДвижения,
ВЫБОР
КОГДА Первая.ПросроченнаяЗадолженностьДни < 15
ТОГДА Первая.ПросроченнаяЗадолженностьСумма
ИНАЧЕ 0
КОНЕЦ КАК ДБЗ15,
ВЫБОР
КОГДА Первая.ПросроченнаяЗадолженностьДни МЕЖДУ 15 И 30
ТОГДА Первая.ПросроченнаяЗадолженностьСумма
ИНАЧЕ 0
КОНЕЦ КАК ДБЗ30,
ВЫБОР
КОГДА Первая.ПросроченнаяЗадолженностьДни >30
ТОГДА Первая.ПросроченнаяЗадолженностьСумма
ИНАЧЕ 0
КОНЕЦ КАК ДБЗ30Плюс

собственно если кол-во записей известно, то никто не мешает делать условия на номер строчки ;-)
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!