Merhaba Arkadaşlar
Güncel iş sürecinde karşılaştığım ve kullandığım yapıları sizlerle paylaşmaya devam ediyorum.Bu makalede belirli bir koşula göre elde edilen tabloyu sql query içerisine nasıl verebileceğimizi göreceğiz.
Kısaca senaryoyu anlatmak gerekirse,sp ye gönderilen tipi şeklinde bir int değişkenimiz var.Eğer gelen tipi :1 ise alan tablosu eğer gelen tipi 1 den farklı ise :masa_sayisi tablosuna göre aşağıdaki sql sorgusunun koşul kısmını değiştiricez.Sql koşulumuzu string şeklinde yazıyoruz çünkü sorgu içerisinde convert hatası alırız.İf koşulundan dönen tablo değerimizi sql sorgusunun içine aşağıdaki gibi veriyoruz.Exec ederek sonucumuzu alabiliriz.
declare @tablo varchar(20) ,@tipi int,@sql nvarchar(4000) ;
if @tipi=1 begin
set @tablo='isy.alan'
end
else begin
set @tablo='isy.masa_sayisi'
end
set @sql='select detay.gunluk_ucr, detay.masa_ucr from eglisy isy
inner join eglisytur tur on isy.isyturrecid = tur.recid
where gensicilno =838967 and isyeri_no =1 and
('+@tablo+' between detay.baslangic and detay.bitis)'
EXEC sp_executesql @sql
İyi çalışmalar.