台灣最大程式設計社群網站
線上人數
2224
 
會員總數:246479
討論主題:189988
歡迎您免費加入會員
討論區列表 >> ASP >> [ASP]成績總分的取得.....急!!
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
[ASP]成績總分的取得.....急!!
價值 : 0 QP  點閱數:1247 回應數:10
樓主

小安
初學者
54 13
28 28
發送站內信

底下的持程式目前為止都可以RUN 出每一個人的成績
但是 我試了 很多寫法 卻沒辦法得出總分
我想要的樣子是這樣的
------------------------
學生    英文  國文   數學    總分
小明    50    90    60    200
小華    40    50    40    130
小玉    90    85    85    260
總分    180  225   185  590  
平均     60    75    61   196
------------------------
可是 我一直得不到總分  我怎麼寫 他抓出最後一筆的分數...
各位大大  教教我吧....
=============================================================
<!--#include virtual="/include_aspfiles/connrecycle.asp"-->
<%
Test_Year=request("Test_Year")
Test_Times=request("Test_Times")

Set Rs = Server.CreateObject("ADODB.Recordset")
Set Rs = Conn.Execute("select * from Students where " )
if rs.eof then
%>
<Script Language=JavaScript>
     alert("目前沒有學生的資料");
     window.location.href="index.asp";
   </Script> 
   <%else%>
  
<html>

<head>
<meta http-equiv="Content-Language" content="zh-tw">
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<meta http-equiv="Content-Type" content="text/html; charset=big5">
<title>新增網頁1</title>
</head>

<body>

<table border="1" cellpadding="0" cellspacing="1" style="border-collapse: collapse" bordercolor="#111111" width="100%" id="AutoNumber1">
  <tr>
    <td width="100%">
    <table border="1" cellpadding="0" cellspacing="1" style="border-collapse: collapse" bordercolor="#111111" width="100%" id="AutoNumber2">
      <tr>
        <td width="5%">學生名稱</td>
        <td width="5%">總分</td>
        <td width="5%">數學</td>
        <td width="5%">國文</td>
        <td width="5%">英文</td>
      </tr>
      
      
  %>
      <%do while not rs.eof%>
<%

Set Rs1 = Server.CreateObject("ADODB.Recordset")
Set RS1 = Conn.Execute("SELECT * FROM Grade where SID = '"&rs("ID")&"' AND Test_Year = '"&Test_Year&"' AND Test_Times = '"&Test_Times&"'  ")

%>

      <tr>
        <td width="5%"><%=Rs("SName")%> </td>
         <td width="5%"></td>
        <td width="5%"><%=Rs1("G1")%> </td>
        <td width="5%"><%=Rs1("G2")%> </td>
        <td width="5%"><%=Rs1("G3")%> </td>
       
      </tr>
    
 <%rs.movenext
            loop
      %>
     
         <tr>
        <td width="5%">總分</td>
        <td width="5%"> </td>
        <td width="5%">  </td>
        <td width="5%"> </td>
        <td width="5%"> </td>
      </tr>
 
         <tr>
        <td width="5%">平均</td>
        <td width="5%"> </td>
        <td width="5%">  </td>
        <td width="5%"> </td>
        <td width="5%"> </td>
      </tr>
 
    </table>
    </td>
  </tr>
  </table>

</body>

</html>
<%end if%>

本篇文章發表於2002-05-02 11:51
1樓
作者回應

小安
檢舉此回應
我最後一句的意思是  
我試的方法
都只抓出他最後一筆成績  都沒辦法算出 抓出3個人 就得到 3個的人的加總
本篇文章回覆於2002-05-02 11:53
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
回應

快樂水手
捐贈 VP 給 快樂水手 檢舉此回應
試試...在你的 SQL 語法中,使用 sum 函數吧
本篇文章回覆於2002-05-02 12:01
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
作者回應

小安
檢舉此回應
試了    但是就沒辦法加總  SHOW出來的是最後一個的成績
本篇文章回覆於2002-05-02 12:18
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
回應

home2843
檢舉此回應
如此可行 ?

<%
Set Rs1 = Server.CreateObject("ADODB.Recordset")
Set RS1 = Conn.Execute("SELECT * FROM Grade where SID = '"&rs("ID")&"' AND Test_Year = '"&Test_Year&"' AND Test_Times = '"&Test_Times&"'  ")
mtotal=rs1("g1")+rs1("g2")+rs1("g3")
%>
      <tr>
        <td width="5%"><%=Rs("SName")%> </td>
         <td width="5%"><% = mtotal %></td>
        <td width="5%"><%=Rs1("G1")%> </td>
        <td width="5%"><%=Rs1("G2")%> </td>
        <td width="5%"><%=Rs1("G3")%> </td>
       
      </tr>
本篇文章回覆於2002-05-02 13:32
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
回應

小安
檢舉此回應
這邊 樓上的回覆
你說的部分 我都有完成
問題在底下 那一列的總分....
本篇文章回覆於2002-05-02 14:27
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
回應

home2843
檢舉此回應
你是說全班的總分及平均?
其實你的題目及程式碼讓人有些迷惑?
其中:
 Set Conn = Server.CreateObject("ADODB.Recordset")
 的 Conn 你是否誤設為Rs,Rs1
Set RS1 = Conn.Execute("  ....  要不就是這裡的Conn有誤...
本篇文章回覆於2002-05-02 14:55
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
7樓
回應

小威
檢舉此回應
 <%
m=0
n=0
j=0

do while not rs.eof%>
<%

Set Rs1 = Server.CreateObject("ADODB.Recordset")
Set RS1 = Conn.Execute("SELECT * FROM Grade where SID = '"&rs("ID")&"' AND Test_Year = '"&Test_Year&"' AND Test_Times = '"&Test_Times&"'  ")

%>

      <tr>
        <td width="5%"><%=Rs("SName")%> </td>
         <td width="5%"></td>
        <td width="5%"><%=Rs1("G1")%> </td>
        <td width="5%"><%=Rs1("G2")%> </td>
        <td width="5%"><%=Rs1("G3")%> </td>
       
      </tr>
    
 <%rs.movenext
m=m+Rs1("G1")
n=n+Rs1("G2")
j=j+Rs1("G3")
loop
      %>
     
         <tr>
        <td width="5%">總分</td>
        <td width="5%"> </td>
        <td width="5%"><%=m%>  </td>
        <td width="5%"><%=n%> </td>
        <td width="5%"><%=j%> </td>
      </tr>
 
         <tr>
        <td width="5%">平均</td>
        <td width="5%"> </td>
        <td width="5%">  </td>
        <td width="5%"> </td>
        <td width="5%"> </td>
      </tr>
 
    加總是這樣吧,那平均也是一樣的方法吧!
試試!
本篇文章回覆於2002-05-02 17:21
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
8樓
回應

小安
檢舉此回應
小威  我照著你的方法試了
可是出現下列錯誤
Microsoft VBScript 執行階段錯誤 錯誤 '800a000d' 

型態不符合 

/recycling/report/test.asp, 列26 

是出現在
rs.movenext
m=m+rs1("G1")
.....
這裡ㄟ~~
本篇文章回覆於2002-05-02 17:39
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
9樓
回應

home2843
檢舉此回應
<%
m=0
n=0
j=0
cnt1=0

do while not rs.eof

  Set Conn = Server.CreateObject("ADODB.Recordset")
  Set RS1 = Conn.Execute("SELECT * FROM Grade where SID = '"&rs("ID")&"' AND Test_Year = '"&Test_Year&"' AND Test_Times = '"&Test_Times&"'  ")
  mtotal=rs1("g1")+rs1("g2")+rs1("g3")
  m=m+Rs1("G1")
  n=n+Rs1("G2")
  j=j+Rs1("G3")
  cnt1=cnt1+1
%>

      <tr>
        <td width="5%"><%=Rs("SName")%> </td>
         <td width="5%"><% mtotal %></td>
        <td width="5%"><%=Rs1("G1")%> </td>
        <td width="5%"><%=Rs1("G2")%> </td>
        <td width="5%"><%=Rs1("G3")%> </td>
      </tr>
<%   
rs.MoveNext   
Wend   
conn.Close
mv=m/cnt1
nv=n/cnt1
jv=j/cnt1   
%>   
         <tr>
        <td width="5%">總分</td>
        <td width="5%"> </td>
        <td width="5%"><%=m%>  </td>
        <td width="5%"><%=n%> </td>
        <td width="5%"><%=j%> </td>
      </tr>
      <tr>
        <td width="5%">平均</td>
        <td width="5%"> </td>
        <td width="5%"><% = mv %> </td>
        <td width="5%"><% = nv %> </td>
        <td width="5%"><% = jv %> </td>
      </tr>
</table>
前面建議改為:
Set Conn = Server.CreateObject("ADODB.Recordset")
Set Rs = Conn.Execute("select * from Students")
 ^=^ 試試囉!!
本篇文章回覆於2002-05-02 18:29
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
10樓
回應

小安
檢舉此回應
謝謝大家 ....
剛剛說的那個錯誤我已經找到原因了
是我的資料型別設定錯誤
我改回CHAR就好囉
謝謝  謝謝各位~~~~ ^_^
本篇文章回覆於2002-05-02 18:36
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.