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

Allexei

Well-known member
02.05.2008
322
1
#1
Здравствуйте форумчане, помогите с запросм разобраться. Есть запрос типа
Выбрать


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

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

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

Allexei

Well-known member
02.05.2008
322
1
#2
пока на ум приходит только использовать конструкцию Выбрать когда с последующей группировкой по полю ссылка. Может есть еще варианты?
 

unknown181538

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


http://www.kb.mista.ru/article.php?id=703 вот это читаем.
 

puh14

Well-known member
11.07.2008
1 412
0
#4
Это несколько противоречит логике скуля - фактически меняется список колонок запроса, да еще это может быть динамическим (количество записей не известно). То бишь подмена текста запроса. Если заложится например что берем первые пять записей - тогда можно придумать, но всё равно будет громоздко.
 

puh14

Well-known member
11.07.2008
1 412
0
#6
Ну так это нумерация строк в запросе - а потом СКД это дело выводит. Если посмотреть на результаты запроса там будут только три колонки и усё.
 

unknown181538

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

Allexei

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

puh14

Well-known member
11.07.2008
1 412
0
#9
Я вот тоже с утра столкнулся - только у меня надо было раскидать суммы по условиям ( в каждой колонке - свой интервал по датам). Решил через временную таблицу.

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

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