![]() |
![]() |
![]() |
|
Агрегатные функции в итогах запроса | ☑ | ||
---|---|---|---|---|
0
SKrin
11.10.05
✎
10:19
|
похожая проблема v8: Как в ИТОГИ...ПО сделать итог одной колонки по данным из других?
необходимо в запросе рачитать среднюю ОплатуЗаЕд ВЫБРАТЬ Работы.Организация КАК Предприятие, Работы.ВидРабот КАК ВидРабот, СУММА(Работы.Выполнено) КАК Выполнено, СУММА(Работы.ОплатаВсего) КАК ОплатаВсего, Работы.ОплатаЗаЕд КАК ОплатаЗаЕд ИЗ (ВЫБРАТЬ ДокРаботы.Ссылка.Организация КАК Организация, ДокРаботы.ВидРабот КАК ВидРабот, СУММА(ДокРаботы.Выполнено) КАК Выполнено, СУММА(ДокРаботы.ОплатаВсего) КАК ОплатаВсего, ВЫБОР КОГДА ДокРаботы.Выполнено <> 0 ТОГДА ДокРаботы.ОплатаВсего / ДокРаботы.Выполнено ИНАЧЕ 0 КОНЕЦ КАК ОплатаЗаЕд ИЗ Документ.ВыпРаботы.Работы КАК ДокРаботы СГРУППИРОВАТЬ ПО ДокРаботы.ВидРабот, ВЫБОР КОГДА ДокРаботы.Выполнено <> 0 ТОГДА ДокРаботы.ОплатаВсего / ДокРаботы.Выполнено ИНАЧЕ 0 КОНЕЦ) КАК Работы СГРУППИРОВАТЬ ПО Работы.ВидРабот УПОРЯДОЧИТЬ ПО ВидРабот ИТОГИ СУММА(Выполнено), СУММА(ОплатаВсего), СРЕДНЕЕ(ОплатаЗаЕд) ПО Предприятие, ВидРабот в результате считает не так как нужно Выполнено|ОплатаВсего|ОплатаЗаЕд 8,76 1 899,98 168,82 5,67 1 230,98 217,26 3,09 669 216,52 0 0 0 как правильно сделать чтобы считал верно? |
|||
1
SKrin
11.10.05
✎
14:28
|
//Выполнено|ОплатаВсего|ОплатаЗаЕд|
// 8,76 1 899,98 168,82 |<-этот итог неправильный,должно=(1 899,98/8,76)=216,89 //------------------------------| // 5,67 1 230,98 217,26 | = (1 230,98/5,67) // 3,09 669 216,52 | = (669/3,09) // 0 0 0 | // |
|||
2
SnarkHunter
11.10.05
✎
14:32
|
ВЫБРАТЬ
Работы.Организация КАК Предприятие, Работы.ВидРабот КАК ВидРабот, СУММА(Работы.Выполнено) КАК Выполнено, СУММА(Работы.ОплатаВсего) КАК ОплатаВсего, (СУММА(Работы.ОплатаВсего) / СУММА(Работы.Выполнено)) КАК ОплатаЗаЕд |
|||
3
SKrin
11.10.05
✎
14:39
|
(2) а вдруг Работы.Выполнено=0
|
|||
4
SnarkHunter
11.10.05
✎
14:47
|
А проверить что мешает?
|
|||
5
SKrin
11.10.05
✎
14:52
|
(4) где? во встроенном запросе пробовал-бесполезно
а на вложенные агрегатные функции ругается |
|||
6
SnarkHunter
11.10.05
✎
15:01
|
?(СУММА(Работы.Выполнено) = 0, 0, (СУММА(Работы.ОплатаВсего) / СУММА(Работы.Выполнено)))
|
|||
7
SKrin
11.10.05
✎
15:11
|
(6) а че в запросах так можно?
|
|||
8
SnarkHunter
11.10.05
✎
15:14
|
Если не получится, тогда через Case попробуй...
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |