[РЕШЕНО] Задвоение в итогах

Тема в разделе "Система компоновки данных (СКД)", создана пользователем alexburn, 29 май 2014.

  1. TopicStarter Overlay
    alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.735
    Симпатии:
    508
    Баллы:
    204
    Приветствую вас, уважаемые! Мозг кипит, перегревается, сообразить никак не могу :(. Суть такая.
    Имеется РН, выбираются обороты за период. В документах есть ТЧ, в которой может быть несколько элементов. Не беда, делаю вложенный по этим полям и левым соединением подтягиваю к РН по ссылке (на документ). В итоге получается такая фишка. В результате выборки из вложенного запроса получается две записи (т.к. в ТЧ присутствует две записи) и присоединяются слева к РН, т.е. уже оборот увеличивается вдвое (в зависимости от количества в ТЧ элементов) Вот не могу сообразить, как в СКД сделать так, чтобы не было ссумирования по одинаковым полям. Вот запрос:
    Код:
    ВЫБРАТЬ
        КонтОплатаДоговоровОбороты.Полис КАК Полис,
        КонтОплатаДоговоровОбороты.СуммаОборот КАК Поступило,
        КонтОплатаДоговоровОбороты.ВидСтрахования КАК ВидСтрахования,
        КонтОплатаДоговоровОбороты.Организация КАК Организация,
        КонтОплатаДоговоровОбороты.Полис.Страхователь КАК Страхователь,
        КонтОплатаДоговоровОбороты.Полис.ДатаНач КАК ДатаНачала,
        КонтОплатаДоговоровОбороты.Полис.ДатаОкончания КАК ДатаОкончания,
        ВложенныйЗапрос.Агент КАК Агент
    ИЗ
        РегистрНакопления.КонтОплатаДоговоров.Обороты(&НачалоПериода, &КонецПериода, Авто, ) КАК КонтОплатаДоговоровОбороты
            ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
                Агенты.Полис КАК Полис,
                Агенты.Агент КАК Агент
            ИЗ
                (ВЫБРАТЬ
                    ПолисДС.Ссылка КАК Полис,
                    ПолисДС.Агент КАК Агент
                ИЗ
                    Документ.КонтСтраховойПолис.Агенты КАК ПолисДС
               
                ОБЪЕДИНИТЬ
               
                ВЫБРАТЬ
                    ПолисОСАГО.Ссылка,
                    ПолисОСАГО.Агент
                ИЗ
                    Документ.КонтПолисОСАГО.Агенты КАК ПолисОСАГО
               
                ОБЪЕДИНИТЬ
               
                ВЫБРАТЬ
                    ПолисОПО.Ссылка,
                    ПолисОПО.Агент
                ИЗ
                    Документ.КонтПолисОПО.Агенты КАК ПолисОПО) КАК Агенты) КАК ВложенныйЗапрос
            ПО КонтОплатаДоговоровОбороты.Полис = ВложенныйЗапрос.Полис
    Подозреваю что нужно играться с ролями по полю СуммаОборот, чтобы в ресурсах не происходило задвоения (затроения и т.п.). Подскажите пожалуйста :)
  2. nbIpKuH_BaH9I
    Offline

    nbIpKuH_BaH9I Модераторы Команда форума Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    6.977
    Симпатии:
    397
    Баллы:
    104
    А попробуй сначала в запросе сгруппировать данные без суммы. А потом уже пусть СКД ресурсы сама считает.
  3. TopicStarter Overlay
    alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.735
    Симпатии:
    508
    Баллы:
    204
    Переделал так:
    Код:
    ВЫБРАТЬ
        КонтОплатаДоговоровОбороты.Полис КАК Полис,
        КонтОплатаДоговоровОбороты.СуммаОборот КАК Поступило,
        КонтОплатаДоговоровОбороты.ВидСтрахования КАК ВидСтрахования,
        КонтОплатаДоговоровОбороты.Организация КАК Организация,
        КонтОплатаДоговоровОбороты.Полис.Страхователь КАК Страхователь,
        КонтОплатаДоговоровОбороты.Полис.ДатаНач КАК ДатаНачала,
        КонтОплатаДоговоровОбороты.Полис.ДатаОкончания КАК ДатаОкончания,
        ВложенныйЗапрос.Агент КАК Агент
    ИЗ
        РегистрНакопления.КонтОплатаДоговоров.Обороты(&НачалоПериода, &КонецПериода, Авто, ) КАК КонтОплатаДоговоровОбороты
            ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
                Агенты.Полис КАК Полис,
                Агенты.Агент КАК Агент
            ИЗ
                (ВЫБРАТЬ
                    ПолисДС.Ссылка КАК Полис,
                    ПолисДС.Агент КАК Агент
                ИЗ
                    Документ.КонтСтраховойПолис.Агенты КАК ПолисДС
               
                ОБЪЕДИНИТЬ
               
                ВЫБРАТЬ
                    ПолисОСАГО.Ссылка,
                    ПолисОСАГО.Агент
                ИЗ
                    Документ.КонтПолисОСАГО.Агенты КАК ПолисОСАГО
               
                ОБЪЕДИНИТЬ
               
                ВЫБРАТЬ
                    ПолисОПО.Ссылка,
                    ПолисОПО.Агент
                ИЗ
                    Документ.КонтПолисОПО.Агенты КАК ПолисОПО) КАК Агенты) КАК ВложенныйЗапрос
            ПО КонтОплатаДоговоровОбороты.Полис = ВложенныйЗапрос.Полис
    
    СГРУППИРОВАТЬ ПО
        КонтОплатаДоговоровОбороты.Полис,
        КонтОплатаДоговоровОбороты.ВидСтрахования,
        КонтОплатаДоговоровОбороты.Организация,
        КонтОплатаДоговоровОбороты.Полис.Страхователь,
        КонтОплатаДоговоровОбороты.Полис.ДатаНач,
        КонтОплатаДоговоровОбороты.Полис.ДатаОкончания,
        КонтОплатаДоговоровОбороты.СуммаОборот,
        ВложенныйЗапрос.Агент
    Та же картина :(
  4. nbIpKuH_BaH9I
    Offline

    nbIpKuH_BaH9I Модераторы Команда форума Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    6.977
    Симпатии:
    397
    Баллы:
    104
    Если честно я не очень доверяю вложенным запросам в соединениях. Попробуй переписать с использованием временных таблиц. А для обработки СКД подготовь уже укомплектованные данные. Сам запроса в консоле что возвращает?
  5. TopicStarter Overlay
    alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.735
    Симпатии:
    508
    Баллы:
    204
    То же самое. Дело в том, что во вложенном запросе возвращается несколько элементов, и они уже подтягиваются слева к РН.
  6. nbIpKuH_BaH9I
    Offline

    nbIpKuH_BaH9I Модераторы Команда форума Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    6.977
    Симпатии:
    397
    Баллы:
    104
    Вот и я об этом. Может связей в соединении не хватает?
  7. TopicStarter Overlay
    alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.735
    Симпатии:
    508
    Баллы:
    204
    Связей хватает. Во вложенном отбираются Агенты, и по полису присоединяются. Я вот думаю Объединением попробывать сделать.
  8. nbIpKuH_BaH9I
    Offline

    nbIpKuH_BaH9I Модераторы Команда форума Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    6.977
    Симпатии:
    397
    Баллы:
    104
    А у тебя в соединении стоит еще объединение. Там данные не группируются. Может здесь что дублируется...
  9. TopicStarter Overlay
    alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.735
    Симпатии:
    508
    Баллы:
    204
    Нет, дублируется потому что во вложенном запросе возвращается несколько записей.
  10. nbIpKuH_BaH9I
    Offline

    nbIpKuH_BaH9I Модераторы Команда форума Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    6.977
    Симпатии:
    397
    Баллы:
    104
    Блин, покажи тогда скрин данных. Которые не должны суммироваться.
  11. TopicStarter Overlay
    alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.735
    Симпатии:
    508
    Баллы:
    204
    :Dблин, уже переделал запрос, не могу пока :)
  12. TopicStarter Overlay
    alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.735
    Симпатии:
    508
    Баллы:
    204
    Вот, возобновил :)
    29.png
  13. nbIpKuH_BaH9I
    Offline

    nbIpKuH_BaH9I Модераторы Команда форума Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    6.977
    Симпатии:
    397
    Баллы:
    104
    Попробуй в ресурсах укажи группировку по максимуму для этих дательных записей. И еще одной строчкой уже сумму, но уже по всем остальным полям.
  14. TopicStarter Overlay
    alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.735
    Симпатии:
    508
    Баллы:
    204
    :Dсори, а это как ?
  15. nbIpKuH_BaH9I
    Offline

    nbIpKuH_BaH9I Модераторы Команда форума Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    6.977
    Симпатии:
    397
    Баллы:
    104
    Как то так
    Безымянный.JPG
    --- Объединение сообщений, 29 май 2014 ---
    Отпиши потом.
    alexburn нравится это.
  16. TopicStarter Overlay
    alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.735
    Симпатии:
    508
    Баллы:
    204
    Нет, не то...
  17. nbIpKuH_BaH9I
    Offline

    nbIpKuH_BaH9I Модераторы Команда форума Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    6.977
    Симпатии:
    397
    Баллы:
    104
    Ну тогда играться с ВычислитьВыражение.
    P.S. Я так и не смог понять это. :D. Описания толкового нет. Примеров подавно. Грубо говоря надо чтобы на уровне одной группировки было максимум, а потом была сумма.
  18. TopicStarter Overlay
    alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.735
    Симпатии:
    508
    Баллы:
    204
    Ок. буду курить что-нибудь:), все-равно спасибо!
  19. TopicStarter Overlay
    alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.735
    Симпатии:
    508
    Баллы:
    204
    Проблему решил путем создания временных таблиц. Хотя и не понятно по какой причине вложенные не работали :(
  20. nbIpKuH_BaH9I
    Offline

    nbIpKuH_BaH9I Модераторы Команда форума Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    6.977
    Симпатии:
    397
    Баллы:
    104
    Я ж говорил, что я им не доверяю :)

Поделиться этой страницей