хранимая процедура возвращает .00 десятичных - PullRequest
3 голосов
/ 04 августа 2010

эта хранимая процедура не возвращает зарплату в десятичном формате 00.00

ALTER PROCEDURE taxable_varsalary

@emp_code bigint,
@co_id bigint      

AS
declare @t_varsalary decimal(8,2)

set @t_varsalary  = (select sum(tran_value) from emp_ded_ben_trans where emp_code=@emp_code and co_id=@co_id and period_flg=2 and tax_flg=0)

RETURN @t_varsalary 

Ответы [ 4 ]

5 голосов
/ 04 августа 2010
ALTER PROCEDURE taxable_varsalary

 @emp_code bigint,
 @co_id bigint,
 @t_varsalary decimal(8,2) OUTPUT

AS

   select @t_varsalary  = sum(tran_value) 
   from emp_ded_ben_trans 
   where emp_code=@emp_code and co_id=@co_id and period_flg=2 and tax_flg=0

Возвращаемое значение для хранимой процедуры должно быть int. Вместо этого используйте выходной параметр или select it

2 голосов
/ 04 августа 2010

Возвращенная хранимая процедура возвращает только integer, либо используйте параметр OUTPUT, либо выполните SELECT в конце

1 голос
/ 05 августа 2010

Создать Скалярную функцию :

CREATE FUNCTION taxable_varsalary
    @emp_code bigint,
    @co_id bigint
RETURNS DECIMAL(8,2)
AS
declare @t_varsalary decimal(8,2)

set @t_varsalary  = (select sum(tran_value) from emp_ded_ben_trans where emp_code=@emp_code and co_id=@co_id and period_flg=2 and tax_flg=0)

RETURN @t_varsalary 
0 голосов
/ 22 августа 2017

Проверьте ниже с OUTPUT:

ALTER PROCEDURE taxable_varsalary

@emp_code bigint,
@co_id bigint      

AS
BEGIN
declare @t_varsalary MONEY

set @t_varsalary  = (select sum(tran_value) from emp_ded_ben_trans where emp_code=@emp_code and co_id=@co_id and period_flg=2 and tax_flg=0)

SELECT @t_varsalary OUTPUT

END
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...