Ceviz Forum

Geri Dön   Ceviz Forum > Programlama > Visual Basic

Cevapla
 
LinkBack Seçenekler
Eski 13/04/2006, 11:26   #1 (permalink)
Üye
 
ugrkts Adlı Üyenin Profil Grafiği
 
Üyelik Tarihi: 02/2005
Yer: Adana
Mesaj: 22
Varsayılan toplam sorunu

Merhaba daha önce yine sorduğum ancak yeterli yanıt alamadığım bir sorunla karşı karşıyayım
6 adet not alanı olan bir tablom var,diyelim ki alan1,alan2... şeklinde tanzim edilen bu alanların toplamını alıp 6'ya bölmek gerek,bu sorun değil,ancak bu alanlardan herhangi birisi null olduğunda bu alan işlemden çıkacak ve bu sefer 6'ya değil de beşe bölünecek,null alanları çeşitli fonksiyonlarla 0'a çevirmeyi kastetmiyorum.eğer null alanları kontrol edip sıfır sayarsak o da bir sayı değeri olduğu için toplamı ve bölen sayısını etkileyecektir,oysa eğer null bir yer varsa o alan yok sayılarak bölen de ona göre değişmeli
örnek
alan1=45
alan2=55
alan3=null

ortalama=(alan1+alan2)/2 olmalı

alan1=45
alan2=55
alan3=50

ortalama=(alan1+alan2+alan3)/3 olmalı
yardımcı olursanız sevinirim
Şimdiden teşekkürler
ugrkts hatta değil   Alıntı Yaparak Yanıtla
Eski 13/04/2006, 12:25   #2 (permalink)
Eski Cevizci
 
zuzuu Adlı Üyenin Profil Grafiği
 
Üyelik Tarihi: 05/2005
Mesaj: 289
Varsayılan

Dört notun olduğunu kabul ederek şöyle uygulama geliştirdim:
Her bir öğrenci için notu null olmayan ders toplamını #bolunecekdeger
tablosuna yazdım.Daha sonra notların tutulduğu tablo ile join kurdum ve
sorun çözüldü

declare @sayi int
set @sayi=4

select
case
when coalesce(not1,0)=0 then @sayi-1
when coalesce(not2,0)=0 then @sayi-1
when coalesce(not3,0)=0 then @sayi-1
when coalesce(not4,0)=0 then @sayi-1
else @sayi
end as bol
,ID into #bolunecekdeger from #notlar

select n.Id, sum (coalesce(not1,0)+coalesce(not2,0)+coalesce(not3,0 )+coalesce(not4,0))
/b.bol as notortalamasi
from #notlar n
inner join #bolunecekdeger b on n.ID=b.ID
group by n.Id,b.bol
order by n.Id
zuzuu hatta değil   Alıntı Yaparak Yanıtla
Eski 13/04/2006, 13:59   #3 (permalink)
Silversword
 
Revlis Adlı Üyenin Profil Grafiği
 
Üyelik Tarihi: 07/2003
Yer: Antalya
Mesaj: 1,351
Varsayılan

Ya bu verdiğin vb kodu mu
kullanılması gereken isnull fonksiyonu bu fonksiyon değişkenin null olup olmadığını söyler. Daha sonra bir döngü ile null olmayan değişkenleri toplar aynı zamanda bu değişkenlerin sayısını alır daha sonra bölersin.
test etmedim ama şu tarz bir şey olması lazım :
Kod:
Dim toplam As Long
Dim donen As Integer
For i = 0 To 5

If Not IsNull(notlar(i)) Then
toplam = toplam + i
donen = donen + 1
End If

Next i

sonuc = toplam / donen
__________________
||||Revlis|||||
Revlis hatta değil   Alıntı Yaparak Yanıtla
Eski 13/04/2006, 16:24   #4 (permalink)
Eski Cevizci
 
zuzuu Adlı Üyenin Profil Grafiği
 
Üyelik Tarihi: 05/2005
Mesaj: 289
Varsayılan

Alıntı:
Revlis, mesajından alıntı:
Ya bu verdiğin vb kodu mu
@revlis bunlar t-sql kodları ve tabiki visual basic içinden de çalışıyor.
ben direkt olarak veritabanından notları çekecek şekilde
uygulamayı yaptım.Bakınca uzun bir kod
parçası olarak görülüyor belki ama sonuçta her bir öğrenci için
yapılacak not hesaplamaları için yapılacak tüm işlemler bunlar.
Notları al, diziye at ,sonra karşılaştır ...gibi işlemler yapmaktansa daha
doğru geliyor bana.Sonuçta senin koduna da verilerin vt'den aktarılması vs eklenince emin ol daha az karmaşık olmayacak
zuzuu hatta değil   Alıntı Yaparak Yanıtla
Eski 13/04/2006, 22:03   #5 (permalink)
Silversword
 
Revlis Adlı Üyenin Profil Grafiği
 
Üyelik Tarihi: 07/2003
Yer: Antalya
Mesaj: 1,351
Varsayılan

ok sql den pek anlamam o yüzden sordum birde
when coalesce(not2,0)=0 then @sayi-1
derken değerin 0 olduğuna mı null olduğuna mı baktırıyorsun. zira 0 ile null farklı şeyler..
__________________
||||Revlis|||||
Revlis hatta değil   Alıntı Yaparak Yanıtla
Eski 14/04/2006, 08:59   #6 (permalink)
Eski Cevizci
 
zuzuu Adlı Üyenin Profil Grafiği
 
Üyelik Tarihi: 05/2005
Mesaj: 289
Varsayılan

coalesce bir t-sql fonksiyonu ve aldığı parametrelerden null olmayan ilk değeri
döndürür.Dolayısıyla coalesce(not2,0) ifadesinde not2 null değilse not2 değeri
; not2 null ise 0 değeri döner.

Enson 14/04/2006 09:34 tarihinde zuzuu tarafından düzenlenmiştir..
zuzuu hatta değil   Alıntı Yaparak Yanıtla
Cevapla

Bookmarks

Seçenekler

Mesaj Yazma Hakları
Yeni mesajgöndermezsiniz
Cevap yazamazsınız
Dosya ekleyemezsiniz
Mesajınızı düzenleyemezsiniz

BB code is Açık
[IMG] kodu Açık
HTML kodu Kapalı
Trackbacks are Açık
Pingbacks are Açık
Refbacks are Açık

Benzer Konular
Konu Konuyu açana göre Forum Cevap En Son Mesaj
Sayaç(Toplam,Günlük,Bir Gün Öncesi,Toplam ve En Fazla) ForWeb Uygulama Yazılımları / Hazır Betikler 8 24/11/2006 01:18
Hem Liste Hem Toplam Ercan Veritabanları & SQL 12 21/11/2006 13:35
ara toplam monelge ASP 9 22/10/2005 18:56
Toplam 15 EAN Genel Programlama 7 29/03/2003 14:41
Toplam veri RakyoL PHP 2 05/03/2003 11:11


Forum saati Türkiye saatine göredir. GMT +3. Şu anda saat 02:23.

Reklamlar & Desteklenenler
Hassas Valf | Hassas Kaplama | Antalyamız | Gazete | Ticari Bilişim | Hakan Müştak | Rüya Tabirleri | Kadın | Hastalıklar | Cepte msn ve e-posta | Webmaster | Antalya Aupair | Turkish Property Antalya | Forum | Chat | Perde | Adsl | Araba | bolindir.com | guncelle.com | livescore | Web Tasarım | evden eve nakliyat | forum | evden eve | sohbet | Resimcim| Kalifiye İnsan Kaynakları | Web Tasarım | Oyun | Yusuf KOÇ | Akın Yorulmaz | şiir | UFO | Web Tasarım | Oyunlar | Canlı Tv |


Forum Yazılımı: vBulletin Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.2.0
Copyright ©2001 - 2008, Ceviz.net