|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
08.08.2014, 15:28 | #1 |
Регистрация: 20.08.2009
Сообщений: 4
|
Среднее значение по 7 полям по заданному диапазону дат и условием вхождения критерия в список
Здравствуйте! помогите советом.. никак не получается решить задачу:
Требуется найти среднее значение по 7 полям за каждый день месяца при условии вхождения значения поля silos в список (1,3,7,9). Пример таблицы по которой идет выборка во вложении... то есть что бы получилась выборка вида: дата тонкость 01.05.2014 4 02.05.2014 3,72 |
08.08.2014, 15:38 | #2 |
Санитар
Старожил
Регистрация: 04.10.2008
Сообщений: 2,577
|
МБ ты скинешь таки листинг создания этой таблицы?
Код:
|
08.08.2014, 15:42 | #3 |
Регистрация: 20.08.2009
Сообщений: 4
|
SELECT silos1.data, silos1.silos, silos1.tonkost, silos1.tonkost2, silos1.tonkost3, silos1.tonkost4, silos1.tonkost5, silos1.tonkost6, silos1.tonkost7
FROM silos1 WHERE (((silos1.silos) In (1,3,7,8,9))) GROUP BY silos1.data, silos1.data, silos1.silos, silos1.tonkost, silos1.tonkost2, silos1.tonkost3, silos1.tonkost4, silos1.tonkost5, silos1.tonkost6, silos1.tonkost7 HAVING (((silos1.data) Between [par1] And [par2])); Последний раз редактировалось n@TS; 08.08.2014 в 16:12. |
08.08.2014, 15:58 | #4 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
AVG(IsNull(tonkost,0)+IsNull(tonkos t2,0)+...+IsNull(tonkost7,0))
GROUP BY Data
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
22.08.2014, 12:33 | #5 |
Регистрация: 20.08.2009
Сообщений: 4
|
Хелп ми..плиз не так считает запрос у него: если (2+4+6)+(3+7)= 9 (получает как 4+5 ) а должно то по идее 22/5=4,4
SELECT Avg(IIf(IsNull(tonkost),0,tonkost)+ IIf(IsNull(tonkost2),0,tonkost2)+II f(IsNull(tonkost3),0,tonkost3)+IIf( IsNull(tonkost4),0,tonkost4)+IIf(Is Null(tonkost5),0,tonkost5)+IIf(IsNu ll(tonkost6),0,tonkost6)+IIf(IsNull (tonkost7),0,tonkost7)) AS srznach,data FROM silos1 WHERE (((silos1.silos) In (1,3,7,8,9))) GROUP BY silos1.data HAVING (((silos1.data) Between par1 And par2)); то есть если из "тонкостей" только один вид есть - то правильно, если больше - то уже нет решено: SELECT a.data, Avg(a.sum) AS srznach FROM (SELECT data, ( (IIf(IsNull(tonkost),0,tonkost)+IIf (IsNull(tonkost2),0,tonkost2)+IIf(I sNull(tonkost3),0,tonkost3)+IIf(IsN ull(tonkost4),0,tonkost4)+IIf(IsNul l(tonkost5),0,tonkost5)+IIf(IsNull( tonkost6),0,tonkost6)+IIf(IsNull(to nkost7),0,tonkost7)) / (IIf(IsNull(tonkost),0,1)+IIf(IsNul l(tonkost2),0,1)+IIf(IsNull(tonkost 3),0,1)+IIf(IsNull(tonkost4),0,1)+I If(IsNull(tonkost5),0,1)+IIf(IsNull (tonkost6),0,1)+IIf(IsNull(tonkost7 ),0,1)) ) AS sum FROM silos1 WHERE (((silos1.silos) In (5))) and (((silos1.data) Between par1 And par2)) ) AS a GROUP BY a.data; Последний раз редактировалось n@TS; 22.08.2014 в 16:24. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
вывод строк по диапазону дат | Pamhunt | Microsoft Office Excel | 4 | 20.06.2014 18:50 |
Поиск по диапазону дат в dbgrideh | spotip | Общие вопросы Delphi | 17 | 07.05.2014 16:31 |
выборка из таблицы по диапазону дат | strannick | Microsoft Office Excel | 4 | 12.12.2011 17:18 |