Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Люди добрые! Погомогите, кто чем сможет! :) / 7 сообщений из 7, страница 1 из 1
14.11.2007, 13:06
    #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
14.11.2007, 13:16
    #34938245
PaulWist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Люди добрые! Погомогите, кто чем сможет! :)
ElDoRadaЭто ужасно.......
....
пробовала всякое
.....
даже писАла count(IIF(ALLTRIM(l.max_)=="*",0,1))


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

Код: plaintext
SUM(IIF(ALLTRIM(l.max_)=="*", 0 , 1 ))
...
Рейтинг: 0 / 0
14.11.2007, 13:22
    #34938283
ElDoRada
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Люди добрые! Погомогите, кто чем сможет! :)
)))))))))))))
ну вы меня совсем уж за дуру-то не считайте :)
я могла бы весь SELECT выложить :) но суть в том, что суммируется нормально :) делится неправильно :) надо на 5 делить (если рассматривать пример), а оно делит на 6
вот
...
Рейтинг: 0 / 0
14.11.2007, 13:24
    #34938295
ElDoRada
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Люди добрые! Погомогите, кто чем сможет! :)
и если уж быть совсем точными, то писать надо
SUM(IIF(ALLTRIM(l.max_)=="*",0,VAL(l.max_)))
...
Рейтинг: 0 / 0
14.11.2007, 13:30
    #34938329
ElDoRada
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Люди добрые! Погомогите, кто чем сможет! :)
ой...
простите :)
я точно дура )))))))))))))))
спасибо. работает
:-*
...
Рейтинг: 0 / 0
14.11.2007, 13:40
    #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
14.11.2007, 13:44
    #34938409
ElDoRada
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Люди добрые! Погомогите, кто чем сможет! :)
спасибо-спасибо :)
я ж говорю, что дура я :) я не поняла сразу о чем шла речь
а теперь уже всё работает как надо :)
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Люди добрые! Погомогите, кто чем сможет! :) / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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