bazı kriterlere göre fonksiyon çalıştırma

MS SQL Server veritabanı ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
Bay_Y
Üye
Mesajlar: 109
Kayıt: 10 Mar 2014 11:12
Konum: İstanbul

bazı kriterlere göre fonksiyon çalıştırma

Mesaj gönderen Bay_Y » 03 Oca 2018 03:25

merhabalar ;

ALTER FUNCTION Yapilanindirimtutari
(
@baslangictarihi as nvarchar(10) ,
@bitistarihi as nvarchar(10) ,
@kullaniciid as nvarchar(20) ,
@subekodu as nvarchar(20)
)
RETURNS float
AS
BEGIN

DECLARE @indirim as float
DECLARE @tarih as nvarchar(50)
DECLARE @sqlStr as nvarchar(200)

Set @SQLStr = ' '
if @baslangictarihi=@bitistarihi begin
set @tarih = ' and kayittarihi = ' + @baslangictarihi
end else begin
set @tarih =' and kayittarihi beetwen ' + @baslangictarihi + ' and ' + @bitistarihi
end

Set @sqlStr = @SQlStr + @tarih

if @kullaniciid <> ''
Set @sqlStr = @SQlStr + ' and kullanici = ' + @kullaniciid
if @subekodu <>''
Set @sqlStr = @SQlStr + ' and subekodu = ' + @subekodu
if @baslangicsaati >0 and @bitissaati>0
set @tarih =' and kayitsaati beetwen ' + @baslangicsaati + ' and ' + @bitissaati

set @indirim = ( Select sum(indirimtutari) as indirimtop From SatisHareketleriOzet Where id is not null and kayittarihi = @baslangictarihi)
return @indirim

END

Fonksiyon bu şekilde çalışıyor ama kullanıcı yoksa mesela kullanıcı bu parametreye eklenmeycek ve subekodu boş ise aynı şekilde varsa sadece eklenecek bunu için yukarıda "SQlStr" değişkenine ben gerekli olan değerleri atadım ama

set @indirim = ( 'Select sum(indirimtutari) as indirimtop From SatisHareketleriOzet Where id is not null ' + SqlStr )

bu şekilde çalıştırdığımda

Select dbo.Yapilanindirimtutari ('20171221','20171221','pendik','1',null,null) as indirtop

Msg 8114, Level 16, State 5, Line 1
Error converting data type nvarchar to float.


bilgisi olan arkadaşlar varsa yardımlarınızı rica ediyorum herkese teşekkürler.

Cevapla