Имя: Пароль:
1C
 
Как в восьмерочном запросе работает функция Максимум с параметром валюта?
Ø
0 Сияющий Асинхраль
 
17.11.06
15:51
Собственно, в ЖКК идет ссылка на параграф "Правила сравнения занчений", который мне так найти и не удалось :-(
1 Gloom
 
17.11.06
16:16
Правила сравнения значений
Поскольку в языке запросов могут сравниваться значения разных типов, определены правила, по которым выполняется сравнение двух значений. Данные правила используются для:
сравнения значений в операторах сравнения;
определения максимального и минимального значений в агрегатных функциях МИНИМУМ и МАКСИМУМ;
упорядочивания записей результата запроса в соответствии с порядком, заданным в предложении УПОРЯДОЧИТЬ ПО.
Если типы значений отличаются друг от друга, то отношения между значениями определяются на основании приоритета типов:
тип NULL (самый низший);
тип Булево;
тип Число;
тип Дата;
тип Строка;
ссылочные типы.
Отношения между различными ссылочными типами определяются на основе внутренних ссылочных номеров таблиц, соответствующих тому или иному типу.
Если типы данных совпадают, то производится сравнение значений по следующим правилам:
у типа Булево значение ИСТИНА больше значения ЛОЖЬ;
у типа Число обычные правила сравнения для чисел;
у типа Дата более ранние даты меньше более поздних;
у типа Строка сравнения производится в соответствии с установленными национальными особенностями базы данных;
ссылочные типы сравниваются на основе своих значений (номера записи и т. п.);
не допускается сравнение полей неограниченной длины (строки неограниченной длины, ХранилищеЗначения, поле ТипЗначения из таблицы планов видов характеристик).
Важно! Любая операция сравнения двух значений, в которой участвует хотя бы одно значение NULL, дает результат, аналогичный значению ЛОЖЬ.
2 Сияющий Асинхраль
 
17.11.06
16:24
Спасибо, к сожалению, это не слишком прояснило ситуацию, зачем в восьмерочных запросах частенько встречаются строчки:
МАКСИМУМ(ВЫБОР КОГДА (УсловияПоставокПоДоговорамКонтрагентовПоНоменклатуре.Цена <> 0 И НЕ УсловияПоставокПоДоговорамКонтрагентовПоНоменклатуре.Цена ЕСТЬ NULL) ТОГДА УсловияПоставокПоДоговорамКонтрагентовПоНоменклатуре.ВалютаЦены ИНАЧЕ ЦеныСрезПоследних.Валюта КОНЕЦ) КАК Валюта,
.
Зачем валюту запихали в Максимум()?
3 Сияющий Асинхраль
 
17.11.06
16:30
Или Максимум() относится только к ценам, а не к валюте? :-( где торможу?
4 angro
 
17.11.06
16:32
может там группировки есть, без текста запроса сложно сказать
5 Сияющий Асинхраль
 
17.11.06
16:38
Копировать сюда запрос смысла не имеет, но это почти во всех запросах в обработке подбора номенклатуры в УТ, например "ЗапросРасходОстаткиИЦеныНоменклатуры".
6 angro
 
17.11.06
16:49
IMHO просто группировать не захотели
7 Сияющий Асинхраль
 
17.11.06
16:55
ОК. Попытаюсь осмыслить...