Вход | Регистрация


1С:Предприятие :: 1С:Предприятие 7.7 и ранее

v7: Преобразование типа в прямом запросе 77

v7: Преобразование типа в прямом запросе 77
Я
   Лиза777
 
18.05.18 - 08:00
У меня условие, что код товара больше тысячи, а код это текстовое поле, как перевести в integer - помогите!

CASE WHEN (Convert(integer,КодТовара) >1000) THEN СуммаПокупки ELSE 0 END)
 
 
   Лиза777
 
1 - 18.05.18 - 08:00
так не работает
   фросия
 
2 - 18.05.18 - 08:09
ВЫРАЗИТЬ(что-то КАК ЧИСЛО(формат))
   MakaMaka
 
3 - 18.05.18 - 08:10
(0)

If 1С Then
Выразить( Строка КАК Число(15,2))
Else 
Нужен другой форум
END
   catena
 
4 - 18.05.18 - 08:11
Преобразовать код товара в число до запроса....
   Лиза777
 
5 - 18.05.18 - 08:15
(4) как вы себе это представляете интересно?
   Лиза777
 
6 - 18.05.18 - 08:15
(3) а в прямом запросе так разве работает? сейчас попробую
   Лиза777
 
7 - 18.05.18 - 08:17
(3) Пишет- Выразить не является известным имя встроенной функции.
   Лиза777
 
8 - 18.05.18 - 08:24
это в простом запросе работает, а мне на 1с++ надо
   Йохохо
 
9 - 18.05.18 - 08:37
если последнюю скобку убрать вполне работает
   Лиза777
 
10 - 18.05.18 - 08:41
| SUM (CASE WHEN (Выразить(КодТовара) КАК Число(15,2)) >1000) THEN 1 ELSE 0 END) as тест

не работает так
 
 Рекламное место пустует
   фросия
 
11 - 18.05.18 - 08:45
со скобками разберитесь
   Йохохо
 
12 - 18.05.18 - 08:46
но почему строки не сравнивать? райт("000000000" + КодТовара, 8) больше "00001000"
(10) я про код в (0), 1с++ на чем? тскл? какой там Выразить?
SELECT SUM(CASE WHEN (RIGHT('0000001000',8)>= '00001000') THEN 1 ELSE 0 END)
с конверт тоже работает
   catena
 
13 - 18.05.18 - 08:48
Видимо, нужно в теме-то указывать, что 77
   Лиза777
 
14 - 18.05.18 - 08:49
convert не получалось - видиом тоже не знаю как правильно написать.
а right 8 как брать может там у меня код будет "12"
   Лиза777
 
15 - 18.05.18 - 08:49
(13) аааа!! точно, вот я лопух!
   Йохохо
 
16 - 18.05.18 - 08:58
(14)RIGHT('00000000' + КодТовара,8)
с конверт все верно, смотрите скобки и любые символы кроме цифр в коде
   ADirks
 
17 - 18.05.18 - 09:33
(14)
select convert(int, '1000')
   Лиза777
 
18 - 18.05.18 - 10:36
написала
| SUM (CASE WHEN convert(int, КодТовара)>1000 THEN 1 ELSE 0 END) as тест

пишет ошибку

Ошибка преобразования значения varchar "   1EC1  " в тип данных int.
   Йохохо
 
19 - 18.05.18 - 10:37
(18) что там с любыми символами кроме цифр?
   Лиза777
 
20 - 18.05.18 - 10:37
не поняла вопрос
   Йохохо
 
21 - 18.05.18 - 10:44
делайте через строки
   Cool_Profi
 
22 - 18.05.18 - 10:49
(18) "Ошибка преобразования значения varchar "   1EC1  " в тип данных int."
Я бы на месте базы данных вылез из сервера и набил бы лицо такому программисту...
   Лиза777
 
23 - 18.05.18 - 11:04
(22) вот что вы ругаетесь, не понимаю я если? вы сразу когда родились всё знали и понимали видимо?
   фросия
 
24 - 18.05.18 - 11:08
(23) там же по русски написано что не может преобразовать значиение в число
   Лиза777
 
25 - 18.05.18 - 11:09
(24) я поняла что не может так как я неправильно пишу, что в синтаксисе ошибка
   trad
 
26 - 18.05.18 - 11:11
(18) вероятнее всего в КодТовара у вас не код товара, а идентификатор элемента справочника.
наверно надо использовать поле code, а не id
   Лиза777
 
27 - 18.05.18 - 11:13
(26) поняла, спасибо, попробую
   trad
 
28 - 18.05.18 - 11:15
(27) но преобразование в int будет работать только, если в коде действительно только цифры (ну и допускаются пробелы в начале/конце)
   Лиза777
 
29 - 18.05.18 - 11:17
Так у меня и есть code. Вот так в выборе полей стоит:

SELECT
.......
    |        ОЦТовары.Code as КодТовара,
.....
   Лиза777
 
30 - 18.05.18 - 11:17
(28) ладно, спасибо.

Данные посмотрю какие там
   Лиза777
 
31 - 18.05.18 - 12:28
это я в запросе ошиблась - там два запроса объединяю. Хорошо вы тут обратили внимание на CODE и ID. В одном подзапросе было CODE,  а в другом ID. Чёт я....
Спасибо ребята всем!!!
   Злопчинский
 
32 - 18.05.18 - 12:34
кстати, в клюшках в чорном запросе в ДБФ версии можно совершенно спокойно просуммировать коды товаров (которые в базе объявлены как текстовые, но забиты цифры). Но этот же чорный запрос на скуле - свалится...


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует