|
v8: Ошибка оператора ВЫБОР в 8.2 | ☑ | ||
---|---|---|---|---|
0
vvp117
30.03.12
✎
08:42
|
Конфигурация: ЛЮБАЯ
Версия конфигурации: НЕ ВАЖНО Платформа: 8.2.15.294 или 8.2.15.301 Режим совместимости: НЕ ВАЖНО Суть ошибки: оператор ВЫБОР игнорирует очевидные условия :) Чтобы проверить, достаточно вот такого кода: ВЫБРАТЬ Организация.ВерсияДанных КАК ВерсияДанных1, ВЫБОР КОГДА ИСТИНА ТОГДА Организация.ВерсияДанных ИНАЧЕ "TEST" КОНЕЦ КАК ВерсияДанных2 ИЗ Справочник.Организация КАК Организация Почему-то в поле [ВерсияДанных2] выводится пустая строка, хотя должно выводится то же, что и в поле [ВерсияДанных1]. Вопрос: что я делаю не так? |
|||
1
andrewks
30.03.12
✎
08:44
|
а если так?
КОГДА ЛОЖЬ ТОГДА "TEST" ИНАЧЕ Организация.ВерсияДанных КОНЕЦ КАК ВерсияДанных2 |
|||
2
vvp117
30.03.12
✎
08:45
|
(1) то же
|
|||
3
vvp117
30.03.12
✎
08:52
|
вообще пробовал уже и так:
ВЫБРАТЬ Организация.ВерсияДанных КАК ВерсияДанных1, ВЫБОР КОГДА ИСТИНА ТОГДА ВЫРАЗИТЬ(Организация.ВерсияДанных КАК СТРОКА(50)) ИНАЧЕ "TEST" КОНЕЦ КАК ВерсияДанных2 ИЗ Справочник.Организация КАК Организация выдается ошибка несовместимости типа данных и так: ВЫБРАТЬ Организация.ВерсияДанных КАК ВерсияДанных1, ВЫБОР КОГДА ИСТИНА ТОГДА ПРЕДСТАВЛЕНИЕ(Организация.ВерсияДанных) ИНАЧЕ "TEST" КОНЕЦ КАК ВерсияДанных2 ИЗ Справочник.Организация КАК Организация ничего не помогает ((( |
|||
4
КМ155
30.03.12
✎
08:58
|
(3) и не поможет,
ты же не можешь для ВерсияДанных сделать примитивное ВЫРАЗИТЬ(Организация.ВерсияДанных КАК СТРОКА(128)) хотя ТипЗнч(Организация.ВерсияДанных) - строка |
|||
5
andrewks
30.03.12
✎
08:58
|
проверил на 289-м - всё гуд
|
|||
6
rs_trade
30.03.12
✎
09:01
|
это касается только поля версия данных. поменяй на наименование и все заработает
|
|||
7
andrewks
30.03.12
✎
09:03
|
(6) ага, я как раз на нём и проверял :)
|
|||
8
КМ155
30.03.12
✎
09:05
|
(4) ещё прикольнее следующий код, который вернёт NULL
ВЫБРАТЬ ВложенныйЗапрос.флаг, ВложенныйЗапрос.Ссылка, ВложенныйЗапрос.ВерсияДанных ИЗ (ВЫБРАТЬ 1 КАК флаг, Организации.Ссылка КАК Ссылка, Организации.ВерсияДанных КАК ВерсияДанных ИЗ Справочник.Организации КАК Организации ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 2, Организации.Ссылка, "Нах" ИЗ Справочник.Организации КАК Организации) КАК ВложенныйЗапрос ГДЕ ВложенныйЗапрос.флаг = 1 |
|||
9
КМ155
30.03.12
✎
09:07
|
(8) резюме - получить результат можно только разименованием:
ВЫБРАТЬ ВложенныйЗапрос.флаг, ВложенныйЗапрос.Ссылка, ВложенныйЗапрос.ВерсияДанных, ВложенныйЗапрос.Наименование, Организации.ВерсияДанных КАК ВерсияДанных1 ИЗ (ВЫБРАТЬ 1 КАК флаг, Организации.Ссылка КАК Ссылка, Организации.ВерсияДанных КАК ВерсияДанных, Организации.Наименование КАК Наименование ИЗ Справочник.Организации КАК Организации ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 2, Организации.Ссылка, "Нах", Организации.Наименование ИЗ Справочник.Организации КАК Организации) КАК ВложенныйЗапрос ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Организации КАК Организации ПО ВложенныйЗапрос.Ссылка = Организации.Ссылка ГДЕ ВложенныйЗапрос.флаг = 1 |
|||
10
vvp117
30.03.12
✎
09:08
|
(6), в том то и фишка, что мне требуется поле [ВерсияДанных], я по нему определяю изменялся ли объект.
(8), у меня такой запрос вернул это: флаг Ссылка ВерсияДанных 1 Тестовая AAAAAAEAAAA= |
|||
11
vvp117
30.03.12
✎
09:20
|
(9), идиотизм... вот так работает корректно:
ВЫБРАТЬ ВложенныйЗапрос.флаг, ВложенныйЗапрос.Ссылка, ВЫБОР КОГДА ИСТИНА ТОГДА ВложенныйЗапрос.ВерсияДанных ИНАЧЕ "ПЫЩЬ" КОНЕЦ КАК ВерсияДанных ИЗ (ВЫБРАТЬ 1 КАК флаг, Организации.Ссылка КАК Ссылка, Организации.ВерсияДанных КАК ВерсияДанных, Организации.Наименование КАК Наименование ИЗ Справочник.Организация КАК Организации ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 2, Организации.Ссылка, "Нах", Организации.Наименование ИЗ Справочник.Организация КАК Организации ) КАК ВложенныйЗапрос ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Организация КАК Организации ПО ВложенныйЗапрос.Ссылка = Организации.Ссылка ГДЕ ВложенныйЗапрос.флаг = 1 а если второй юнион убрать, то не работает... *facepalm* |
|||
12
КМ155
30.03.12
✎
09:26
|
(11) тебе с шашечками или ехать ?
|
|||
13
vvp117
30.03.12
✎
09:44
|
(12), пожалуй, поеду))
спасиб за помощь, вопрос закрыт PS: но косяк в платформе с полем [ВерсияДанных] есть, и это печально... |
|||
14
rs_trade
30.03.12
✎
10:34
|
SELECT
T1._Version, 0x06, '', 0, 0 FROM _Reference68 T1 WITH(NOLOCK) вот запрос в который превращается исходный запрос. |
|||
15
rs_trade
30.03.12
✎
10:36
|
вот запрос, если вместо версии данных в выборе, подставить наименование
SELECT T1._Version, T1._Description FROM _Reference68 T1 WITH(NOLOCK) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |