Текущее время: Чт, авг 07 2025, 23:18

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 6 ] 
Автор Сообщение
 Заголовок сообщения: Query Designer формула
СообщениеДобавлено: Пт, май 18 2012, 13:41 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Чт, мар 01 2012, 15:22
Сообщения: 154
Всем привет! Кто-нибудь сможет объяснить что в этой формуле происходит? Где тут "Если" , где "То". Где условие, а где результат?

Max( ABS(A) , ABS (B) ) * ((A==0) * ((B>0) - (B<0)) + (A<>0) * ((A>0) - (A<0))) - C


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Query Designer формула
СообщениеДобавлено: Пт, май 18 2012, 13:53 
Модератор
Модератор

Зарегистрирован:
Чт, окт 21 2010, 08:48
Сообщения: 128
(Если A > B - то A иначе B)*
( (Если А==0 То 1 иначе 0)*((Если B>0 то 1 иначе 0) - (Если B < 0 то 1 иначе 0))
+ (Если А <> 0 то 1 иначе 0)*((Если А>0 то 1 иначе 0) - (Если А < 0 то 1 иначе 0)))
- С

В общем берём максимальное значение от А и Б и умножаем его на
Если А = 0 то в зависимости от Б (Если больше 0 на 1 ) если меньше то -1
Если А <> 0 то в зависимости от А(Если больше 0 на 1 ) если меньше то -1
И отнимаем С


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Query Designer формула  Тема решена
СообщениеДобавлено: Пт, май 18 2012, 13:55 
Почетный гуру
Почетный гуру

Зарегистрирован:
Чт, фев 03 2005, 10:18
Сообщения: 503
Code:
Если А = 0 , то
       Если B > 0 , то
            Max( ABS(A) , ABS (B) ) * 1 - С
       Иначе
            Max( ABS(A) , ABS (B) ) * -1 - С
       КонецЕсли
Иначе
       Если А > 0 , то
            Max( ABS(A) , ABS (B) ) * 1 - С
       Иначе
            Max( ABS(A) , ABS (B) ) * -1 - С
       КонецЕсли           
КонецЕсли

Вроде так.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Query Designer формула
СообщениеДобавлено: Пт, май 18 2012, 14:26 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Чт, мар 01 2012, 15:22
Сообщения: 154
:shock: Не ожидал таких быстрых и понятных ответов. Спасибо большое!!!


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Query Designer формула
СообщениеДобавлено: Пн, май 21 2012, 09:02 
Специалист
Специалист

Зарегистрирован:
Пн, дек 12 2011, 08:57
Сообщения: 128
Откуда: Самара
Пол: Мужской
Air_demon написал(а):
Code:
Если А = 0 , то
       Если B > 0 , то
            Max( ABS(A) , ABS (B) ) * 1 - С
       Иначе
            Max( ABS(A) , ABS (B) ) * -1 - С
       КонецЕсли
Иначе
       Если А > 0 , то
            Max( ABS(A) , ABS (B) ) * 1 - С
       Иначе
            Max( ABS(A) , ABS (B) ) * -1 - С
       КонецЕсли           
КонецЕсли

Вроде так.

Извините, а разве в ветке где идет проверка на А = 0 есть блок "иначе" для значения B?
Code:
Если А = 0 , то
       Если B > 0 , то
            Max( ABS(A) , ABS (B) ) * 1 - С
       Если B < 0, то
            Max( ABS(A) , ABS (B) ) * -1 - С
       Если B = 0, то
            Max( ABS(A) , ABS (B) ) * 0 - С
       КонецЕсли
Иначе
       Если А > 0 , то
            Max( ABS(A) , ABS (B) ) * 1 - С
       Иначе
            Max( ABS(A) , ABS (B) ) * -1 - С
       КонецЕсли           
КонецЕсли


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Query Designer формула
СообщениеДобавлено: Пн, май 21 2012, 10:09 
Почетный гуру
Почетный гуру

Зарегистрирован:
Чт, фев 03 2005, 10:18
Сообщения: 503
ski написал:
Извините, а разве в ветке где идет проверка на А = 0 есть блок "иначе" для значения B?

Да, пропустил проверку на 0.
Но результате выполнения функции Max( ABS(A) , ABS (B) ), где А=0 и В=0 все равно был бы 0 и таким образом общий результат -С


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 6 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB