Имя: Пароль:
1C
1С v8
Функция СРЕДНЕЕ в запросе при группировке
0 Alexey_55
 
27.11.12
12:55
результат запроса перед группировкой

Номенклатура   Количество
Товар1             10
Товар1             0

почему после группировки по номенклатура с функцией Среднее получается 10?
1 Alexey_55
 
27.11.12
12:55
мне нужно чтобы получалось 5
2 acsent
 
27.11.12
12:56
null?
3 Starhan
 
27.11.12
12:56
запрос в студию
4 Wobland
 
27.11.12
12:57
всё правильно получается, это ты не того ждёшь от такого запроса
5 Alexey_55
 
27.11.12
12:59
(4) Агрегатная функция СРЕДНЕЕ
Функция вычисляет среднее значение всех попавших в выборку значений поля.

объясните плиз как эта 10 получилась?
6 Reset
 
27.11.12
12:59
(5) -> (3)
7 Alexey_55
 
27.11.12
13:00
я так понимаю мне нужно вручную считать 5?  
Сумма(Количество) / Количество(Номенклатура)
8 Reset
 
27.11.12
13:00
(5) "объясните плиз как эта 10 получилась?"

Потому что среднее значение всех попавших в выборку значений поля получилось 10
9 Irek-kazan
 
27.11.12
13:01
я так понимаю среднее считает внутри группы?
10 Wobland
 
27.11.12
13:01
(5) взялось 10 и поделилось на 1. или взялось 20 и поднлилось на 2...
11 Жан Пердежон
 
27.11.12
13:01
ВЫБРАТЬ
   ВТ.Товар,
   СРЕДНЕЕ(ВТ.Сумма) КАК Сумма
ИЗ
   (ВЫБРАТЬ 1 КАК Товар, 0 КАК Сумма
   ОБЪЕДИНИТЬ ВСЕ
   ВЫБРАТЬ 1, 0) КАК ВТ

СГРУППИРОВАТЬ ПО ВТ.Товар


Товар    Сумма
1    5

Вывод: ТС нагло врет
12 Starhan
 
27.11.12
13:01
(5) навскидку либо не ноль а null в значении количество
либо ты группируешь сначало и у тебя получается значение
номенлкатура1 - 10 а потом с этой строки вычисляешь среднее - что и будет равно 10 что бы это понять ндао вдиеть втой запрос


ну и традиционное. что бы тебе всю жизнь так задачи ставили как ты вопросы на мисте задаешь.
13 Жан Пердежон
 
27.11.12
13:02
+(11) очепятка:

ВЫБРАТЬ
   ВТ.Товар,
   СРЕДНЕЕ(ВТ.Сумма) КАК Сумма
ИЗ
   (ВЫБРАТЬ 1 КАК Товар, 10 КАК Сумма
   ОБЪЕДИНИТЬ ВСЕ
   ВЫБРАТЬ 1, 0) КАК ВТ

СГРУППИРОВАТЬ ПО ВТ.Товар
14 Steini
 
27.11.12
13:06
(0) запрос в студию
15 Alexey_55
 
27.11.12
13:11
ВЫБРАТЬ
   Номенклатура,
   СРЕДНЕЕ(Количество)    
ИЗ
   Товары

СГРУППИРОВАТЬ ПО
   Номенклатура
16 Wobland
 
27.11.12
13:12
(15) красавец!
17 Alexey_55
 
27.11.12
13:12
Таблица Товары в (0)
18 ptiz
 
27.11.12
13:12
(15) В 1С не существует таблицы "Товары".
19 mikecool
 
27.11.12
13:12
про null уже писали?
20 Жан Пердежон
 
27.11.12
13:12
(15) шикарно
21 Wobland
 
27.11.12
13:13
(17) всё равно врёшь
22 Жан Пердежон
 
27.11.12
13:14
походу тс дятел и читает комменты рандомно
23 Alexey_55
 
27.11.12
13:15
Запрос огромный, не хочу его выкладывать.
в ВременнойТаблице вот такие данные, которые в таблице (0) мне необходимо их сгруппировать
24 Alexey_55
 
27.11.12
13:16
нет там NULL< проверял
если бы был NULL запрос бы выдал ошибку
25 Жан Пердежон
 
27.11.12
13:16
вот твой запрос:

ВЫБРАТЬ
   Номенклатура,
   СРЕДНЕЕ(ЕСТЬNULL(Количество,0))    
ИЗ
   Товары

СГРУППИРОВАТЬ ПО
   Номенклатура
26 Wobland
 
27.11.12
13:17
(23) тогда думай сам. среднее считается так, как в школе учили
27 Жан Пердежон
 
27.11.12
13:18
(24) опять вранье
28 Starhan
 
27.11.12
13:19
(24) выполни в консоли все три запроса

ВЫБРАТЬ
   Номенклатура,
   СРЕДНЕЕ(Количество)    
ИЗ
   (ВЫбрать "ф" как Номенклатура,
   10 как количество
   Объединить
   ВЫбрать "ф" как Номенклатура,
   0 как количество) КАК Товары

СГРУППИРОВАТЬ ПО
   Номенклатура

//////////////////////////////////////////

ВЫБРАТЬ
   Номенклатура,
   СРЕДНЕЕ(Количество)    
ИЗ
   (ВЫбрать "ф" как Номенклатура,
   10 как количество
   Объединить
   ВЫбрать "ф" как Номенклатура,
   NULL как количество) КАК Товары

СГРУППИРОВАТЬ ПО
   Номенклатура

/////////////////////////////////////////

ВЫБРАТЬ
   Номенклатура,
   СРЕДНЕЕ(естьNULL(Количество,0))    
ИЗ
   (ВЫбрать "ф" как Номенклатура,
   10 как количество
   Объединить
   ВЫбрать "ф" как Номенклатура,
   NULL как количество) КАК Товары

СГРУППИРОВАТЬ ПО
   Номенклатура


и подумай
29 Alexey_55
 
27.11.12
13:19
меня в школе учили
(10 + 0) / 2 (количество номенклатуры)
30 Wobland
 
27.11.12
13:20
(29) 20/2 тоже будет 10. внезапно
31 Alexey_55
 
27.11.12
13:23
Всем спасибо! проблема была в NULL
32 crazy_killer
 
27.11.12
13:23
(29)
Автор, ну тебе что, сложно сказать "я честно выполнил запрос из (25) и все равно 10" ?

У людей, помогающих тебе, есть определенное предположение. Предложили провести тест, ты его НЕ провел, а взамен этого рассказываешь про свою школу
33 Wobland
 
27.11.12
13:23
(31) если бы был NULL запрос бы выдал ошибку
34 crazy_killer
 
27.11.12
13:24
(31) плять... наконецто
35 Alexey_55
 
27.11.12
13:24
был уверен что нет NULL потому что прочитал в справке

Если поле не может содержать числовых значений, то применение функции СРЕДНЕЕ к такому полю вызовет ошибку

не так понял
36 Irek-kazan
 
27.11.12
13:25
никому нельзя верить, даже себе...А ведь пернуть тока хотел
37 Alexey_55
 
27.11.12
13:26
еще раз всем спасибо большое!