Имя: Пароль:
1C
1С v8
Среднее в запросе
0 CyberDream
 
19.08.13
17:55
Вопрос больше касается алгоритма. Кто как делает. Например. Есть таблица:

Дата                 Цена
01.01.2013            10
25.01.2013            20

Нужно расчитать среднюю цену за период с 01.01.2013 по 31.01.2013.
Очевидно, что среднее арифметическое по полю цена есть 15. Но на самом деле цена в 10 была на протяжении 24 дней, а цена в 20 на протяжении 7 дней. Отсюда вывод, что средняя цена составляет 12.25

Интересно решить подобную задачу запросом. Подскажите, кто как делал.
1 Fragster
 
модератор
19.08.13
17:57
умножить на количество дней действия / количество всех дней
2 CyberDream
 
19.08.13
17:58
(1) это очевидно. Вопрос по запросу. Интересны варианты.
3 Bober
 
19.08.13
18:05
(2) запросом получить таблицу, если отчет идет за период месяц.

01.01.2013, 24.01.2013, 10
25.01.2013, 31.01.2013, 20

а дальше дело техники
4 hhhh
 
19.08.13
18:05
(2) ну вариант один. Тот какой в (1). И он в общем-то не интересен. А у вас какие варианты?
5 CyberDream
 
19.08.13
18:08
(4) копаю в сторону (3) но что-то пока особых успехов не достигнуто.

Для получения подобной таблицы - первая мысль соединять выборку саму с собой по уловию периода.....
6 Serginio1
 
19.08.13
18:08
http://kb.mista.ru/article.php?id=92
разница дат
7 CyberDream
 
19.08.13
18:10
(6) наверное то, что нужно. Ща запилим.
8 Serginio1
 
19.08.13
18:15
(7) Только нужно условие на джойн меньше, а не меньше или равно
9 Serginio1
 
19.08.13
18:40
Тьфу относительно твоей задачи нужно искать наибольшую следующую дату и если её нет то текущуюДату.
То есть нужно искать мин дату при условии, что она больше
Тоесть
Select т.Дата,т.Цена,Мин(Т2.Дата) Как следующаяДата From Таблица как т
  Левое соединенние  Таблица как т2 ПО Т.Дата <Т2.Дата
  Сгруппировать По т.Дата,т.Цена
10 Тролль главный
 
19.08.13
18:45
у меня вопрос: а что это "среднее" реально отражает то?
11 Михаил Козлов
 
19.08.13
19:44
(10)+ По 1-ой цене пришло 1000, а по 2-ой - 1. Какая средняя цена?
12 Bober
 
20.08.13
16:33
(0) может еще актуально
http://infostart.ru/public/92490/index.php