|
СКД. Итоги в группировке по одинаковым строкам. | ☑ | ||
---|---|---|---|---|
0
jonik_joker
23.06.15
✎
20:56
|
Всем привет.Ситуация следующая:
Часть отчета выводится в виде Группировка1(СрокОплаты) Группировка2(Инвойс) СуммаИнвойса(Ресурс) В случае, если во 2-й группировке 2 одинаковых инвойса(соответственно и сумма по ним одна и та же) в итог по группировке сумма по данному инвойсу попадает дважды. Как этого избежать? |
|||
1
runoff_runoff
23.06.15
✎
22:17
|
каким образом определяется "одинаковость" инвойсов?..
|
|||
2
jonik_joker
24.06.15
✎
16:27
|
вот сам запрос
ВЫБРАТЬ ПрохождениеТаможниСостав.Ссылка КАК Инвойс, ПрохождениеТаможниСостав.Заявка, СУММА(ПрохождениеТаможниСостав.Стоимость) КАК Стоимость ПОМЕСТИТЬ ТЧТаможня ИЗ Документ.ПрохождениеТаможни.Состав КАК ПрохождениеТаможниСостав ГДЕ ПрохождениеТаможниСостав.Ссылка.Клиент = &Клиент СГРУППИРОВАТЬ ПО ПрохождениеТаможниСостав.Заявка, ПрохождениеТаможниСостав.Ссылка ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВложенныйЗапрос.Инвойс, ВложенныйЗапрос.Заявка, ВложенныйЗапрос.Стоимость, ВложенныйЗапрос.СуммаОборот, ВЫБОР КОГДА ЗаявкаНаПоставкуУсловиеОплаты.СДаты = ЗНАЧЕНИЕ(Справочник.ДатыПлатежей.ВыпускаГТД) ТОГДА ДОБАВИТЬКДАТЕ(ВложенныйЗапрос.ИнвойсДата, ДЕНЬ, ЗаявкаНаПоставкуУсловиеОплаты.ВТечение) КОГДА ЗаявкаНаПоставкуУсловиеОплаты.СДаты = ЗНАЧЕНИЕ(Справочник.ДатыПлатежей.ВыпускаКоносамента) ИЛИ ЗаявкаНаПоставкуУсловиеОплаты.СДаты.Код = "000000006" ТОГДА ДОБАВИТЬКДАТЕ(ЗаявкаНаПоставкуУсловиеОплаты.Ссылка.ДатаВыпускаКоносамента, ДЕНЬ, ЗаявкаНаПоставкуУсловиеОплаты.ВТечение) КОГДА ЗаявкаНаПоставкуУсловиеОплаты.СДаты = ЗНАЧЕНИЕ(Справочник.ДатыПлатежей.ФормированияЗаявки) ТОГДА ДОБАВИТЬКДАТЕ(ЗаявкаНаПоставкуУсловиеОплаты.Ссылка.Дата, ДЕНЬ, ЗаявкаНаПоставкуУсловиеОплаты.ВТечение) КОНЕЦ КАК СрокОплаты, ВложенныйЗапрос.ДатаОплаты ИЗ Документ.ЗаявкаНаПоставку.УсловиеОплаты КАК ЗаявкаНаПоставкуУсловиеОплаты ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ ТЧТаможня.Инвойс КАК Инвойс, ТЧТаможня.Заявка КАК Заявка, ТЧТаможня.Стоимость КАК Стоимость, ОплатыОтКлиентаОбороты.СуммаОборот КАК СуммаОборот, ТЧТаможня.Инвойс.Дата КАК ИнвойсДата, ОплатыОтКлиентаОбороты.Период КАК ДатаОплаты ИЗ ТЧТаможня КАК ТЧТаможня ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОплатыОтКлиента.Обороты(, , Регистратор, ) КАК ОплатыОтКлиентаОбороты ПО ТЧТаможня.Инвойс = ОплатыОтКлиентаОбороты.Инвойс И ТЧТаможня.Заявка = ОплатыОтКлиентаОбороты.Заявка) КАК ВложенныйЗапрос ПО ЗаявкаНаПоставкуУсловиеОплаты.Ссылка = ВложенныйЗапрос.Заявка УПОРЯДОЧИТЬ ПО ВложенныйЗапрос.Инвойс.Дата УБЫВ |
|||
3
jonik_joker
24.06.15
✎
16:41
|
в результате получается таблица
Инвойс Заявка Стоимость Оборот MLT-03371 000006309 3719,47 3719,47 MLT-03371 000006310 13332,76 13332,76 MLT-03344 000006289 16796,16 16796,16 MLT-03343 000006289 16796,16 16796,16 .... MLT-02812 000005907 144,96 MLT-02813 000005913 17088,48 2000 MLT-02813 000005913 17088,48 15088,48 |
|||
4
Cyberhawk
24.06.15
✎
16:42
|
Покажи на картинке
|
|||
5
jonik_joker
24.06.15
✎
16:43
|
как сделать чтобы в скд при вычислении итога в столбце "стоимость" по группировке "инвойс" ресурсы по MLT-02813 не складывались?
|
|||
6
vicof
24.06.15
✎
16:47
|
Добавить ресурс, указать группировку, указать нужное значение
|
|||
7
jonik_joker
24.06.15
✎
16:49
|
||||
8
jonik_joker
24.06.15
✎
16:50
|
ресурсы Стоимость и Оборот, соответственно они и суммируются
|
|||
9
jonik_joker
24.06.15
✎
16:51
|
а нужно в случае одинаковой пары (Инвойс,Заявка) сумму по стоимости не считать
|
|||
10
vicof
24.06.15
✎
17:27
|
(9) Еще раз читаем (6). Ресурсы можно рассчитывать по разным группировкам.
|
|||
11
jonik_joker
24.06.15
✎
17:37
|
(10), мне в любом случае нужно рассчитать итоги по ресурсу стоимость только в случае одинаковой пары (Инвойс,Заявка) значение суммы инвойса нужно взять только единожды. Так что указанием конкретного поля ничего не изменишь.
|
|||
12
freetype
24.06.15
✎
17:43
|
Не правильно саму таблицу готовишь.
|
|||
13
vicof
24.06.15
✎
17:46
|
(11) Ну пару функций пропишешь в выражении и будет тебе счастье
|
|||
14
jonik_joker
28.06.15
✎
08:19
|
Решил проблему с помощью функции ВычислитьВыражениеСГруппировкойМассив(),советую.Но потом...переписал заново запрос и обошелся без нее)
|
|||
15
echo77
28.06.15
✎
08:54
|
(14) Теперь расскажи другим по-подробнее.
Задача правильно решается двумя способами: 1. Использовать Объединение таблиц(Таможня, Оплаты), вместо соединения 2. Использовать два набора данных в СКД(Таможня, Оплаты) |
|||
16
jonik_joker
30.06.15
✎
09:50
|
(15) Вы угадали) Дело в том что, что нужно еще выводить дату оплаты, поэтому без этого поля можно было бы просто сгруппировать и суммировать по обороту, но пришлось сначала объединить (Таможня,Оплата) без поля даты оплаты,потом соединить с Заявка(оттуда нужно несколько полей вытащить) с групировкой, а потом в СКД создать 2-й набор данных Оплата, откуда вытаскивается дата оплаты.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |