![]() | |
| | #1 (permalink) |
| Üye Üyelik Tarihi: 02/2005 Yer: Adana
Mesaj: 22
|
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 |
| | |
| | #2 (permalink) |
| Eski Cevizci Üyelik Tarihi: 05/2005
Mesaj: 289
|
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 |
| | |
| | #3 (permalink) |
| Silversword Üyelik Tarihi: 07/2003 Yer: Antalya
Mesaj: 1,351
|
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||||| |
| | |
| | #4 (permalink) | |
| Eski Cevizci Üyelik Tarihi: 05/2005
Mesaj: 289
| Alıntı:
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 | |
| | |
| | #5 (permalink) |
| Silversword Üyelik Tarihi: 07/2003 Yer: Antalya
Mesaj: 1,351
|
ok sql den pek anlamam o yüzden sordum birdewhen 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||||| |
| | |
| | #6 (permalink) |
| Eski Cevizci Üyelik Tarihi: 05/2005
Mesaj: 289
|
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.. |
| | |
![]() |
| Bookmarks |
| Seçenekler | |
| |
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 |
| 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 | |