Преобразование строки в число/числа в строку в запросе

что-то сходу не нашел...
Страницы: 1

Пока в голову приходит только создание временной таблицы - параметра куда будет загоняться таблица соответствия строка-число, а в самом запросе эту таблицу использовать

ЗапросЧислоДней="ВЫБРАТЬ
		                |	ТЗ.Строка_,
		                |	ТЗ.Число_
		                |ПОМЕСТИТЬ ТЗСЧ
		                |ИЗ
		                |	&ТЗ КАК ТЗ
		                |;
		                |
		                |////////////////////////////////////////////////////////////­////////////////////
		                |ВЫБРАТЬ
		                |	ЕСТЬNULL(ТЗСЧ.Число_, 0) КАК ДопустимоеЧислоДнейЗадолженности,
		                |	ДоговорыКонтрагентов.Ссылка КАК Владелец
		                |ПОМЕСТИТЬ ЧислоДнейЗадолженности
		                |ИЗ
		                |	Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов
		                |		ЛЕВОЕ СОЕДИНЕНИЕ ТЗСЧ КАК ТЗСЧ
		                |		ПО ДоговорыКонтрагентов.ВидВзаиморасчетов.Наименование = ТЗСЧ.Строка_
		                |ГДЕ
		                |	ДоговорыКонтрагентов.Владелец.Ссылка В ИЕРАРХИИ(&Контрагент)
		                |	И (ДоговорыКонтрагентов.ВидДоговора.Порядок = 0
		                |			ИЛИ ДоговорыКонтрагентов.ВидДоговора.Порядок = 3)
		                |;
		                |
		                |////////////////////////////////////////////////////////////­////////////////////
		                |УНИЧТОЖИТЬ ТЗСЧ";
...Показать Скрыть


да... а так хотелось использовать ВЫРАЗИТЬ(<> КАК <>)

Изменено: Вихтр Цикебус - 20.07.09 18:33


(2) Пожайлуста! Раз хочется - запрос, который выше, не работает без этого
ПО Выразить(ДоговорыКонтрагентов.ВидВзаиморасчетов.Наименование КАК Строка(255)) = Выразить(ТЗСЧ.Строка_ КАК Строка(255))

Изменено: anig99 - 20.07.09 18:42


(1) Другого варианта наверное нет. Разве что, таблицу соответствий числа и строки заполнять запросом...

ВЫБРАТЬ   0 КАК Цифра, "0" КАК ЦифраСтрокой
ПОМЕСТИТЬ Цифры
ОБЪЕДИНИТЬ
ВЫБРАТЬ   1, "1"
ОБЪЕДИНИТЬ
ВЫБРАТЬ   2, "3"
ОБЪЕДИНИТЬ
ВЫБРАТЬ   3, "3"
ОБЪЕДИНИТЬ
ВЫБРАТЬ   4, "4"
ОБЪЕДИНИТЬ
ВЫБРАТЬ   5, "5"
ОБЪЕДИНИТЬ
ВЫБРАТЬ   6, "6"
ОБЪЕДИНИТЬ
ВЫБРАТЬ   7, "7"
ОБЪЕДИНИТЬ
ВЫБРАТЬ   8, "8"
ОБЪЕДИНИТЬ
ВЫБРАТЬ   9, "9";

//////////////////////////////////////////////////­/////////­/////////////////////
ВЫБРАТЬ
   Тысячи.Цифра * 1000 + Сотни.Цифра * 100 + Десятки.Цифра * 10 + Единицы.Цифра КАК Число,
   Тысячи.ЦифраСтрокой + Сотни.ЦифраСтрокой + Десятки.ЦифраСтрокой + Единицы.ЦифраСтрокой КАК ЧислоСтрокой
ПОМЕСТИТЬ ЧислаСтрокой
ИЗ
   Цифры КАК Тысячи,
   Цифры КАК Сотни,
   Цифры КАК Десятки,
   Цифры КАК Единицы; 
...Показать Скрыть


ОБЪЕДИНИТЬ
ВЫБРАТЬ 2, "3"
маленькая ошибочка в запросе :)

Изменено: see1c.ru - 25.07.12 8:34


(4)Не работает :(

Писчет

{ВнешняяОбработка.УниверсальнаяКонсольОтчетов.МодульОбъекта(624)}: Ошибка при получении значения атрибута контекста (Результат): {(1, 1)}: Ожидается выражение "ВЫБРАТЬ"
Ошибка при выполнении:
* возможно у текущего пользователя 'Администратор' недостаточно прав

Ответили: (7)

(6) DrZombi, может быть, ты просто обработал приведённый запрос не через конструктор, а добавлением переносов строки в блок текста, а про кавычки забыл? В блоке текста каждые двойные кавычки должны идти по двое.
То есть, не

Выбрать 3 как "3"


|Выбрать 3 как ""3""

Или в конце не убрал лишнюю точку с запятой, а пакет запросов после неё не продолжил?
Просто, у меня конструктор приведённый запрос зажевал, так что с текстом запроса у Anything всё в порядке, вроде.

Извини меня, если замечания слишком банальные для тебя. Просто мне кажется, что этот запрос не может не работать!

Изменено: uncle_Vasya - 20.01.15 23:20

Страницы: 1
Форма ответов
Логин:
Пароль:
Текст сообщения*
Прикрепить файл