powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Вызов процедуры в select
5 сообщений из 30, страница 2 из 2
Вызов процедуры в select
    #34861723
Kru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
blakitti
CREATE PROCEDURE dbo.sum_commis @sum_op money, @type_com tinyint
AS
declare @sum_s1 money
declare @sum_s2 money
declare @fix smallmoney
declare @pr numeric(8,7)
declare @sum_com numeric(16,6)
declare @res numeric(16,6)

BEGIN
select @sum_s1=isNull(S1,0), @sum_s2=isnull(S2,0), @fix=FIX, @pr=PERCENT
from C
where TYPE_COM = @type_com

select @sum_com = @sum_op*@pr+@fix
if @sum_com < @sum_s1
select @res = @sum_s1
else
if @sum_com > @sum_s2 and @sum_s2 <> 0
select @res = @sum_s2
else
select @res = @sum_com
END

create existing table dbo.commis_summ
(_res numeric(16,6) null
, _sum_op money null
, _type_com tinyint null)
external procedure
at 'loopback.MAIN.dbo.sum_commis'
go



Poprobuite vmesto numeric i money dlys prostoty ispolzovat integer. Mozet bit problema s tipami dannih?
Pri takom reshenii vse mozet bit.
...
Рейтинг: 0 / 0
Вызов процедуры в select
    #34861728
Kru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
blakitti
CREATE PROCEDURE dbo.sum_commis @sum_op money, @type_com tinyint
AS
declare @sum_s1 money
declare @sum_s2 money
declare @fix smallmoney
declare @pr numeric(8,7)
declare @sum_com numeric(16,6)
declare @res numeric(16,6)

BEGIN
select @sum_s1=isNull(S1,0), @sum_s2=isnull(S2,0), @fix=FIX, @pr=PERCENT
from C
where TYPE_COM = @type_com

select @sum_com = @sum_op*@pr+@fix
if @sum_com < @sum_s1
select @res = @sum_s1
else
if @sum_com > @sum_s2 and @sum_s2 <> 0
select @res = @sum_s2
else
select @res = @sum_com
END

create existing table dbo.commis_summ
(_res numeric(16,6) null
, _sum_op money null
, _type_com tinyint null)
external procedure
at 'loopback.MAIN.dbo.sum_commis'
go


Poprobuite zamenit vse tipi na int. Prosto dla experimenta.
...
Рейтинг: 0 / 0
Вызов процедуры в select
    #34862631
blakitti
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KruA sam select rabotaet bez insert?

нет.....не работает :-( тоже на план ругается....
...
Рейтинг: 0 / 0
Вызов процедуры в select
    #34862668
blakitti
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KruPoprobuite vmesto numeric i money dlys prostoty ispolzovat integer. Mozet bit problema s tipami dannih?
Pri takom reshenii vse mozet bit.
сделала так

CREATE PROCEDURE dbo.sum_commis @sum_op integer, @type_com tinyint
AS
declare @sum_s1 money
declare @sum_s2 money
declare @fix smallmoney
declare @pr numeric(8,7)
declare @sum_com numeric(16,6)
declare @res integer

BEGIN
select @sum_s1=isNull(S1,0), @sum_s2=isnull(S2,0), @fix=FIX, @pr=PERCENT
from C
where TYPE_COM = @type_com

select @sum_com = @sum_op*@pr+@fix
if @sum_com < @sum_s1
select @res = convert(int,@sum_s1)
else
if @sum_com > @sum_s2 and @sum_s2 <> 0
select @res = convert(int,@sum_s2)
else
select @res = convert(int,@sum_com)
END

create existing table dbo.commis_summ
(_res ineger null
, _sum_op ineger null
, _type_com tinyint null)
external procedure
at 'loopback.MAIN.dbo.sum_commis'
go

все равно не получилось добавить в таблицу.....и select не проходит.....по прежнему ругается на план :-((
...
Рейтинг: 0 / 0
Вызов процедуры в select
    #34864124
Kru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуйте начать с простого - в процедуре сделайте все типы int.
Если не поможет, то если, как Вы написали, мой вариант работает, то попробуйте постепенно усложнять мою процедуру. Очень вероятно, что так получится найти что не работает.
Мне самому интересно попробовать, но времени нет и тоже дома у меня мой сценарий не до конца работает, хотя select из прокси процедуры нормально отрабатывает
...
Рейтинг: 0 / 0
5 сообщений из 30, страница 2 из 2
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Вызов процедуры в select
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]