0

ループのヘルプが必要です。これは私のテーブルの構造とその中のレコードです。私が欲しいのはU_ID、同じレコードが複数ある場合にレコードをループすることU_IDです。

ここに画像の説明を入力

SQL クエリ

Set Rs2 = con.execute("Select U_ID, stdName, Class_Code, subject, total_marks, act_marks, obt_marks, Format(submit_date,'dd-MMM-yyyy') as submit_date From res_correct ORDER BY submit_date, subject, Class_Code")

私の ASP コード:

If Not RS2.EOF Then

Response.write "<table width=""80%"">"& vbcrlf
Response.write "<tr>"& vbcrlf
Response.write "<td><strong>Name:</strong><span class=""underline"">"& Rs2("stdName")&" </span></td>" & vbcrlf
Response.write "<td><strong>Class:</strong> <span class=""underline"">" & Rs2("Class_Code")&" </span></td>" & vbcrlf
Response.write "<td><strong>UID:</strong> <span class=""underline"">"& Rs2("U_ID") &"</span></td>"& vbcrlf
Response.write "<td><strong>Date:</strong> <span class=""underline"">"& Rs2("submit_date") &"</span></td>"& vbcrlf
Response.write "</tr>" &vbcrlf

Response.write "<tr class=""trhead2"">" &vbcrlf
Response.write "<td>Subject</td>" &vbcrlf
Response.write "<td>Total Marks</td>" &vbcrlf
Response.write "<td>Obtained Marks</td>" &vbcrlf
Response.write "<td>Actual Marks</td>" &vbcrlf
Response.write "</tr>" &vbcrlf
Rs2.MoveFirst

Do
Response.Write "<tr class=""trhighlight"">" &vbcrlf
Response.Write "<td>"& Rs2("Subject") &" </td>" &vbcrlf
Response.Write "<td>"& Rs2("total_marks")&" </td>" &vbcrlf
Response.Write "<td>"& Rs2("obt_marks")&" </td>" &vbcrlf
Response.Write "<td>"& Rs2("act_marks")&" </td>" &vbcrlf
Response.Write "</tr>" &vbcrlf

RS2.MoveNext()

Loop Until RS2.EOF
Response.write "</table>" &vbcrlf
End If

必要な出力結果は次のとおりです。

ここに画像の説明を入力

代わりに私はこれを取得しています ここに画像の説明を入力

ありがとうございました!!!

4

2 に答える 2

3

ユーザー情報の行を条件でラップし、ユーザーが変更されたときに解決します。このようなもの;

<%
IF RS2.EOF THEN
    'No results
ELSE
    'start loop
    WHILE NOT RS2.EOF
        rowCount = rowCount + 1

        'set the first user and then work out when the user changes
        if userid="" then
            userid=RS2("U_ID")
            progress=true
        else
            if userid-RS2("U_ID") = 0 then
                progress=false
            else
                userid=RS2("U_ID")
                progress=true
            end if
        end if

        IF (progress AND rowCount > 1) THEN
            Response.write "</table>" & vbcrlf
        END IF

        'user has changed
        IF progress THEN
            Response.write "<table width=""80%"">"& vbcrlf
            Response.write "<tr>"& vbcrlf
            Response.write "<td><strong>Name:</strong><span class=""underline"">"& Rs2("stdName")&" </span></td>" & vbcrlf
            Response.write "<td><strong>Class:</strong> <span class=""underline"">" & Rs2("Class_Code")&" </span></td>" & vbcrlf
            Response.write "<td><strong>UID:</strong> <span class=""underline"">"& Rs2("U_ID") &"</span></td>"& vbcrlf
            Response.write "<td><strong>Date:</strong> <span class=""underline"">"& Rs2("submit_date") &"</span></td>"& vbcrlf
            Response.write "</tr>" &vbcrlf

            Response.write "<tr class=""trhead2"">" &vbcrlf
            Response.write "<td>Subject</td>" &vbcrlf
            Response.write "<td>Total Marks</td>" &vbcrlf
            Response.write "<td>Obtained Marks</td>" &vbcrlf
            Response.write "<td>Actual Marks</td>" &vbcrlf
            Response.write "</tr>" &vbcrlf
        END IF

        'write out user's data
        Response.Write "<tr class=""trhighlight"">" &vbcrlf
        Response.Write "<td>"& Rs2("Subject") &" </td>" &vbcrlf
        Response.Write "<td>"& Rs2("total_marks")&" </td>" &vbcrlf
        Response.Write "<td>"& Rs2("obt_marks")&" </td>" &vbcrlf
        Response.Write "<td>"& Rs2("act_marks")&" </td>" &vbcrlf
        Response.Write "</tr>" &vbcrlf

    RS2.MoveNext
    WEND
    IF progress = false THEN
        Response.write "</table>" & vbcrlf
    END IF
END IF
%>

ユーザー ID でレコードセットの結果を並べ替える必要があります。

于 2013-11-11T10:28:37.483 に答える
1

私があなたを正しく理解していれば、2 つのレコードセットが必要で、一方が他方の中にネストされていると思います。

最初のクエリ (rs1 と呼びます) は次のようになります。

"SELECT uid, studentname, submitdate FROM rescorrect ORDER BY uid"

2 つ目は、rs2 と呼びますが、次のようになります。

"SELECT * FROM rescorrect WHERE uid = " & rs1("uid") & "ORDER BY submitdate, subject, ClassCode"

また、datashaping を参照することもできます。実際に役立つ情報は 3 ページにあります。

http://www.4guysfromrolla.com/webtech/092599-1.shtml

于 2013-11-11T12:48:57.760 に答える