Ошибка функции SQL - PullRequest
       3

Ошибка функции SQL

1 голос
/ 16 марта 2011

У меня есть такая функция SQL;

ALTER FUNCTION [dbo].[fngcodeme]
(
    @HESAP INT, @DOV INT, @TEKLIF VARCHAR(10)
)
RETURNS FLOAT

AS
BEGIN

DECLARE @Result float

SET @Result = (SELECT SUM(TUTAR)
    FROM YAZ..MARDATA.M_GHAREKET
    WHERE TEMEL_HESAP = @HESAP
    AND DOVIZ_KOD = @DOV
    AND REF_KOD = 'GC'
    AND BACAK_GRUP = 'PERT'
    AND ISL_KOD = 1
    AND ACIKLAMA LIKE '% + @TEKLIF + %''')


RETURN @Result

END

Это отлично работает.

Это SQL тоже работает. Результат 18587.73

SELECT SUM(TUTAR)
 FROM YAZ..MARDATA.M_GHAREKET
 WHERE TEMEL_HESAP = 1252
 AND DOVIZ_KOD = 21
 AND REF_KOD = 'GC'
 AND BACAK_GRUP = 'PERT'
 AND ISL_KOD = 1
 AND ACIKLAMA LIKE '%S08-2/334%'

Но когда я хочу запустить эту функцию с параметрами в SQL Server;

 SELECT dbo.fngcodeme(1252, 21, 'S08-2/334')

Результат получает NULL.

Я не понимаю, что я делаю неправильно ..!

Кто-нибудь идея ??

Ответы [ 2 ]

4 голосов
/ 16 марта 2011

Необходимо исправить фильтр @TEKLIF

AND ACIKLAMA LIKE '%' + @TEKLIF + '%'

Вы действительно ищете это значение в настоящее время

% + @TEKLIF + %'
1 голос
/ 16 марта 2011
 AND ACIKLAMA LIKE '% + @TEKLIF + %''')

Должен читать

  AND ACIKLAMA LIKE '''%' + @TEKLIF + '%''')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...