Имя: Пароль:
1C
1С v8
1С Запрос - строки в колонки
,
0 Serduko
 
31.10.12
15:33
Здравствуйте, подскажите пожалуйста:
Стандартный запрос (ВЫБРАТЬ ИЗ ГДЕ) н.р. вы дает одну колонку с несколькими строками. Возможно ли сделать запрос который преобразует эти строки в отдельные колонки, если количество строк известно? Как?
1 zak555
 
31.10.12
15:34
транспонирование
2 Fragster
 
гуру
31.10.12
15:34
можно сделать 100 объединений и свертку, но проще сделать это при выводе
3 Serduko
 
31.10.12
15:42
Пример можно?
4 Serduko
 
31.10.12
15:43
Еще нюанс, нужна одна строка на выходе.
5 Fragster
 
гуру
31.10.12
15:49
Выбрать
Максимум(вложенный.Поле1), Максимум(вложенный.Поле2)
из (
Выбрать
0 как поле1, 1 как поле2
Объединить Все
Выбрать
2, 0) как вложенный
6 Serduko
 
31.10.12
16:13
спасибо
7 Serduko
 
31.10.12
16:15
Красивше так:

ВЫБРАТЬ
   Максимум(Выбор Когда КонтактнаяИнформация.Вид.Наименование = "Фактический адрес контрагента" Тогда КонтактнаяИнформация.Вид.Наименование КОНЕЦ) как факт,
   Максимум(Выбор Когда КонтактнаяИнформация.Вид.Наименование = "Юридический адрес контрагента" Тогда КонтактнаяИнформация.Вид.Наименование КОНЕЦ) как Юрид  

ИЗ
   РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
ГДЕ
   КонтактнаяИнформация.Объект.Ссылка = &Ссылка
8 Serduko
 
31.10.12
17:00
А с вложенным запросом не работает :(

Справочник.Контрагенты КАК Контрагенты
       ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
           МАКСИМУМ(ВЫБОР
                   КОГДА КонтактнаяИнформация.Вид.Наименование = "Фактический адрес контрагента"
                       ТОГДА КонтактнаяИнформация.Вид.Наименование
               КОНЕЦ) КАК факт,
           МАКСИМУМ(ВЫБОР
                   КОГДА КонтактнаяИнформация.Вид.Наименование = "Юридический адрес контрагента"
                       ТОГДА КонтактнаяИнформация.Вид.Наименование
               КОНЕЦ) КАК Юрид,
           МАКСИМУМ(КонтактнаяИнформация.Объект.Наименование) КАК ОбъектНаименование
       ИЗ
           РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация) КАК КонтактнаяИнформация
       ПО Контрагенты.Наименование = КонтактнаяИнформация.ОбъектНаименование
9 Axel2009
 
31.10.12
17:03
(7) да так ваще красивее всего, согласен
КонтактнаяИнформация.Объект.Ссылка = &Ссылка
10 Serduko
 
31.10.12
17:08
У меня табличка по всем контрагентам и переменная &Ссылка не покатит к сожалению :(
11 inka
 
31.10.12
17:18
(10)а какая разница по всем или не по всем? у каждого контрагента из всех же есть ссылка.
12 inka
 
31.10.12
17:22
Справочник.Контрагенты КАК Контрагенты
       ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
           МАКСИМУМ(ВЫБОР
                   КОГДА КонтактнаяИнформация.Вид.Наименование = "Фактический адрес контрагента"
                       ТОГДА КонтактнаяИнформация.Вид.Наименование
               КОНЕЦ) КАК факт,
           МАКСИМУМ(ВЫБОР
                   КОГДА КонтактнаяИнформация.Вид.Наименование = "Юридический адрес контрагента"
                       ТОГДА КонтактнаяИнформация.Вид.Наименование
               КОНЕЦ) КАК Юрид,
           МАКСИМУМ(КонтактнаяИнформация.Объект.Наименование) КАК ОбъектНаименование,
КонтактнаяИнформация.Объект.Ссылка
       ИЗ
           РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация) КАК КонтактнаяИнформация
       ПО Контрагенты.Ссылка = КонтактнаяИнформация.Ссылка
13 Fragster
 
гуру
31.10.12
17:23
наркоманы, штоле?
14 Serduko
 
31.10.12
17:34
"КонтактнаяИнформация.Объект.Ссылка" будет ошибка, нужен МАКСИМУМ(), я выбрал связь Наименование но это ничего не значит, со ссылкой будет тоже самое.
15 zladenuw
 
31.10.12
18:15
(0) а зачем ? ты же выводишь не значение вида. а его наименование :)
16 zladenuw
 
31.10.12
18:39
(5)
а как развернуть контактную инфу.
Что было все в одной строке
Объект,Факт,Юрик.

не получается с максимумом
17 zladenuw
 
31.10.12
18:41
не красиво так.
ВЫБРАТЬ
   ВложенныйЗапрос.Объект,
   ВложенныйЗапрос.факт,
   КонтактнаяИнформация.Представление
ИЗ
   (ВЫБРАТЬ
       КонтактнаяИнформация.Объект КАК Объект,
       КонтактнаяИнформация.Представление КАК факт
   ИЗ
       РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
   ГДЕ
       КонтактнаяИнформация.Вид.Наименование = "Фактический адрес контрагента") КАК ВложенныйЗапрос
       ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
       ПО ВложенныйЗапрос.Объект = КонтактнаяИнформация.Объект
ГДЕ
   КонтактнаяИнформация.Вид.Наименование = "Юридический адрес контрагента"
18 Serduko
 
01.11.12
09:52
При 10 строках уже не так красиво...