Имя: Пароль:
1C
 
Подскажите как результат запроса развернуть по горизонтали?
0 Ivan_495
 
04.07.17
11:48
Подскажите как результат запроса развернуть по горизонтали.
Выводится участник у него может быть несколько дат рождения детей.
Даты нужно разложить по колонкам дата1, дата2.

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

СГРУППИРОВАТЬ ПО
    ЗаказТураУчастники.Ссылка,
    участники.Участник
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ЗАКАЗЫТИП.Участник КАК Участник,
    ЗаказРебенок.ДатаРожденияРебенка КАК ДатаРожденияРебенка
ИЗ
    ЗАКАЗЫТИП КАК ЗАКАЗЫТИП
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
            ВЫБОР
                КОГДА РАЗНОСТЬДАТ(ЗАКАЗЫТИП.Участник.ДатаРождения, ЗАКАЗЫТИП.Ссылка.ДатаНачало, ГОД) < 12
                    ТОГДА ЗАКАЗЫТИП.Участник.ДатаРождения
                ИНАЧЕ NULL
            КОНЕЦ КАК ДатаРожденияРебенка,
            ЗАКАЗЫТИП.Ссылка КАК Ссылка
        ИЗ
            ЗАКАЗЫТИП КАК ЗАКАЗЫТИП
        ГДЕ
            РАЗНОСТЬДАТ(ЗАКАЗЫТИП.Участник.ДатаРождения, ЗАКАЗЫТИП.Ссылка.ДатаНачало, ГОД) < 12) КАК ЗаказРебенок
        ПО ЗАКАЗЫТИП.Ссылка = ЗаказРебенок.Ссылка

СГРУППИРОВАТЬ ПО
    ЗАКАЗЫТИП.Участник,
    ЗаказРебенок.ДатаРожденияРебенка

УПОРЯДОЧИТЬ ПО
    ЗАКАЗЫТИП.Участник.Наименование
1 Михаил Козлов
 
04.07.17
11:53
Зачем Вам в запросе разворачивать по-горизонтали?
Если для отчета, то либо построитель отчета, либо Универсальный отчет, либо СКД. Последние 2 умеют это сами.
2 mexanik_96
 
04.07.17
11:55
(2) ты вчера приходил? ответ в (1) даже если не для отчета, программно формируешь скд, выбрасываешь в тз. всё.
3 patapum
 
04.07.17
11:56
(1) СКД развернет по датам (всем разным) и будет простыня
ТС хочет, если я правильно понимаю, чтобы первая дата у всех была в первой колонке, вторая (если есть) - во второй и т.д.
Можно запрос усложнить и получить в нем номер даты, кроме самой даты, тогда дальше легко. Но это если нет очень больших выборок.
4 Ivan_495
 
04.07.17
12:06
(3) да именно так
первая дата у всех была в первой колонке, вторая (если есть) - во второй и т.д.
запрос является часть большого запроса. поэтому хочу разложить без скд.
по идее нужно просто пронумеровать строки по порядку потом тащить первую, вторую, третью
как пронумеровать строки внутри группировки запроса?
5 Михаил Козлов
 
04.07.17
12:09
(4) Обход по группировкам.
6 Dvoe4nik
 
04.07.17
12:52
(4) а почему нельзя группировку по "Ребенок 1","Ребенок 10"...?
7 Ivan_495
 
04.07.17
14:04
(6) да можно. но для этого детей пронумеровать в запросе нужно. а 1с не делает
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой