|
Общие итоги в СКД | ☑ | ||
---|---|---|---|---|
0
thomY100
12.09.11
✎
11:59
|
Привет, подскажите пожалуйста как сделать:
есть отчет сделанный в СКД, в нем одна группировка, она выводит минимальное значение ресурса из детальных записей, необходимо сделать чтобы общий итог был не суммой по всем строкам поля, а суммой этих минимальных значений группировок, как это можно сделать? |
|||
1
mzelensky
12.09.11
✎
12:04
|
это в запросе настраивается. Можно попробовать наложить ограничение на группировку - если это группировка, то делаем сумму поля, нича ничего.
При одной группировки должно сработать. |
|||
2
Night_Wolf
12.09.11
✎
12:15
|
Покажи запрос
|
|||
3
thomY100
12.09.11
✎
12:28
|
Вот текст:
ВЫБРАТЬ ВложенныйЗапрос.Номенклатура, ВложенныйЗапрос.Контрагент, "Счет №" + ВложенныйЗапрос.НомерСчета КАК НомерСчета, ВложенныйЗапрос.ДатаЗаказа, ВложенныйЗапрос.МаксДата, ВложенныйЗапрос.СуммаЗаказа, ВложенныйЗапрос.ДатаОплаты, ВложенныйЗапрос.СуммаОплаченная, ВложенныйЗапрос.СуммаОплаченнаяВал, ВложенныйЗапрос.Задолженность, ВложенныйЗапрос.Курс, ЕСТЬNULL(ВложенныйЗапрос.Оплачено, ЛОЖЬ) КАК Поле1, ВложенныйЗапрос.ДокументОплатыВалютаДокумента ИЗ (ВЫБРАТЬ ВложенныйЗапрос.Номенклатура КАК Номенклатура, ВложенныйЗапрос.Контрагент КАК Контрагент, ВложенныйЗапрос.НомерСчета КАК НомерСчета, ВложенныйЗапрос.ДатаЗаказа КАК ДатаЗаказа, ВложенныйЗапрос.МаксДата КАК МаксДата, ВложенныйЗапрос.СуммаЗаказа КАК СуммаЗаказа, ВложенныйЗапрос.ДатаОплаты КАК ДатаОплаты, ВложенныйЗапрос.СуммаОплаченная КАК СуммаОплаченная, ВложенныйЗапрос.СуммаОплаченнаяВал КАК СуммаОплаченнаяВал, ВложенныйЗапрос.Задолженность КАК Задолженность, ВложенныйЗапрос.Курс КАК Курс, ВложенныйЗапрос1.Поле1 КАК Оплачено, ВложенныйЗапрос.ДокументОплатыВалютаДокумента КАК ДокументОплатыВалютаДокумента ИЗ (ВЫБРАТЬ РАЗЛИЧНЫЕ ОплатаПокупателямиОстаткиИОбороты.Номенклатура КАК Номенклатура, ОплатаПокупателямиОстаткиИОбороты.Контрагент КАК Контрагент, ОплатаПокупателямиОстаткиИОбороты.ДокументОплаты.Номер КАК НомерСчета, ОплатаПокупателямиОстаткиИОбороты.ДокументОплаты.Дата КАК ДатаЗаказа, ОплатаПокупателямиОстаткиИОбороты.ДокументОплаты.МаксДата КАК МаксДата, ОплатаПокупателямиОстаткиИОбороты.ДокументОплаты.СуммаДокумента КАК СуммаЗаказа, ОплатаПокупателямиОстаткиИОбороты.Период КАК ДатаОплаты, ОплатаПокупателямиОстаткиИОбороты.СуммаПриход КАК СуммаОплаченная, ОплатаПокупателямиОстаткиИОбороты.СуммаВалПриход КАК СуммаОплаченнаяВал, ВЫБОР КОГДА ОплатаПокупателями.ДокументОплаты.ДоговорКонтрагента.ВалютаВзаиморасчетов.Наименование = "EUR" ТОГДА -ОплатаПокупателямиОстаткиИОбороты.СуммаВалКонечныйОстаток ИНАЧЕ -ОплатаПокупателямиОстаткиИОбороты.СуммаКонечныйОстаток КОНЕЦ КАК Задолженность, ОплатаПокупателями.Курс КАК Курс, ОплатаПокупателями.ДокументОплаты.ВалютаДокумента КАК ДокументОплатыВалютаДокумента ИЗ РегистрНакопления.ОплатаПокупателями.ОстаткиИОбороты(, &ДатаКон, Регистратор, , ) КАК ОплатаПокупателямиОстаткиИОбороты ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОплатаПокупателями КАК ОплатаПокупателями ПО ОплатаПокупателямиОстаткиИОбороты.Регистратор = ОплатаПокупателями.Регистратор ГДЕ ОплатаПокупателямиОстаткиИОбороты.СуммаПриход <> 0 И ОплатаПокупателямиОстаткиИОбороты.ДокументОплаты.Дата МЕЖДУ &ДатаСчетаНач И &ДатаСчетаКон И ОплатаПокупателямиОстаткиИОбороты.ДокументОплаты.МаксДата МЕЖДУ &МаксДатаНач И &МаксДатаКон И ОплатаПокупателямиОстаткиИОбороты.ДокументОплаты.МаксДата < &МаксДата И ОплатаПокупателямиОстаткиИОбороты.Контрагент В ИЕРАРХИИ(&Контрагент) ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ ВложенныйЗапрос.Номенклатура, ВложенныйЗапрос.Контрагент, ВложенныйЗапрос.ДокументОплатыНомер, ВложенныйЗапрос.ДокументОплатыДата, ВложенныйЗапрос.ДокументОплатыМаксДата, ВложенныйЗапрос.ДокументОплатыСуммаДокумента, ВложенныйЗапрос.Поле1, ВложенныйЗапрос.Поле2, ВложенныйЗапрос.Поле3, ВложенныйЗапрос.Поле4, ВложенныйЗапрос.Курс, ВложенныйЗапрос.ДокументОплатыВалютаДокумента ИЗ (ВЫБРАТЬ ВложенныйЗапрос.Номенклатура КАК Номенклатура, ВложенныйЗапрос.Контрагент КАК Контрагент, ВложенныйЗапрос.ДокументОплатыНомер КАК ДокументОплатыНомер, ВложенныйЗапрос.ДокументОплатыДата КАК ДокументОплатыДата, ВложенныйЗапрос.ДокументОплатыМаксДата КАК ДокументОплатыМаксДата, ВложенныйЗапрос.ДокументОплатыСуммаДокумента КАК ДокументОплатыСуммаДокумента, ВложенныйЗапрос.Поле1 КАК Поле1, ВложенныйЗапрос.Поле2 КАК Поле2, ВложенныйЗапрос.Поле3 КАК Поле3, ВложенныйЗапрос.Поле4 КАК Поле4, ВложенныйЗапрос.Курс КАК Курс, ЕСТЬNULL(ВложенныйЗапрос.Поле5, 0) КАК Расход, ВложенныйЗапрос.ДокументОплаты КАК ДокументОплаты, ЕСТЬNULL(ВложенныйЗапрос1.Поле5, 0) КАК Приход, ВложенныйЗапрос.ДокументОплатыВалютаДокумента КАК ДокументОплатыВалютаДокумента ИЗ (ВЫБРАТЬ ОплатаПокупателями.Номенклатура КАК Номенклатура, ОплатаПокупателями.Контрагент КАК Контрагент, ОплатаПокупателями.ДокументОплаты.Номер КАК ДокументОплатыНомер, ОплатаПокупателями.ДокументОплаты.Дата КАК ДокументОплатыДата, ОплатаПокупателями.ДокументОплаты.МаксДата КАК ДокументОплатыМаксДата, ОплатаПокупателями.ДокументОплаты.СуммаДокумента КАК ДокументОплатыСуммаДокумента, 0 КАК Поле1, 0 КАК Поле2, 0 КАК Поле3, 0 КАК Поле4, ОплатаПокупателями.Курс КАК Курс, "Расход" КАК Поле5, ОплатаПокупателями.ДокументОплаты КАК ДокументОплаты, ОплатаПокупателями.ДокументОплаты.ВалютаДокумента КАК ДокументОплатыВалютаДокумента ИЗ РегистрНакопления.ОплатаПокупателями КАК ОплатаПокупателями ГДЕ ОплатаПокупателями.Период МЕЖДУ &ДатаСчетаНач И &ДатаСчетаКон И ОплатаПокупателями.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход)) КАК ВложенныйЗапрос ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ ОплатаПокупателями.Номенклатура КАК Номенклатура, ОплатаПокупателями.Контрагент КАК Контрагент, ОплатаПокупателями.ДокументОплаты.Номер КАК ДокументОплатыНомер, ОплатаПокупателями.ДокументОплаты.Дата КАК ДокументОплатыДата, ОплатаПокупателями.ДокументОплаты.МаксДата КАК ДокументОплатыМаксДата, ОплатаПокупателями.ДокументОплаты.СуммаДокумента КАК ДокументОплатыСуммаДокумента, 0 КАК Поле1, 0 КАК Поле2, 0 КАК Поле3, 0 КАК Поле4, ОплатаПокупателями.Курс КАК Курс, "Приход" КАК Поле5, ОплатаПокупателями.ДокументОплаты КАК ДокументОплаты ИЗ РегистрНакопления.ОплатаПокупателями КАК ОплатаПокупателями ГДЕ ОплатаПокупателями.Период МЕЖДУ &ДатаСчетаНач И &ДатаСчетаКон И ОплатаПокупателями.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)) КАК ВложенныйЗапрос1 ПО ВложенныйЗапрос.ДокументОплаты = ВложенныйЗапрос1.ДокументОплаты) КАК ВложенныйЗапрос ГДЕ ВложенныйЗапрос.Приход = 0) КАК ВложенныйЗапрос ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ ВложенныйЗапрос.Номенклатура КАК Номенклатура, ВложенныйЗапрос.Контрагент КАК Контрагент, ВложенныйЗапрос.НомерСчета КАК НомерСчета, ВЫБОР КОГДА ВложенныйЗапрос.Задолженность = 0 ТОГДА ИСТИНА ИНАЧЕ ЛОЖЬ КОНЕЦ КАК Поле1 ИЗ (ВЫБРАТЬ РАЗЛИЧНЫЕ ОплатаПокупателямиОстаткиИОбороты.Номенклатура КАК Номенклатура, ОплатаПокупателямиОстаткиИОбороты.Контрагент КАК Контрагент, ОплатаПокупателямиОстаткиИОбороты.ДокументОплаты.Номер КАК НомерСчета, МИНИМУМ(ВЫБОР КОГДА ОплатаПокупателями.ДокументОплаты.ДоговорКонтрагента.ВалютаВзаиморасчетов.Наименование = "EUR" ТОГДА -ОплатаПокупателямиОстаткиИОбороты.СуммаВалКонечныйОстаток ИНАЧЕ -ОплатаПокупателямиОстаткиИОбороты.СуммаКонечныйОстаток КОНЕЦ) КАК Задолженность ИЗ РегистрНакопления.ОплатаПокупателями.ОстаткиИОбороты(, &ДатаКон, Регистратор, , ) КАК ОплатаПокупателямиОстаткиИОбороты ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОплатаПокупателями КАК ОплатаПокупателями ПО ОплатаПокупателямиОстаткиИОбороты.Регистратор = ОплатаПокупателями.Регистратор ГДЕ ОплатаПокупателямиОстаткиИОбороты.СуммаПриход <> 0 И ОплатаПокупателямиОстаткиИОбороты.ДокументОплаты.Дата МЕЖДУ &ДатаСчетаНач И &ДатаСчетаКон И ОплатаПокупателямиОстаткиИОбороты.ДокументОплаты.МаксДата МЕЖДУ &МаксДатаНач И &МаксДатаКон И ОплатаПокупателямиОстаткиИОбороты.ДокументОплаты.МаксДата < &МаксДата И ОплатаПокупателямиОстаткиИОбороты.Контрагент В ИЕРАРХИИ(&Контрагент) СГРУППИРОВАТЬ ПО ОплатаПокупателямиОстаткиИОбороты.Номенклатура, ОплатаПокупателямиОстаткиИОбороты.Контрагент, ОплатаПокупателямиОстаткиИОбороты.ДокументОплаты.Номер) КАК ВложенныйЗапрос) КАК ВложенныйЗапрос1 ПО ВложенныйЗапрос.НомерСчета = ВложенныйЗапрос1.НомерСчета ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ ВложенныйЗапрос.Номенклатура, ВложенныйЗапрос.Контрагент, ВложенныйЗапрос.НомерСчета, ВложенныйЗапрос.ДатаЗаказа, ВложенныйЗапрос.МаксДата, ВложенныйЗапрос.СуммаЗаказа, ВложенныйЗапрос.ДатаОплаты, ВложенныйЗапрос.СуммаОплаченная, ВложенныйЗапрос.СуммаОплаченнаяВал, ВложенныйЗапрос.Задолженность, ВложенныйЗапрос.Курс, ВложенныйЗапрос.Поле1, NULL ИЗ (ВЫБРАТЬ ОплатаПокупателямиОстаткиИОбороты.Номенклатура КАК Номенклатура, ОплатаПокупателямиОстаткиИОбороты.Контрагент КАК Контрагент, ОплатаПокупателямиОстаткиИОбороты.ДокументОплаты.Номер КАК НомерСчета, ОплатаПокупателямиОстаткиИОбороты.ДокументОплаты.Дата КАК ДатаЗаказа, ОплатаПокупателямиОстаткиИОбороты.ДокументОплаты.МаксДата КАК МаксДата, ОплатаПокупателямиОстаткиИОбороты.ДокументОплаты.СуммаДокумента КАК СуммаЗаказа, 0 КАК ДатаОплаты, 0 КАК СуммаОплаченная, 0 КАК СуммаОплаченнаяВал, -ОплатаПокупателямиОстаткиИОбороты.СуммаВалКонечныйОстаток КАК Задолженность, -ОплатаПокупателямиОстаткиИОбороты.КурсКонечныйОстаток КАК Курс, ЛОЖЬ КАК Поле1, ОплатаПокупателямиОстаткиИОбороты.ДокументОплаты.ВалютаДокумента КАК ДокументОплатыВалютаДокумента ИЗ РегистрНакопления.ОплатаПокупателями.ОстаткиИОбороты(&ДатаНачНеопл, &ДатаКонНеопл, , , ) КАК ОплатаПокупателямиОстаткиИОбороты ГДЕ ОплатаПокупателямиОстаткиИОбороты.СуммаПриход = 0 И ОплатаПокупателямиОстаткиИОбороты.Контрагент В ИЕРАРХИИ(&Контрагент)) КАК ВложенныйЗапрос) КАК ВложенныйЗапрос ГДЕ ВложенныйЗапрос.Оплачено <> &Оплачено И ВложенныйЗапрос.ДокументОплатыВалютаДокумента В(&Валюты) И ВложенныйЗапрос.ДатаЗаказа МЕЖДУ &ДатаСчетаНач И &ДатаСчетаКон Запрос довольно большой, если можно приведите пример на маленьком запросе как это сделать |
|||
4
thomY100
13.09.11
✎
08:26
|
ммм, ап, никто не может помочь?
|
|||
5
Night_Wolf
13.09.11
✎
10:21
|
(4) - я покрутил отчет, попробовал создать на мелком - не получается. Может кто ещё поможет. Я не знаю как так сделать в СКД
|
|||
6
thomY100
13.09.11
✎
13:37
|
ап ап
|
|||
7
Axel2009
13.09.11
✎
13:44
|
ВЫБРАТЬ
ОбщийЗапрос.Группа, ОбщийЗапрос.Знач КАК Знач ПОМЕСТИТЬ ОбщаяТаблица ИЗ (ВЫБРАТЬ 1 КАК Группа, 1 КАК Знач ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 1, 2 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 2, 1) КАК ОбщийЗапрос ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ОбщаяТаблица.Группа КАК Группа, ОбщаяТаблица.Знач КАК Знач, СводнаяТаблица.МинимумЗнач / СводнаяТаблица.КоличествоЗнач КАК ЧерезТернииКЗвездам ИЗ ОбщаяТаблица КАК ОбщаяТаблица ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ ОбщаяТаблица.Группа КАК Группа, МИНИМУМ(ОбщаяТаблица.Знач) КАК МинимумЗнач, КОЛИЧЕСТВО(*) КАК КоличествоЗнач ИЗ ОбщаяТаблица КАК ОбщаяТаблица СГРУППИРОВАТЬ ПО ОбщаяТаблица.Группа) КАК СводнаяТаблица ПО ОбщаяТаблица.Группа = СводнаяТаблица.Группа ИТОГИ СУММА(ЧерезТернииКЗвездам) ПО Группа |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |