|
В следущем запросе как проще сложить булево | ☑ | ||
---|---|---|---|---|
0
Ivan_495
03.07.17
✎
13:22
|
В следущем запросе как проще сложить булево
Как правильно написать эту строчку МАКСИМУМ(ВЫРАЗИТЬ(допусл.Перелет как Число(1)) +ВЫРАЗИТЬ(допусл.СтраховкаМедицинская как ЧИСЛО(1) ) КАК Перелет ? ВЫБРАТЬ ПЕРВЫЕ 900 ЗаказТураПакетВключает.Ссылка КАК Ссылка, ИСТИНА КАК ГрупповойТрансфер, NULL КАК СтраховкаМедицинская, NULL КАК ИндивидуальныйТрансфер, NULL КАК ВизаЗаказана, NULL КАК Перелет ПОМЕСТИТЬ допусл ИЗ Документ.ЗаказТура.ПакетВключает КАК ЗаказТураПакетВключает ГДЕ ЗаказТураПакетВключает.Услуга.Наименование ПОДОБНО "%групповой трансфер%" ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ ПЕРВЫЕ 900 ЗаказТураПакетВключает.Ссылка, NULL, ИСТИНА, NULL, NULL, NULL ИЗ Документ.ЗаказТура.ПакетВключает КАК ЗаказТураПакетВключает ГДЕ ЗаказТураПакетВключает.Услуга.Наименование ПОДОБНО "%Страховка медицинская%" ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ ПЕРВЫЕ 900 ЗаказТураПакетВключает.Ссылка, NULL, NULL, ИСТИНА, NULL, NULL ИЗ Документ.ЗаказТура.ПакетВключает КАК ЗаказТураПакетВключает ГДЕ ЗаказТураПакетВключает.Услуга.Наименование ПОДОБНО "%инд%" И ЗаказТураПакетВключает.Услуга.Наименование ПОДОБНО "%тра%" ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ ПЕРВЫЕ 900 ЗаказТураПакетВключает.Ссылка, NULL, NULL, NULL, ИСТИНА, NULL ИЗ Документ.ЗаказТура.ПакетВключает КАК ЗаказТураПакетВключает ГДЕ ЗаказТураПакетВключает.Услуга.Наименование ПОДОБНО "%виза%" ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ ПЕРВЫЕ 900 ЗаказТураПакетВключает.Ссылка, NULL, NULL, NULL, NULL, ИСТИНА ИЗ Документ.ЗаказТура.ПакетВключает КАК ЗаказТураПакетВключает ГДЕ ЗаказТураПакетВключает.Услуга.Наименование ПОДОБНО "%перелет%" ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ допусл.Ссылка, МАКСИМУМ(допусл.СтраховкаМедицинская) КАК СтраховкаМедицинская, МАКСИМУМ(допусл.ГрупповойТрансфер) КАК ГрупповойТрансфер, МАКСИМУМ(допусл.ИндивидуальныйТрансфер) КАК ИндивидуальныйТрансфер, МАКСИМУМ(допусл.ВизаЗаказана) КАК ВизаЗаказана, МАКСИМУМ(допусл.Перелет ) КАК Перелет, МАКСИМУМ(ВЫРАЗИТЬ(допусл.Перелет как Число(1)) +ВЫРАЗИТЬ(допусл.СтраховкаМедицинская как ЧИСЛО(1) ) КАК Перелет ИЗ допусл КАК допусл СГРУППИРОВАТЬ ПО допусл.Ссылка |
|||
1
mexanik_96
03.07.17
✎
13:24
|
(1) е б а т ь! попробуй конструкцию выбор когда тогда сюда туда конец
|
|||
2
Лефмихалыч
03.07.17
✎
13:24
|
булево складывается при помощи ИЛИ
а при помощи И - умножается тоже максимум возьми |
|||
3
mexanik_96
03.07.17
✎
13:24
|
+(1) да потому что одна исходная таблица
|
|||
4
Вафель
03.07.17
✎
13:27
|
|
|||
5
Ivan_495
03.07.17
✎
13:32
|
допусл.Перелет ИЛИ допусл.СтраховкаМедицинская
|
|||
6
PiotrLoginov
03.07.17
✎
13:32
|
(0) весь запрос не курил.
допусл.Перелет тип - Булево? допусл.СтраховкаМедицинская тип - Булево? очень интересно будет, если при каких-то условиях и то, и то окажется Истина. Сложение даст 2 (два) :) |
|||
7
Лефмихалыч
03.07.17
✎
13:34
|
кстати, запрос не умеет кастовать типы. Он может только длину-ширину расширить-сузить у одного и того же типа
|
|||
8
Лефмихалыч
03.07.17
✎
13:35
|
это 1С, детка, тут вот это
CAST(гогно as пуля) не прокатит |
|||
9
Ivan_495
03.07.17
✎
14:25
|
(2) МАКСИМУМ(допусл.ГрупповойТрансфер
ИЛИ допусл.ИндивидуальныйТрансфер) 2 не получается, детка остается только 4, но про это я и сам знал |
|||
10
mexanik_96
03.07.17
✎
14:28
|
а нельзя через как в (4) и там типа приоритеты указывать(битовые поля), далее как уже говорили через макс
ВЫБРАТЬ ПЕРВЫЕ 900 ЗаказТураПакетВключает.Ссылка, КОГДА ЗаказТураПакетВключает.Услуга.Наименование ПОДОБНО "%перелет%" ТОГДА 1 //или сколько там ИНАЧЕ 0 КОНЕЦ ИЗ Документ.ЗаказТура.ПакетВключает КАК ЗаказТураПакетВключает |
|||
11
Ivan_495
03.07.17
✎
14:29
|
ВЫБОР
КОГДА допусл.ГрупповойТрансфер ТОГДА 1 ИНАЧЕ 0 КОНЕЦ + ВЫБОР КОГДА допусл.ИндивидуальныйТрансфер ТОГДА 1 ИНАЧЕ 0 КОНЕЦ |
|||
12
Ivan_495
03.07.17
✎
14:30
|
(10) все можно.дело в возможностях 1с . думал что-то не знаю
|
|||
13
Лефмихалыч
03.07.17
✎
14:33
|
если они булевские, то достаточно
максимум(допусл.ГрупповойТрансфер или допусл.ИндивидуальныйТрансфер) |
|||
14
Лефмихалыч
03.07.17
✎
14:33
|
а, если числовые, то
максимум(допусл.ГрупповойТрансфер+допусл.ИндивидуальныйТрансфер>0) |
|||
15
1dvd
03.07.17
✎
14:33
|
1 и 0 - это число, а не булево
|
|||
16
Вафель
03.07.17
✎
14:38
|
(10) Маски делать нет смысла, тк для извлечения нужен xor
|
|||
17
Вафель
03.07.17
✎
14:38
|
(14) за такой код нужно руки отрывать
|
|||
18
mexanik_96
03.07.17
✎
14:42
|
(16)согласен. ну ксор же это какое то "или" ведь так?
|
|||
19
mexanik_96
03.07.17
✎
14:42
|
+(18) 1с запрос может в "или" вроде бы...
|
|||
20
Лефмихалыч
03.07.17
✎
14:49
|
(17) тут вся ветка из такого кода
|
|||
21
Ivan_495
03.07.17
✎
15:14
|
вопрос решен в (11)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |