|
Расчет среднего значения итогов в запросе | ☑ | ||
---|---|---|---|---|
0
mrmurza
15.07.11
✎
16:33
|
Нужно что бы в группировках отчета выводилось среднее значение детальных записей. В запросе, в итогах делаю "Среднее(Наценка)". И все вроде хорошо, но нужно добиться того, чтоб те записи, в которых значение ноль, не учитывались при расчете среднего значения итога. Возможно так сделать? А то получается, что если у нас 4 записи со значениями 1,2,3,0, то средняя расчитывается как 6/4, а мне нужно чтоб было 6/3 (так как четвертое значений пустое)
|
|||
1
73
15.07.11
✎
16:34
|
Замени нули NULL-ами
|
|||
2
mrmurza
15.07.11
✎
16:40
|
(1)Сделал. Не помогло.
|
|||
3
Икогнито
15.07.11
✎
16:41
|
(2) а где сделал?
|
|||
4
mrmurza
15.07.11
✎
16:42
|
(3) ВЫБОР
КОГДА ВложенныйЗапрос.Цена = 0 ТОГДА NULL ИНАЧЕ (ВЫБОР КОГДА ЗапросПоВзаиморасчетам.КоличествоРасход = 0 ТОГДА NULL ИНАЧЕ ЗапросПоВзаиморасчетам.СуммаРасход / ЗапросПоВзаиморасчетам.КоличествоРасход КОНЕЦ / ВложенныйЗапрос.Цена - 1) * 100 КОНЕЦ |
|||
5
73
15.07.11
✎
16:43
|
Итоги покажи
ЗЫ. СРЕДНЕЕ нужно по такой же конструкции... |
|||
6
mrmurza
15.07.11
✎
16:46
|
ИТОГИ
СРЕДНЕЕ(Процент) ПО ОБЩИЕ, Номенклатура |
|||
7
mrmurza
15.07.11
✎
16:47
|
не понял про конструкцию в итогах...
|
|||
8
73
15.07.11
✎
16:51
|
(4) А если ЗапросПоВзаиморасчетам.СуммаРасход = 0 ?
|
|||
9
73
15.07.11
✎
16:52
|
(7) Не видно к чему СРЕДНЕЕ применяешь.
|
|||
10
Икогнито
15.07.11
✎
16:54
|
весь запрос покажи
|
|||
11
mrmurza
15.07.11
✎
16:55
|
(8) ага, понял. сейчас попробую.
(9)кусочек запроса из (4) это и есть поле "Процент" |
|||
12
mrmurza
15.07.11
✎
16:57
|
ВЫБРАТЬ РАЗРЕШЕННЫЕ
ЗапросПоВзаиморасчетам.Организация КАК Организация, ПРЕДСТАВЛЕНИЕ(ЗапросПоВзаиморасчетам.Организация) КАК ОрганизацияПредставление, ЗапросПоВзаиморасчетам.Контрагент КАК Контрагент, ПРЕДСТАВЛЕНИЕ(ЗапросПоВзаиморасчетам.Контрагент) КАК КонтрагентПредставление, ЗапросПоВзаиморасчетам.ДоговорКонтрагента КАК ДоговорКонтрагента, ПРЕДСТАВЛЕНИЕ(ЗапросПоВзаиморасчетам.ДоговорКонтрагента) КАК ДоговорКонтрагентаПредставление, ЗапросПоВзаиморасчетам.ДокументСделка КАК ДокументСделка, ПРЕДСТАВЛЕНИЕ(ЗапросПоВзаиморасчетам.ДокументСделка) КАК ДокументСделкаПредставление, ЗапросПоВзаиморасчетам.Номенклатура КАК Номенклатура, ПРЕДСТАВЛЕНИЕ(ЗапросПоВзаиморасчетам.Номенклатура) КАК НоменклатураПредставление, ЗапросПоВзаиморасчетам.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры, ПРЕДСТАВЛЕНИЕ(ЗапросПоВзаиморасчетам.ХарактеристикаНоменклатуры) КАК ХарактеристикаНоменклатурыПредставление, ЗапросПоВзаиморасчетам.ДокументДвижения КАК ДокументДвижения, ПРЕДСТАВЛЕНИЕ(ЗапросПоВзаиморасчетам.ДокументДвижения) КАК ДокументДвиженияПредставление, ЗапросПоВзаиморасчетам.СуммаНачальныйДолг КАК СуммаНачальныйДолг, ЗапросПоВзаиморасчетам.СуммаКонечныйДолг КАК СуммаКонечныйДолг, ЗапросПоВзаиморасчетам.СуммаПриход КАК СуммаПриход, ЗапросПоВзаиморасчетам.СуммаРасход КАК СуммаРасход, ЗапросПоВзаиморасчетам.СуммаОплаченоДеб КАК СуммаОплаченоДеб, ЗапросПоВзаиморасчетам.СуммаОплаченоКред КАК СуммаОплаченоКред, ЗапросПоВзаиморасчетам.КоличествоПриход КАК КоличествоПриход, ЗапросПоВзаиморасчетам.КоличествоРасход КАК КоличествоРасход, ЗапросПоВзаиморасчетам.КоличествоЕдиницДляОтчетовПриход КАК КоличествоЕдиницДляОтчетовПриход, ЗапросПоВзаиморасчетам.КоличествоЕдиницДляОтчетовРасход КАК КоличествоЕдиницДляОтчетовРасход, ВЫБОР КОГДА ЗапросПоВзаиморасчетам.КоличествоПриход = 0 ТОГДА 0 ИНАЧЕ ЗапросПоВзаиморасчетам.СуммаПриход / ЗапросПоВзаиморасчетам.КоличествоПриход КОНЕЦ КАК ЦенаПриход, ВЫБОР КОГДА ЗапросПоВзаиморасчетам.КоличествоРасход = 0 ТОГДА 0 ИНАЧЕ ЗапросПоВзаиморасчетам.СуммаРасход / ЗапросПоВзаиморасчетам.КоличествоРасход КОНЕЦ КАК ЦенаРасход, (ВЫБОР КОГДА ЗапросПоВзаиморасчетам.КоличествоРасход = 0 ТОГДА 0 ИНАЧЕ ЗапросПоВзаиморасчетам.СуммаРасход / ЗапросПоВзаиморасчетам.КоличествоРасход КОНЕЦ - ВЫБОР КОГДА ВложенныйЗапрос.Цена = 0 ТОГДА ВЫБОР КОГДА ЗапросПоВзаиморасчетам.КоличествоРасход = 0 ТОГДА 0 ИНАЧЕ ЗапросПоВзаиморасчетам.СуммаРасход / ЗапросПоВзаиморасчетам.КоличествоРасход КОНЕЦ ИНАЧЕ ВложенныйЗапрос.Цена КОНЕЦ) * ЗапросПоВзаиморасчетам.КоличествоРасход КАК Прибыль, ВложенныйЗапрос.Цена КАК ЦенаОтпускная, ВЫБОР КОГДА ВложенныйЗапрос.Цена = 0 ТОГДА NULL ИНАЧЕ (ВЫБОР КОГДА ЗапросПоВзаиморасчетам.КоличествоРасход = 0 ТОГДА NULL ИНАЧЕ ЗапросПоВзаиморасчетам.СуммаРасход / ЗапросПоВзаиморасчетам.КоличествоРасход КОНЕЦ / ВложенныйЗапрос.Цена - 1) * 100 КОНЕЦ КАК Процент {ВЫБРАТЬ Организация.*, Контрагент.*, ДоговорКонтрагента.*, ДокументСделка.*, Номенклатура.*, ХарактеристикаНоменклатуры.*, ДокументДвижения.*, СуммаНачальныйДолг, СуммаКонечныйДолг, СуммаПриход, СуммаРасход, СуммаОплаченоДеб, СуммаОплаченоКред, КоличествоПриход, КоличествоРасход, КоличествоЕдиницДляОтчетовПриход, КоличествоЕдиницДляОтчетовРасход, ЦенаПриход, ЦенаРасход, Прибыль, ЦенаОтпускная, Процент} ИЗ (ВЫБРАТЬ ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Организация КАК Организация, ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Контрагент КАК Контрагент, ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.ДоговорКонтрагента КАК ДоговорКонтрагента, ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Сделка КАК ДокументСделка, NULL КАК Номенклатура, NULL КАК ХарактеристикаНоменклатуры, NULL КАК ДокументДвижения, ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаУпрНачальныйОстаток КАК СуммаНачальныйДолг, ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаУпрКонечныйОстаток КАК СуммаКонечныйДолг, 0 КАК СуммаПриход, 0 КАК СуммаРасход, 0 КАК СуммаОплаченоДеб, 0 КАК СуммаОплаченоКред, 0 КАК КоличествоПриход, 0 КАК КоличествоРасход, 0 КАК КоличествоЕдиницДляОтчетовПриход, 0 КАК КоличествоЕдиницДляОтчетовРасход ИЗ РегистрНакопления.ВзаиморасчетыСКонтрагентами.ОстаткиИОбороты(&ДатаНач, &ДатаКон, Регистратор {(&Периодичность)}, , {(ДоговорКонтрагента.Организация).* КАК Организация, (ДоговорКонтрагента.Владелец).* КАК Контрагент, (ДоговорКонтрагента).* КАК ДоговорКонтрагента, (Сделка).* КАК ДокументСделка}) КАК ВзаиморасчетыСКонтрагентамиОстаткиИОбороты ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ ЗакупкиОбороты.Организация, ЗакупкиОбороты.Контрагент, ЗакупкиОбороты.ДоговорКонтрагента, ЗакупкиОбороты.ЗаказПоставщику, ЗакупкиОбороты.Номенклатура, ЗакупкиОбороты.ХарактеристикаНоменклатуры, ЗакупкиОбороты.ДокументЗакупки, 0, 0, ЗакупкиОбороты.СтоимостьОборот, 0, 0, 0, ЗакупкиОбороты.КоличествоОборот, 0, ВЫБОР КОГДА ЗакупкиОбороты.Номенклатура.ЕдиницаДляОтчетов.Коэффициент = 0 ТОГДА 0 ИНАЧЕ ЗакупкиОбороты.КоличествоОборот * ЗакупкиОбороты.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент / ЗакупкиОбороты.Номенклатура.ЕдиницаДляОтчетов.Коэффициент КОНЕЦ, 0 ИЗ РегистрНакопления.Закупки.Обороты(&ДатаНач, &ДатаКон, Регистратор {(&Периодичность)}, СтатусПартии = &ТоварКупленный {(Организация).* КАК Организация, (Контрагент).* КАК Контрагент, (ДоговорКонтрагента).* КАК ДоговорКонтрагента, (ЗаказПоставщику).* КАК ДокументСделка, (Номенклатура).* КАК Номенклатура, (ХарактеристикаНоменклатуры).* КАК ХарактеристикаНоменклатуры, (ДокументЗакупки).* КАК ДокументДвижения}) КАК ЗакупкиОбороты ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ ПродажиОбороты.Организация, ПродажиОбороты.Контрагент, ПродажиОбороты.ДоговорКонтрагента, ПродажиОбороты.ЗаказПокупателя, ПродажиОбороты.Номенклатура, ПродажиОбороты.ХарактеристикаНоменклатуры, ПродажиОбороты.ДокументПродажи, 0, 0, 0, ПродажиОбороты.СтоимостьОборот, 0, 0, 0, ПродажиОбороты.КоличествоОборот, 0, ПродажиОбороты.КоличествоОборот * ПродажиОбороты.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент / ПродажиОбороты.Номенклатура.ЕдиницаДляОтчетов.Коэффициент ИЗ РегистрНакопления.Продажи.Обороты(&ДатаНач, &ДатаКон, Регистратор {(&Периодичность)}, {(Организация).* КАК Организация, (Контрагент).* КАК Контрагент, (ДоговорКонтрагента).* КАК ДоговорКонтрагента, (ЗаказПокупателя).* КАК ДокументСделка, (Номенклатура).* КАК Номенклатура, (ХарактеристикаНоменклатуры).* КАК ХарактеристикаНоменклатуры, (ДокументПродажи).* КАК ДокументДвижения}) КАК ПродажиОбороты ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ ДвиженияДенежныхСредств.Организация, ВЫРАЗИТЬ(ДвиженияДенежныхСредств.Контрагент КАК Справочник.Контрагенты), ДвиженияДенежныхСредств.ДоговорКонтрагента, ДвиженияДенежныхСредств.Сделка, NULL, NULL, ДвиженияДенежныхСредств.ДокументДвижения, 0, 0, 0, 0, ВЫБОР КОГДА ДвиженияДенежныхСредств.ПриходРасход = ЗНАЧЕНИЕ(Перечисление.ВидыДвиженийПриходРасход.Приход) ТОГДА ДвиженияДенежныхСредств.СуммаУпрОборот ИНАЧЕ 0 КОНЕЦ, ВЫБОР КОГДА ДвиженияДенежныхСредств.ПриходРасход = ЗНАЧЕНИЕ(Перечисление.ВидыДвиженийПриходРасход.Расход) ТОГДА ДвиженияДенежныхСредств.СуммаУпрОборот ИНАЧЕ 0 КОНЕЦ, 0, 0, 0, 0 ИЗ РегистрНакопления.ДвиженияДенежныхСредств.Обороты(&ДатаНач, &ДатаКон, Регистратор {(&Периодичность)}, {(ДоговорКонтрагента.Организация).* КАК Организация, (ВЫРАЗИТЬ(ДоговорКонтрагента.Владелец КАК Справочник.Контрагенты)).* КАК Контрагент, (ДоговорКонтрагента).* КАК ДоговорКонтрагента, (Сделка).* КАК ДокументСделка}) КАК ДвиженияДенежныхСредств {ГДЕ ДвиженияДенежныхСредств.Регистратор.* КАК ДокументДвижения}) КАК ЗапросПоВзаиморасчетам ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ ЦеныНоменклатурыСрезПоследних.Номенклатура КАК Номенклатура, ЦеныНоменклатурыСрезПоследних.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры, ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0) КАК Цена ИЗ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&ДатаКон, ТипЦен = &ТипЦен) КАК ЦеныНоменклатурыСрезПоследних) КАК ВложенныйЗапрос ПО ЗапросПоВзаиморасчетам.Номенклатура = ВложенныйЗапрос.Номенклатура И ЗапросПоВзаиморасчетам.ХарактеристикаНоменклатуры = ВложенныйЗапрос.ХарактеристикаНоменклатуры {ГДЕ ЗапросПоВзаиморасчетам.Организация.* КАК Организация, ЗапросПоВзаиморасчетам.Контрагент.* КАК Контрагент, ЗапросПоВзаиморасчетам.ДоговорКонтрагента.* КАК ДоговорКонтрагента, ЗапросПоВзаиморасчетам.ДокументСделка.* КАК ДокументСделка, ЗапросПоВзаиморасчетам.Номенклатура.* КАК Номенклатура, ЗапросПоВзаиморасчетам.ХарактеристикаНоменклатуры.* КАК ХарактеристикаНоменклатуры, ЗапросПоВзаиморасчетам.ДокументДвижения.* КАК ДокументДвижения, ЗапросПоВзаиморасчетам.СуммаНачальныйДолг КАК СуммаНачальныйДолг, ЗапросПоВзаиморасчетам.СуммаКонечныйДолг КАК СуммаКонечныйДолг, ЗапросПоВзаиморасчетам.СуммаПриход КАК СуммаПриход, ЗапросПоВзаиморасчетам.СуммаРасход КАК СуммаРасход, ЗапросПоВзаиморасчетам.СуммаОплаченоДеб КАК СуммаОплаченоДеб, ЗапросПоВзаиморасчетам.СуммаОплаченоКред КАК СуммаОплаченоКред, ЗапросПоВзаиморасчетам.КоличествоПриход КАК КоличествоПриход, ЗапросПоВзаиморасчетам.КоличествоРасход КАК КоличествоРасход, ЗапросПоВзаиморасчетам.КоличествоЕдиницДляОтчетовПриход КАК КоличествоЕдиницДляОтчетовПриход, ЗапросПоВзаиморасчетам.КоличествоЕдиницДляОтчетовРасход КАК КоличествоЕдиницДляОтчетовРасход, (ВЫБОР КОГДА ЗапросПоВзаиморасчетам.КоличествоПриход = 0 ТОГДА 0 ИНАЧЕ ЗапросПоВзаиморасчетам.СуммаПриход / ЗапросПоВзаиморасчетам.КоличествоПриход КОНЕЦ) КАК ЦенаПриход, (ВЫБОР КОГДА ЗапросПоВзаиморасчетам.КоличествоРасход = 0 ТОГДА 0 ИНАЧЕ ЗапросПоВзаиморасчетам.СуммаРасход / ЗапросПоВзаиморасчетам.КоличествоРасход КОНЕЦ) КАК ЦенаРасход} {УПОРЯДОЧИТЬ ПО Организация.*, Контрагент.*, ДоговорКонтрагента.*, ДокументСделка.*, Номенклатура.*, ХарактеристикаНоменклатуры.*, ДокументДвижения.*, СуммаНачальныйДолг, СуммаКонечныйДолг, СуммаПриход, СуммаРасход, СуммаОплаченоДеб, СуммаОплаченоКред, КоличествоПриход, КоличествоРасход, КоличествоЕдиницДляОтчетовПриход, КоличествоЕдиницДляОтчетовРасход, ЦенаПриход, ЦенаРасход, Прибыль, Процент} ИТОГИ СУММА(СуммаНачальныйДолг), СУММА(СуммаКонечныйДолг), СУММА(СуммаПриход), СУММА(СуммаРасход), СУММА(СуммаОплаченоДеб), СУММА(СуммаОплаченоКред), СУММА(КоличествоПриход), СУММА(КоличествоРасход), СУММА(КоличествоЕдиницДляОтчетовПриход), СУММА(КоличествоЕдиницДляОтчетовРасход), ВЫБОР КОГДА Номенклатура ЕСТЬ NULL ТОГДА 0 ИНАЧЕ МАКСИМУМ(ЦенаПриход) КОНЕЦ КАК ЦенаПриход, ВЫБОР КОГДА Номенклатура ЕСТЬ NULL ТОГДА 0 ИНАЧЕ СРЕДНЕЕ(ЦенаРасход) КОНЕЦ КАК ЦенаРасход, СУММА(Прибыль), ВЫБОР КОГДА Номенклатура ЕСТЬ NULL ТОГДА 0 ИНАЧЕ МАКСИМУМ(ЦенаОтпускная) КОНЕЦ КАК ЦенаОтпускная, СРЕДНЕЕ(Процент) ПО ОБЩИЕ, Номенклатура {ИТОГИ ПО Контрагент.*, ДоговорКонтрагента.*, Организация.*, ДокументСделка.*, Номенклатура.*, ХарактеристикаНоменклатуры.*, ДокументДвижения.*} |
|||
13
mrmurza
15.07.11
✎
17:14
|
(1) Спасибо тебе!!! все получилось
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |