ORkomutunda problem
ORkomutunda problem
s.a
arkadaslar kusura bakmayin bu soru ile vaktinizi alacam ama cok basit bir soru soracam..
select * from deneme where no=6 and ((sonuc_1 is not null) OR (sonuc_2 is not Null))
bu komutu calistirdigimda bana sonuc_1 ve sonuc_2 alani bos olan degerlerle beraber sonuc_1 ve sonuc_2 alani dolu olan verileri listeliyor oysa ben sonuc_1 veya sonuc_2 alanindan biri dolu oldugunda veriyi listelemsini istiyorum oysa o yapmiyor bu isi ben nerede hata yapiyor olabilririm interbase kullaniyorum bu arada....
arkadaslar kusura bakmayin bu soru ile vaktinizi alacam ama cok basit bir soru soracam..
select * from deneme where no=6 and ((sonuc_1 is not null) OR (sonuc_2 is not Null))
bu komutu calistirdigimda bana sonuc_1 ve sonuc_2 alani bos olan degerlerle beraber sonuc_1 ve sonuc_2 alani dolu olan verileri listeliyor oysa ben sonuc_1 veya sonuc_2 alanindan biri dolu oldugunda veriyi listelemsini istiyorum oysa o yapmiyor bu isi ben nerede hata yapiyor olabilririm interbase kullaniyorum bu arada....
yani syntax doğru gibi görünüyor
bende merak ettim sorun nerede acaba ?

bende merak ettim sorun nerede acaba ?
Volkan KAMADAN
www.polisoft.com.tr
www.polisoft.com.tr
Arkadaşım basit table ve sonuç ile beraber tarif edersen belki daha rahat yardımcı olabiliriz.Naile hanımın yaptıgı gibi
viewtopic.php?t=4942
viewtopic.php?t=4942
ya hocam bu o kadarda karmasik bir soru degil 1 tablom var deneme tablosu diye ve bu tablo icinde 3 adet sonuc alani var ben 2.sini kullaniyorum sonucu inteer olanlar sonuc_1'de sonucu yazi olanlar sonuc_2 de tutuyorum... ve bir kisinin birden fazla sonucu olabiliyor yani 1.sonucu integer 2.sonucu yazi 3.sonucu ise sonucu cikmamis olabilir.. benim yapmak istediim ise bu alanlar arasinda kisinin numarasina baksin numarasi 6 diyelim bu kisinin bir cok sonucu olabilir ancak bu sonuclar ya sonuc_! yada sonuc_2 alanina yazilmistir...ben ise bu alanlardan dolu olanlari listelemek istiyorum
select * from deneme where no=6 and ((sonuc_1 is not null) OR (sonuc_2 is not Null)) ve soruyu calistirdiimda sonuc veriyor ancak sonuc_1 ve sonuc_2 alani bos olan sonuclarida etiriyor ben ise bunlardan biri bos olduunda getirmesini istemiyorum
select * from deneme where no=6 and ((sonuc_1 is not null) OR (sonuc_2 is not Null)) ve soruyu calistirdiimda sonuc veriyor ancak sonuc_1 ve sonuc_2 alani bos olan sonuclarida etiriyor ben ise bunlardan biri bos olduunda getirmesini istemiyorum
S.A.
sonuc_2 alanı string ise
şöyle değiştrip deniyebilirmisiniz.
kolay gelsin.
sonuc_2 alanı string ise
şöyle değiştrip deniyebilirmisiniz.
Kod: Tümünü seç
or sonuc_2<>''
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Cüneyt bey, SQL cümleniz doğru , ama hata şundan kaynaklanıyor muhtemelen..
Verileri yazarken değer atıyorsunuz yani, field değerleri null / unassigned / value olabilir
null ve unassigned birbirinden farklı..
Örneğin IBConsole'den verilerinize bakın ilgili alanda <null> yazıyorsa
o alan null ve sorgudan dönmesi gerekiyor, eğer <null> yazmıyorsa o alan null değil değer atanmamış bir alandır.. bu yüzden kullanılmayan alana null olarak eşitleyin.
Qry.FieldByname('Fld2').asVariant := Null; veya insert into tbl_x (a,f1,f2) values (1,1,null) ve güncellerken de set fld2=null
kolay gelsin..
Verileri yazarken değer atıyorsunuz yani, field değerleri null / unassigned / value olabilir
null ve unassigned birbirinden farklı..
Örneğin IBConsole'den verilerinize bakın ilgili alanda <null> yazıyorsa
o alan null ve sorgudan dönmesi gerekiyor, eğer <null> yazmıyorsa o alan null değil değer atanmamış bir alandır.. bu yüzden kullanılmayan alana null olarak eşitleyin.
Qry.FieldByname('Fld2').asVariant := Null; veya insert into tbl_x (a,f1,f2) values (1,1,null) ve güncellerken de set fld2=null
kolay gelsin..
-
- Kıdemli Üye
- Mesajlar: 395
- Kayıt: 22 Tem 2004 09:15
- Konum: İzmir
- İletişim:
Selam,
ilk mesaj: "oysa ben sonuc_1 veya sonuc_2 alanindan biri dolu oldugunda veriyi listelemsini istiyorum "
son mesaj: "oysa bu alandan herhani biri bos oldugunda onun gelmesini istemiyorum"
istediğiniz şey zamanla değişmiş. Ben ilk isteğinize göre bir query yazıyorum;
sonuc_1 = null, sonuc_2=null --> listelenmez
sonuc_1 = null,sonuc_2!=null -->listelenir
sonuc_1 != null,sonuc_2=null -->listelenir
sonuc_1 != null,sonuc_2!=null -->listelenir
yukarıdaki query de ise;
sonuc_1 = null, sonuc_2=null --> listelenmez
sonuc_1 = null,sonuc_2!=null -->listelenir
sonuc_1 != null,sonuc_2=null -->listelenir
sonuc_1 != null,sonuc_2!=null -->listelenmez
sanırım bu işinizi görür.
Kolay gelsin,
ilk mesaj: "oysa ben sonuc_1 veya sonuc_2 alanindan biri dolu oldugunda veriyi listelemsini istiyorum "
son mesaj: "oysa bu alandan herhani biri bos oldugunda onun gelmesini istemiyorum"
istediğiniz şey zamanla değişmiş. Ben ilk isteğinize göre bir query yazıyorum;
şeklinde deneyerek çözüme ulaşabilirsiniz. Sizin query de durumu değerlendirelim;cuneyt22 yazdı: SELECT * FROM deneme
WHERE no=6 AND
((sonuc_1 is null) AND (sonuc_2 is not Null)) OR
((sonuc_1 is not null) AND (sonuc_2 is Null))
)
sonuc_1 = null, sonuc_2=null --> listelenmez
sonuc_1 = null,sonuc_2!=null -->listelenir
sonuc_1 != null,sonuc_2=null -->listelenir
sonuc_1 != null,sonuc_2!=null -->listelenir
yukarıdaki query de ise;
sonuc_1 = null, sonuc_2=null --> listelenmez
sonuc_1 = null,sonuc_2!=null -->listelenir
sonuc_1 != null,sonuc_2=null -->listelenir
sonuc_1 != null,sonuc_2!=null -->listelenmez
sanırım bu işinizi görür.
Kolay gelsin,
Doğan Zorlu, İzmir
------------------------
"Bu Kitap'ı sana yalnız şunun için indirdik: Hakkında ayrılığa düştükleri şeyi onlara iyice açıklayasın ve Kitap, iman eden bir topluluk için kılavuz ve rahmet olsun." (NAHL 64)
------------------------
"Bu Kitap'ı sana yalnız şunun için indirdik: Hakkında ayrılığa düştükleri şeyi onlara iyice açıklayasın ve Kitap, iman eden bir topluluk için kılavuz ve rahmet olsun." (NAHL 64)
arkadaslar hepinizden allah razi olsun bu sorunu hallettim sorun string alandan kaynaklaniyor string alani not null diyince isleme almiyor ancak aslangeri arkadasin tavsiyesi ile sonuc_2<>' ' ifadesini koyunca algiladi ve sorunum haloldu...bir kismi 
arkadaslar simdiki sorunum ise bu sonuclari qreport ile yazdiriyorum ancak benden istedikleri alanlar arasina bosluk eklemek ornek vereyim en iyisi...simdi no alanindan 6 adet var ve bu 6 adet nonun bir suru alt parametresi var... ben no alana gore order by ile listeliyordum bir sorun yok ancak benden istedikleri no alani 1 diyelim bunu en ustte ardindan 2 gelirse bu no=1 ile arasina bir bosluk birakacak ardindan no=2 nin sonuclarini yazacak yani group by ile lesteledigim sonuclar arasina bosluk birakmak istiyorum bunun cozumu varmi acaba ben yok dedim ama istiyorlar iste...

arkadaslar simdiki sorunum ise bu sonuclari qreport ile yazdiriyorum ancak benden istedikleri alanlar arasina bosluk eklemek ornek vereyim en iyisi...simdi no alanindan 6 adet var ve bu 6 adet nonun bir suru alt parametresi var... ben no alana gore order by ile listeliyordum bir sorun yok ancak benden istedikleri no alani 1 diyelim bunu en ustte ardindan 2 gelirse bu no=1 ile arasina bir bosluk birakacak ardindan no=2 nin sonuclarini yazacak yani group by ile lesteledigim sonuclar arasina bosluk birakmak istiyorum bunun cozumu varmi acaba ben yok dedim ama istiyorlar iste...
S.A.
quick reportta group band var onları kullanarak yapabilirsin.
bir tane qrgroup koyuyorsun. birtane de qrband koyup band type ını groupfooter yapıyorsun. groupheader bandın bandın footerband ına son eklediğin bandı seçiyorsun. gene groupheader bandının expresion özelliğine gruplamak istediğin alanı seçiyorsun.
Kaba olarak bu şekilde yapılıyor. Quickrep in demolarında da bununla ilgili örnekler vardı.
Kolay gelsin.
quick reportta group band var onları kullanarak yapabilirsin.
bir tane qrgroup koyuyorsun. birtane de qrband koyup band type ını groupfooter yapıyorsun. groupheader bandın bandın footerband ına son eklediğin bandı seçiyorsun. gene groupheader bandının expresion özelliğine gruplamak istediğin alanı seçiyorsun.
Kaba olarak bu şekilde yapılıyor. Quickrep in demolarında da bununla ilgili örnekler vardı.
Kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim