stored procedure sum dan bos string dönmesi
ikra11.08.2005 - 15:09:05
selamu aleyküm...

sp ile birseyler kurcaliyorum. sum ile bir tablodaki toplami alip baska bir tabloya yazdirmak istiyorum fakat, toplamini almak istedigim tablo bos ise eger bos string geri dönüyor. ve sifir yazmasi gerekirken field i bos birakiyor.
kontrol yapmaya calistim bir variable olusturdum ve sum dan aldigim degeri variable ye atadim. daha sonra eger toplam = '' then toplam = 0 dedim fakat hala bos string yaziyor... tabloya sifir ( 0 ) yazmasi icin nasil bir kod uygulamaliyim?
 
naile11.08.2005 - 15:41:14
Eğer ms sql server kullanıyorsanız ISNULL fonksiyonu işinizi görür.
 
ikra11.08.2005 - 15:55:07
firebird yazmayi unutmusum Embarassed
 
Uğur198211.08.2005 - 15:58:28
Merhaba;

Böyle bir kod işini görebilir.

SELECT
(case when (sum(TUTAR))>0 then
sum(TUTAR)else 0 end)as TOPLAMTUTAR
FROM TABLO


iyi günler..
 
onaydin11.08.2005 - 16:01:04
COALESCE (V1, V2,..., Vn)

toplam = '' then toplam = 0
yerine
toplam is not null then toplam else 0 end
 
ikra11.08.2005 - 16:03:37
Allah ne muradin varsa versin Embarassed
saatler dir üzerine calisiyordum...
 
Uğur198211.08.2005 - 16:11:49
@Onaydin'ın dediği gibi düzeltirsen daha sağlıklı olur...

SELECT
(case when (sum(TUTAR)) is not null then
sum(TUTAR)else 0 end)as TOPLAMTUTAR
FROM TABLO


iyi günler...
 
ikra11.08.2005 - 17:07:38
hocam bu sum fonksyonu neden küsüratlari yuvarlar?
Firebird - Field = Decimal - 15 hane ve 2 ondaliga ayarli.
280,56 cikmasi gereken rakam 281 cikiyor...
 
ikra11.08.2005 - 17:37:00
hic bir yuvarlama yapmadan sonucu oldugu gibi alabilmenin bir yöntemi var mi dir? site de epey bi arama yaptim fakat ya yukari yada asagi yuvarlama örnekleri verilmis. sonucu oldugu gibi almaya dair bir sey bulamadim...
 
Uğur198211.08.2005 - 17:55:39
Merhaba;

Veritabanımdaki alanım DOUBLE PRECISION tipte;

Aynı şekilde SUM işlemi yaptım.Sonuç tam senin istediğin gibi 280,56

Belki Çıkan Sum sonucunu, integer olarak alıyorsundur ondan olabilir...

Şu şekilde kullanımda tam sonucu alman lazım..

IBQuery1.FieldByName('Toplam').AsFloat;


iyi günler...
 
ikra12.08.2005 - 08:15:28
Ondalik sonuclar icin degisken hic integer tanimlanir mi. iste ben tanimlamisim Embarassed dikkat etmeyince gözden neler kaciyor... herkes beceremiyor bu kadar dikkatsizligi. bu da büyük bir basari Rolling Eyes
hocam cok tesekkür ediyorum.
Allah razi olsun insaAllah...

selam ve dua ile...
ikra...
 
NOT : Bu sayfa google'un siteyi indekslemesi içindir. www.delphiturkiye.com/forum/ adresini kullanınız!
1998-2006 www.delphiturkiye.com