Forum

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

Sql Where Kısıtı Hk.

6 Yazılar
5 Üyeler
0 Likes
472 Görüntüleme
(@MustafaHEPSARILAR)
Gönderiler: 114
Estimable Member
Konu başlatıcı
 

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...

 

 

 

 
Gönderildi : 16/02/2017 13:56

(@mucahityilmaz)
Gönderiler: 498
Honorable Member
 

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?

 
Gönderildi : 16/02/2017 15:40

(@MustafaHEPSARILAR)
Gönderiler: 114
Estimable Member
Konu başlatıcı
 

Merhaba,

OR operatörü olmaz.

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

 
Gönderildi : 16/02/2017 19:31

Wickers
(@jhonwick)
Gönderiler: 6
Active Member
 

where

yeniPaletNo is null

and

(pd.PaletNo=@Palet_No_Giriniz

OR

pd.TomrukKodu=@Tomruk_No)

 
Gönderildi : 16/02/2017 21:12

(@KeremCivelek)
Gönderiler: 18
Eminent Member
 

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...

 

 

 

 

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.

 
Gönderildi : 17/02/2017 15:25

(@TayfunKOC)
Gönderiler: 169
Reputable Member
 

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

 
Gönderildi : 17/02/2017 16:39

Paylaş: