Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 varchar и умножение (multiply)  [new]
Banks Analytics
Member

Откуда: Москва
Сообщений: 100
Пытаюсь умножить суммы из таблицы G на количество из таблицы S сопоставив по ID и отфильтовав август месяц.
with CTE AS
(select ID, coun  col
from S
where dat>='01.08.2016' AND dat<'01.09.2016')
select G.ID, SUM(G.suma*col)
from CTE JOIN G
ON G.ID=CTE.ID
group by G.ID; 


MS SQL выдает ошибку "Тип данных операнда varchar недопустим для оператора multiply". То есть у G.suma тип varchar, а у col Int.
Пытался менять тип через TRY_CAST, но безуспешно. Вопрос как их умножить?

P.S. А вот Оракл схавал запрос.
26 окт 16, 17:51    [19825124]     Ответить | Цитировать Сообщить модератору
 Re: varchar и умножение (multiply)  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
cast (G.suma as числовой_тип) * col
26 окт 16, 17:55    [19825152]     Ответить | Цитировать Сообщить модератору
 Re: varchar и умножение (multiply)  [new]
o-o
Guest
что реально лежит в варчаре и почему не вышло откастить к цифровому типу?
26 окт 16, 17:57    [19825161]     Ответить | Цитировать Сообщить модератору
 Re: varchar и умножение (multiply)  [new]
Banks Analytics
Member

Откуда: Москва
Сообщений: 100
Гавриленко Сергей Алексеевич
cast (G.suma as числовой_тип) * col

Спасибо помогло.
select G.ID, sum(cast(G.suma as money) *col)

o-o
что реально лежит в варчаре и почему не вышло откастить к цифровому типу?

В варчаре G.suma. Я пытался в СТЕ сменить количество на тип варчар и потом перемножить с суммой.
Вопрос снят.
26 окт 16, 18:32    [19825272]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить