|
Выбор Когда в запросе. Как экранировать условие? ↓ (Волшебник 23.12.2024 15:26) Дмитрий, Волшебник, Ненавижу 1С, boev82, rbcvg, zenik, Александр111, ReaLg, 2mugik, dmt, DemonShinji2, ads55, Valdis2007
| ☑ | ||
---|---|---|---|---|
0
Lama12
23.12.24
✎
15:12
|
Есть запрос.
ВЫБРАТЬ ВЫБОР КОГДА НЕ ТИПЗНАЧЕНИЯ(&Парам1) = ТИП(Число) ТОГДА ВЫБОР КОГДА &Парам1 = НАЧАЛОПЕРИОДА(&Парам1, ДЕНЬ) ТОГДА "Начало дня" ИНАЧЕ "Не начало дня" КОНЕЦ ИНАЧЕ "Число" КОНЕЦ КАК Поле1 Почему если Парам1 имеет тип число, то возникает ошибка? Разве при невыполнении условия, то что после ТОГДА должно выполняться? |
|||
1
Волшебник
23.12.24
✎
15:14
|
какая ошибка?
|
|||
2
mikecool
23.12.24
✎
15:14
|
а сам то как думаешь? когда сравниваешь несравнимое, будет ошибка
|
|||
3
mikecool
23.12.24
✎
15:15
|
+2 а так, я уже как то на это нарывался, будто бы запрос проверяет все возможные варианты параметра
|
|||
4
mikecool
23.12.24
✎
15:16
|
+3 в общем - не делай так в запросе )
|
|||
5
Волшебник
23.12.24
✎
15:16
|
Поле1 - плохое имя поля
|
|||
6
Lama12
23.12.24
✎
15:16
|
Неверные параметры НАЧАЛОПЕРИОДА
КОГДА &Парам1 = НАЧАЛОПЕРИОДА(<<?>>&Парам1, ДЕНЬ) |
|||
7
Lama12
23.12.24
✎
15:18
|
(4) Ну здорово. Я понял что так не работает. Вопрос, как сделать что б работало?
|
|||
8
СвинТуз
23.12.24
✎
15:20
|
(6)
NULL лови или НЕОПРЕДЕЛЕНО это как вариант ВЫБОР КОГДА ТИПЗНАЧЕНИЯ(&Парам1) = ТИП(Дата) ТОГДА ВЫБОР КОГДА &Парам1 = НАЧАЛОПЕРИОДА(&Парам1, ДЕНЬ) ТОГДА "Начало дня" ИНАЧЕ "Не начало дня" КОНЕЦ |
|||
9
СвинТуз
23.12.24
✎
15:21
|
(0)
Бред бредячий? )) |
|||
10
СвинТуз
23.12.24
✎
15:23
|
Читаешь такой код и думаешь что ты уже не просто стар,
а суперстар Шутка. |
|||
11
Волшебник
23.12.24
✎
15:24
|
(10) Непонятно, почему всё это нельзя проверить в программном коде, да?
|
|||
12
Волшебник
23.12.24
✎
15:25
|
Зачем проверять параметр в сложном условии для каждой строки запроса?
|
|||
13
Lama12
23.12.24
✎
15:26
|
Академический интерес.
|
|||
14
СвинТуз
23.12.24
✎
15:26
|
(11)
Норм. Живой же? Руки не отбили. 18+ лет в пути. Все нормально. |
|||
15
Волшебник
23.12.24
✎
15:26
|
(13) На другом форуме.
|
|||
16
СвинТуз
23.12.24
✎
15:27
|
(12)
Да вроде нормально. Всяко бывает. Просто я бы по другому сделал. |
|||
17
программистище
23.12.24
✎
15:28
|
(12) люди любят усложнять себе задачу
|
|||
18
СвинТуз
23.12.24
✎
15:28
|
(16)
как в (8). Один из вариантов. |
|||
19
Lama12
23.12.24
✎
15:30
|
(18) (8) Будет та же ошибка.
|
|||
20
СвинТуз
23.12.24
✎
15:35
|
(19)
Правда? Нужно свою треуголку кушать. Ну ну. Еще можно текст запроса менять. Что хрень в запросе не творить. Константа то одна. |
|||
21
Ненавижу 1С
24.12.24
✎
08:27
|
Надо предварительно параметр "погрузить" в колонку составного типа:
ВЫБРАТЬ 0 КАК Параметр ПОМЕСТИТЬ Параметры ГДЕ ЛОЖЬ ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ ДАТАВРЕМЯ(1, 1, 1) ГДЕ ЛОЖЬ ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ &Параметр ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВЫБОР КОГДА НЕ ТИПЗНАЧЕНИЯ(Параметр) = ТИП(Число) ТОГДА ВЫБОР КОГДА Параметр = НАЧАЛОПЕРИОДА(ВЫРАЗИТЬ(Параметр КАК ДАТА), ДЕНЬ) ТОГДА "Начало дня" ИНАЧЕ "Не начало дня" КОНЕЦ ИНАЧЕ "Число" КОНЕЦ КАК Результат ИЗ Параметры КАК Параметры |
|||
22
Волшебник
24.12.24
✎
09:24
|
(21) извращенцы
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |