Sql Where Kısıtı Hk...
 
Bildirimler
Hepsini Temizle

Sql Where Kısıtı Hk.  

  RSS
Mustafa HEPSARILAR
(@MustafaHEPSARILAR)
Üye

Merhaba,

where kısıtı kullanımında ikinci/üçüncü paramtre girilmez ise sorgu sonucu sıfır kayıt geliyor.

Örnek:

select pa.tarih ,pa.CreateDate AktarimTarihi ,pd.id ,pd.ParselNo ,pd.PaletNo ,pd.PaketNo ,pd.TomrukKodu TomrukNo ,pd.Miktar ,pd.Uzunluk ,pd.Genislik ,pd.Alan ,pd.Grup ,pd.Kalite ,pd.Renk ,pd.Desen ,pd.Boy ,pa.Aciklama ,pd.YeniPaletNo ,pd.PaketBarkod from palet pa inner join paletDetay pd on pa.paletno=pd.paletno

 

where

yeniPaletNo is null

and

pd.PaletNo=@Palet_No_Giriniz

and

pd.TomrukKodu=@Tomruk_No

 

where tarafındaki PaletNo ve TomrukKodu parametrelerinden biriisi kullanıcı tarafından girilmez ise bu sorgu sıfır kayıt getirir.

Kısaca böyle bir sorguda her iki parametrenin de değer alması gerekmektedir. Where operatorü and 'tir.

Raporlama anında örneğin kullanıcı PaletNo'yu girer ise ama Tomruk Kodu'nu girmez ise raporun sonucu sıfır kayıt gelecektir.

 

Bu durumu; bu sorgu ve benzer sorgularda nasıl engellerim???

 

Kullanıcı TomrukKodu'nu girmez ise de PaletNo ya bağlı Kayıtların gelmesini nasıl sağlarım? 

 

Ya da Nasıl bir yöntem izlemem lazım???

Teşekkür ederim...

 

 

 

Alıntı
Gönderildi : 16/02/2017 13:56
Mücahit Yılmaz
(@mucahityilmaz)
Üye

Hocam sqlde orta seviye bilgim var fakat ve operatorü yerine veya kullanırsanız herhangi birisinin true olmasına karşın sorgu geriye değer döndürecektir fakat ve olursa sizinde dediğiniz gibi her ikisinin de doğru olması sonucu değer döndürecektir. veya kullanıp dener misiniz?

CevapAlıntı
Gönderildi : 16/02/2017 15:40
Mustafa HEPSARILAR
(@MustafaHEPSARILAR)
Üye

Merhaba,

OR operatörü olmaz.

başka bir yöntem lazım gibi.

CevapAlıntı
Gönderildi : 16/02/2017 19:31
Wickers
(@jhonwick)
Üye

where

yeniPaletNo is null

and

(pd.PaletNo=@Palet_No_Giriniz

OR

pd.TomrukKodu=@Tomruk_No)

CevapAlıntı
Gönderildi : 16/02/2017 21:12
Kerem Civelek
(@KeremCivelek)
Üye

[quote user="Mustafa HEPSARILAR"]

Merhaba,

where kısıtı kullanımında ikinci/üçüncü paramtre girilmez ise sorgu sonucu sıfır kayıt geliyor.

Örnek:

select pa.tarih ,pa.CreateDate AktarimTarihi ,pd.id ,pd.ParselNo ,pd.PaletNo ,pd.PaketNo ,pd.TomrukKodu TomrukNo ,pd.Miktar ,pd.Uzunluk ,pd.Genislik ,pd.Alan ,pd.Grup ,pd.Kalite ,pd.Renk ,pd.Desen ,pd.Boy ,pa.Aciklama ,pd.YeniPaletNo ,pd.PaketBarkod from palet pa inner join paletDetay pd on pa.paletno=pd.paletno

 

where

yeniPaletNo is null

and

pd.PaletNo=@Palet_No_Giriniz

and

pd.TomrukKodu=@Tomruk_No

 

where tarafındaki PaletNo ve TomrukKodu parametrelerinden biriisi kullanıcı tarafından girilmez ise bu sorgu sıfır kayıt getirir.

Kısaca böyle bir sorguda her iki parametrenin de değer alması gerekmektedir. Where operatorü and 'tir.

Raporlama anında örneğin kullanıcı PaletNo'yu girer ise ama Tomruk Kodu'nu girmez ise raporun sonucu sıfır kayıt gelecektir.

 

Bu durumu; bu sorgu ve benzer sorgularda nasıl engellerim???

 

Kullanıcı TomrukKodu'nu girmez ise de PaletNo ya bağlı Kayıtların gelmesini nasıl sağlarım? 

 

Ya da Nasıl bir yöntem izlemem lazım???

Teşekkür ederim...

 

 

 

[/quote]

 

Merhaba biraz geç oldu ancak benim tavsiyem,

değişkenlerinizi if else ile kontrol ederek karşılaşabileceğiniz senaryoya göre queryinizi çalıştırın mesela if blogunda palet no boş değil ise ilk once elinizdeki palet no yu kullanarak ilgili satırın tomruk nosunu select edip dönen değeri tomruk no ya eşitleyin bu durumda artık elinizde hem palet no hemde tomruk no olmuş olacaktır.

CevapAlıntı
Gönderildi : 17/02/2017 15:25
Tayfun KOÇ
(@TayfunKOC)
Üye

and (@tomrukNo is null or pd.TomrukKodu=@Tomruk_No ) işini görür.

CevapAlıntı
Gönderildi : 17/02/2017 16:39
Paylaş: