powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Люди добрые! Погомогите, кто чем сможет! :)
7 сообщений из 7, страница 1 из 1
Люди добрые! Погомогите, кто чем сможет! :)
    #34938193
ElDoRada
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Это ужасно.......
Суть проблемы: Есть таблица. Примерная структура - (код, год, макс., oct1, oct2,oct3) Надо получить строку, которая будет содержать для определенного значения поля "Код" среднее по каждому из полей... причем среднее расчитывается след. образом: складываются все значения в столбце и делятся на количесво строк :) казалось бы - проще простого...
но есть одно НО... в любом из полей значением может быть "*". А может и не быть. Так вот в случае наличия вот такой вот звездочки делить надо на (количество строк-количество звездочек по столбцу).

пример:
код год макс oct1 oct2 oct3
---------------------------
123 1945 62 15 10 20
123 1946 12 * 10 50
123 1947 0 10 *
123 1948 31 14 15
123 1949 * 10 10 12
123 1950 65 30 * 25
---------------------------
итог, например по полю "макс", должен быть 34... т.е. количество строчек должно быть =5
пробовала всякое
даже писАла count(IIF(ALLTRIM(l.max_)=="*",0,1))
ну никак не хочет оно выкидывать из рассмотрения эту строчку со звездочкой

И еще один момент
хотелось бы всё это сделать в select'е :)
...
Рейтинг: 0 / 0
Люди добрые! Погомогите, кто чем сможет! :)
    #34938245
PaulWist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ElDoRadaЭто ужасно.......
....
пробовала всякое
.....
даже писАла count(IIF(ALLTRIM(l.max_)=="*",0,1))


Теперь попробуй напиши:

Код: plaintext
SUM(IIF(ALLTRIM(l.max_)=="*", 0 , 1 ))
...
Рейтинг: 0 / 0
Люди добрые! Погомогите, кто чем сможет! :)
    #34938283
ElDoRada
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
)))))))))))))
ну вы меня совсем уж за дуру-то не считайте :)
я могла бы весь SELECT выложить :) но суть в том, что суммируется нормально :) делится неправильно :) надо на 5 делить (если рассматривать пример), а оно делит на 6
вот
...
Рейтинг: 0 / 0
Люди добрые! Погомогите, кто чем сможет! :)
    #34938295
ElDoRada
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
и если уж быть совсем точными, то писать надо
SUM(IIF(ALLTRIM(l.max_)=="*",0,VAL(l.max_)))
...
Рейтинг: 0 / 0
Люди добрые! Погомогите, кто чем сможет! :)
    #34938329
ElDoRada
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ой...
простите :)
я точно дура )))))))))))))))
спасибо. работает
:-*
...
Рейтинг: 0 / 0
Люди добрые! Погомогите, кто чем сможет! :)
    #34938387
PaulWist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ElDoRada)))))))))))))
ну вы меня совсем уж за дуру-то не считайте :)
я могла бы весь SELECT выложить :) но суть в том, что суммируется нормально :) делится неправильно :) надо на 5 делить (если рассматривать пример), а оно делит на 6
вот

Ну иии...

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
CREATE CURSOR test (код i,  год i, макс c( 10 ), oct1 c( 10 ), oct2 c( 10 ), oct3 c( 10 ))


INSERT INTO test VALUES ( 123 ,  1945 , '62', '15', '10', '20')
INSERT INTO test VALUES ( 123 ,  1946 , '12','*', '10', '50') 
INSERT INTO test VALUES ( 123 ,  1947 , '0' ,'10', '*', '')
INSERT INTO test VALUES ( 123 ,  1948 , '31','14', '15', '')
INSERT INTO test VALUES ( 123 ,  1949 , '*' ,'10', '10', '12')
INSERT INTO test VALUES ( 123 ,  1950 , '65','30', '*' , '25')

SELECT SUM(IIF(allt(макс) == '*', 0 ,VAL(макс)))/SUM(IIF(allt(макс) == '*', 0 , 1 )), ;
SUM(IIF(allt(макс) == '*', 0 ,VAL(макс))), SUM(IIF(allt(макс) == '*', 0 , 1 )) FROM test
...
Рейтинг: 0 / 0
Люди добрые! Погомогите, кто чем сможет! :)
    #34938409
ElDoRada
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
спасибо-спасибо :)
я ж говорю, что дура я :) я не поняла сразу о чем шла речь
а теперь уже всё работает как надо :)
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Люди добрые! Погомогите, кто чем сможет! :)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]