From: Yüksel ÖZCAN (yukselozcan@celiknet.com)
Date: Wed 17 Dec 2003 - 08:23:05 EST
Herkese selam,
MySQL'de soyle bir sorgu calistiriyorum.
select FORMAT(SUM(borc), 0), FORMAT(SUM(alacak), 0), FORMAT(SUM(borc-alacak), 0), SUM(borc), SUM(alacak) from cari_hareketler where cari_id='cari_idsi' and tarih < 'ekstre_baslangici'
Sorguda herhangi bir problem yok. Sorgu kisaca istenilen cari hesaba ait hareketlerin belirtilen tarihten oncesine ait olanlarinin borc ve alacak hareketlerinin toplamini alarak getiriyor, yani yuzlerce hareket te olsa bana tek bir sonuc donuyor. Buraya kadar bir problemim yok. Sorun surada; belirtilen tarihten oncesine ait hareket varsa bunlari guzel guzel toplayip karsima getiriyor, fakat belirtilen tarihten once herhangi bir hareket yoksa o zaman karsima asagidaki gibi bir sonuc getiriyor.
Hareket varsa : 125.253.456.768 120.254.646.786 4.998.809.982 125253456768 120254646786
Hareket yoksa : NULL NULL NULL NULL NULL
Bunlari mysql'e terminalden girerek aldim. Bunlari program icinde calistirdigimda NULL olan isleme ait hicbir denetleme yapamiyorum. Bu sonuclarin null olup olmadigin ogrenmek icin if(mysql_row[0] == NULL) yaptim olmadi, if(mysql_row[0] != NULL) yaptim yine olmadi, if(!mysql_row[0]) yaptim yine olmadi. Bu sorun neden kaynaklaniyo olabilir. Hicbir denetleme yontemini bu NULL olan degiskenlere uygulamadim. Dedigim gibi NULL bilgisini terminalden mysql'e giripte sorgulama yaptigimda aliyorum, c ile yazilmis programimda bu NULL degerinin degiskene atanmamasi gibi bir durum var sanirim ortada. Daha once boyle bir sorunla karsilasan oldumu ? Yardim ederseniz sevinirim, herkese kolay gelsin
Yuksel OZCAN
http://muhasebeci.sf.net