Şimdi Ara

aspde Ortalama

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
14
Cevap
0
Favori
937
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • arkadaşlar ben asp de not ortalaması bulmak istiyorum notlar veritabanına kaydetcem daha sonra hesapla deyince hesaplıcak
    ama bu notlarda kaydederken 0 oluo sıfır yerine boşluk koyunca hesap yapmıyor
    yani benim sormak istediğim ortalama hesaplamada 0ları yoksaymak sıfır varsa hesapta o satırı devre dışı bırakacak, hesaba 0ı dahil etmicek
    böle bşi için ne yapmam lasım
    Teşekkürler



  • veritabanı olarak MSSQL mi yoksa Access Database mi kullanıyorsunuz?
  • access veritabannım
  • Yani ortalama alacağın iki satırdan biri 0 sa o satırı hesap katmıcak mı demek istiyorsun?

    sql="select * from tablon where say1<>0 or say2<>0 "

    diyerek say1 ve say2 sütünlarında 0 olan kayıtları elersin.
  • Set ders = Server.CreateObject("Adodb.recordset")
    SQL = "Select * From notlar Where uyeID = "&user("id")&" or bir<>0 or iki<>0 or uc<>0 or dort<>0 or birsoz<>0 or ikisoz<>0 or ucsoz<>0"
    ders.Open SQL,Baglantim,1,3

    yaptım ama olmadı yinede 0 olan tüm değerleri hesaba katıyor ilk yazılı 100 ise diğerleri 0 sonuç 14 çıkıo
    ama benim istediğim 0 ları katmıcak ortalama 100 çıkacak yine
  • Öncelikle olarak
    SQL = "Select * From notlar Where uyeID = "&user("id")&" or bir<>0

    mantıksal olarka hatalı.

    bir<>0 or iki<>0 or uc<>0 or dort<>0

    dersen bir iki üc dort den herhangi biri 0 değilse de select sorgun calıstıracaktır.

    select * from tablo
    dersin ondan sonra sütün kontrolünü yaptırabilirsin mesela
    <%do%>
    <%if ders.eof or ders.bof then exit do%>
    <%
    if ders("bir")=0 or ders("iki")=0 or ders("uc")=0 then
    k=0
    end if
    if k<>0 then
    ortalama=ders("bir")+ders("iki")+ders("uc")
    end if
    <%ders.movenext:loop until ders.eof%>

    Mantıksal olarak sekillenmesi acısından yukarıdaki ornegi incele istersen.



    < Bu mesaj bu kişi tarafından değiştirildi youngboy_ugur -- 25 Kasım 2007; 0:15:06 >
  • aynı şekilde yaptım ama yine olmadı
    sonuç boş çıkıyor bi yolu yokmu bunun
    yardım
  • Access kullanmadım ama oracle için şunu söyleyebilirim sorun Null alanlardan kaynaklanmaktadır. Tablo yapısında default olarak 0 tanımlarsan giriş yaparken null değil 0 girecektir.

    bir diğer yol ise gönderilen sorguda 0 ları elemektense null alanları elemek.

    where field is not null

    gibi..
  • kodları ve veritabanını yollarmısın
  • hesapla.asp nin kodları bunlar :

    <!--#include File="ayar.asp"--> 
    <%
    IF Session("baslat") = "tamam" Then
    %>
    <tr>
    <td> </td>
    </tr>
    <table width="962" align="center">
    <tr>
    <td colspan="3"><table border="0" cellpadding="3" cellspacing="0" align="center" width="100%">
    <tr>
    <th><div align="left"><u>Dersler </u></div>
    <th><u>Saat </u>
    <th><u>1.Yazılı </u>
    <th><u>2.Yazılı </u>
    <th><u>3.Yazılı </u>
    <th><u>4.Yazılı </u>
    <th><u>1.Sözlü </u>
    <th><u>2.Sözlü </u>
    <th><u>3.Sözlü </u>
    <th><u><span style="font-weight: bold">Ortalama </span> </u>
    <th><u><span style="font-weight: bold">Sonuç </span> </u>
    <th><u><span style="font-weight: bold">Kredi</span></u></th>
    <%
    Dim user, ders
    Set user = Server.CreateObject("Adodb.recordset")
    SQL = "Select * From uyeler Where kadi = '"&Session("kadi")&"'"
    user.Open SQL,Baglantim,1,3

    Set ders = Server.CreateObject("Adodb.recordset")
    SQL = "Select * From notlar Where uyeID = "&user("id")&""
    ders.Open SQL,Baglantim,1,3

    do
    if ders.eof or ders.bof then exit do

    if ders("bir")=0 or ders("iki")=0 or ders("uc")=0 or ders("dort")=0 or ders("birsoz")=0 or ders("ikisoz")=0 or ders("ucsoz")=0 then
    k=0
    end if

    %>
    <tr>
    <td><div align="left"><b><%=""&ders("dersadi")&""%></b></div>
    <td><div align="center"><%=""&ders("derssaati")&""%></div>
    <td><div align="center"><%=""&ders("bir")&""%></div>
    <td><div align="center"><%=""&ders("iki")&""%></div>
    <td><div align="center"><%=""&ders("uc")&""%></div>
    <td><div align="center"><%=""&ders("dort")&""%></div>
    <td><div align="center"><%=""&ders("birsoz")&""%></div>
    <td><div align="center"><%=""&ders("ikisoz")&""%></div>
    <td><div align="center"><%=""&ders("ucsoz")&""%></div>
    <td><div align="center" style="font-weight: bold">
    <%
    Dim ortalama, bol
    bol=7
    if k<>0 then
    ortalama=(ders("bir")+ders("iki")+ders("uc")+ders("dort")+ders("birsoz")+ders("ikisoz")+ders("ucsoz"))/bol
    end if
    Response.Write(ortalama)
    %>
    </div>
    <td><div align="right" style="font-weight: bold">
    <%
    If ort<45 Then
    Response.Write("Kaldı")
    Else
    Response.Write("Geçti")
    End IF
    %>
    </div>
    <td><div align="right">
    <%
    IF ort<45 Then
    i=1
    ElseIf ort<55 Then
    i=2
    ElseIf ort<70 Then
    i=3
    ElseIf ort<85 Then
    i=4
    ElseIf ort<100 Then
    i=5
    End If
    kredi = (ders("derssaati")*i)
    Response.Write(Round(kredi))
    %>
    </div></td>
    <%
    ders.movenext:loop until ders.eof
    %>
    </table></td>
    </td>
    <tr>
    <td><table width="100%" cellspacing="0">
    <tr>
    <td colspan="3"> </td>
    </tr>
    <tr align="center" style="background:url(/liselim/img/bg_heading.jpg) repeat-x;">
    <td height="54" colspan="2"><a href="dersekle.asp" title="Yeni bir ders eklemek için tıklayın" id="islemler"><img src="/liselim/img/yders.png" border="0" width="22" height="22" /> Yeni
    Ders Ekle </a></td>
    <td colspan="2"><a href="sil.asp" title="Ders silmek için Tıklayın" id="islemler"><img src="/liselim/img/dersdel.png" border="0"width="22" height="22" /> Ders
    Sil</a></td>
    <td colspan="2"><a href="notgir.asp" id="islemler"><img src="/liselim/img/reload_all_tabs.png" border="0" width="22" height="22" /> Not
    Gir (Değiştir)</a></td>
    <td colspan="2"><a href="hesapla.asp" title="Tüm notların ortala sonuçlarına bakın!" id="islemler"><img src="/liselim/img/apply.png" width="22" height="22" border="0" /> Ortalamayi
    Hesapla</a></td>
    </tr>
    </table></td>
    </tr>
    </table>
    <% Else
    Response.Redirect("default.asp")
    End IF
    %>

    sayfanın kodları en son hali bu bu halde ortalama boş çıkıo
    --
    veritabanını naıl göndercem peki
    zaten bu kodlardan veritabanını anlarsın herhalde
    7 tane sayı var "4yazılı 3sözlü" üyeye bağlayan "uyeID"




  • sıfır olan derslerin sonucu etkilememesi için querty nin de dediği gibi SQL Sorgusunda null veya 0 olanlari elemelisin.

    ortalamanın tam sayı çıkması için ise ortalama=cint(ortalama) şeklinde bir komut kullanabilirsin
  • quote:

    Orjinalden alıntı: _qwerty_

    Access kullanmadım ama oracle için şunu söyleyebilirim sorun Null alanlardan kaynaklanmaktadır. Tablo yapısında default olarak 0 tanımlarsan giriş yaparken null değil 0 girecektir.

    bir diğer yol ise gönderilen sorguda 0 ları elemektense null alanları elemek.

    where field is not null

    gibi..

    benim zaten varsayılan 0 işlemde ise 0 olduğundan işleme etki edio
    Null olunca sonuç olmuo hiç bi sayı çıkmıo
  •  
    <%select * from tablo
    toplam=0
    adet=0
    do
    if ders.eof or ders.bof then exit do
    if ders("bir")<>0 then
    toplam=toplam+ders('bir')
    adet=adet+1
    end if

    if ders("iki")<>0 then
    toplam=toplam+ders('bir')
    adet=adet+1
    end if
    'Bütün notlar için aynı kontrülü yaptıktan sonra
    ders.movenext:loop until ders.eof%>
    ortalama=toplam/adet


    böylece içinde sıfırdan farklı olan notları hesaba alacaktır
  • yusufsemi dostum çok tşk ederim elerine sağlık

    Ayrıca bu konuda bana yardım etmek isteyen ve ilgilenenlere çok teşekkür ederim

    kodlar üzerinde biras oynamayla çözdüm
    eyw
    ii çalışmalar



    < Bu mesaj bu kişi tarafından değiştirildi hmetin -- 6 Aralık 2007; 15:00:47 >




  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.