sql-server
  • asp-classic
  • vbscript
  • conditional
  • 2012-07-10 67 views 0 likes 
    0

    努力將RS的輸出顯示爲水平表格。ASP/SQL Server - 如果語句不起作用

    我已經基於以下SQL

    SQL = "SELECT INTRAY.TEAM, Count(INTRAY.DOC_GUID) AS NumDocs " & _ 
    "FROM INTRAY INNER JOIN DOCUMENT ON INTRAY.DOC_GUID = DOCUMENT.GUID " & _ 
    "WHERE DOCUMENT.DOC_TYPE = 'PNEW' " & _ 
    "AND DOCUMENT.DATE_RECEIVED > '"& Year(FromDate) &"-"& Month(FromDate) &"-"& Day(FromDate) &"' " & _ 
    "GROUP BY INTRAY.TEAM, INTRAY.MAIL_STATUS, INTRAY.FILE_SYSTEM " & _ 
    "HAVING INTRAY.MAIL_STATUS = 'NT' AND INTRAY.FILE_SYSTEM ='B' " & _ 
    "ORDER BY INTRAY.TEAM ;" 
    

    我在一個正常的表中顯示的結果的RS,如下

    <table border=1> 
        <tr> 
         <th>Team</th> 
         <th>Records</th> 
        </tr> 
    <%Do While Not RS.EOF %> 
        <tr> 
         <td><%=RS("TEAM")%></td> 
         <td><%=RS("NumDocs")%></td> 
        </tr> 
    <% RS.MoveNext 
    Loop%> 
    </table> 
    

    在vertial表中的resutls顯示正常。返回10條記錄,按隊列排序。 OPS1,OPS10,OPS2等

    請注意,10歸因於alpha排序後,不知道如何修改此。

    只有10個團隊可以在輸出中,但有時候並不是全部都會有結果,所以表格只能返回2個或3個團隊。

    我想創建已硬編碼列標題對於每個可能的團隊(1 - 10)的表,然後將下一行是用於NumDocs

    球隊1 10 2 3 4 5 6 7的輸出值8個9

    結果8 4 7 17 4 87 20 19 1 7

    所以,我然後關閉記錄,並重新打開它;

    <%RS.Close%> 
    <br> 
    
    <% 
    RS.cursortype=adOpenKeyset 
    RS.Open SQL, IConn, 3, 3 
    RS.MoveFirst 
    %> 
    

    然後寫下表格;

    <table border=1> 
    <th>Report</th> 
    <th>OPS1</th> 
    <th>OPS10</th> 
    <th>OPS2</th> 
    <th>OPS3</th> 
    <th>OPS4</th> 
    <th>OPS5</th> 
    <th>OPS6</th> 
    <th>OPS7</th> 
    <th>OPS8</th> 
    <th>OPS9</th> 
    <tr> 
    <td>Untouched New Records (total)</td> 
    <td> 
    <%If RS("Team") = "OPS1" Then %> 
    <% Response.Write(RS("NumDocs")) 
    Else Response.Write("Not OPS1") 
    RS.MoveNext 
    End If %> 
    </td> 
    <td> 
    <%If RS("Team") = "OPS10" Then %> 
    <% Response.Write(RS("NumDocs")) 
    Else Response.Write("Not OPS1") 
    RS.MoveNext 
    End If %> 
    </td> 
    <td> 
    <%If RS("Team") = "OPS2" Then %> 
    <% Response.Write(RS("NumDocs")) 
    Else Response.Write("Not OPS2") 
    RS.MoveNext 
    End If %> 
    </td> 
    <td> 
    <%If RS("Team") = "OPS3" Then %> 
    <% Response.Write(RS("NumDocs")) 
    Else Response.Write("Not OPS3") 
    RS.MoveNext 
    End If %> 
    </td> 
    <td> 
    <%If RS("Team") = "OPS4" Then %> 
    <% Response.Write(RS("NumDocs")) 
    Else Response.Write("Not OPS4") 
    RS.MoveNext 
    End If %> 
    </td> 
    <td> 
    <%If RS("Team") = "OPS5" Then %> 
    <% Response.Write(RS("NumDocs")) 
    Else Response.Write("Not OPS5") 
    RS.MoveNext 
    End If %> 
    </td> 
    <td> 
    <%If RS("Team") = "OPS6" Then %> 
    <% Response.Write(RS("NumDocs")) 
    Else Response.Write("Not OPS6") 
    RS.MoveNext 
    End If %> 
    </td> 
    <td> 
    <%If RS("Team") = "OPS7 " Then %> 
    <% Response.Write(RS("NumDocs")) 
    Else Response.Write("Not OPS7") 
    RS.MoveNext 
    End If %> 
    </td> 
    <td> 
    <%If RS("Team") = "OPS8" Then %> 
    <% Response.Write(RS("NumDocs")) 
    Else Response.Write("Not OPS8") 
    RS.MoveNext 
    End If %> 
    </td> 
    <td> 
    <%If RS("Team") = "OPS9" Then %> 
    <% Response.Write(RS("NumDocs")) 
    Else Response.Write("Not OPS9") 
    RS.MoveNext 
    End If %> 
    </td> 
    </tr> 
    </table> 
    

    它不會工作,我得到的是「不OPSx」輸出。

    if測試是行不通的。

    如果我修改每個單元

    <% Response.Write(RS("NumDocs")) 
    RS.MoveNext %> 
    

    然後,它會寫的價值,但我需要測試團隊在RS該行中的值,如果我修改這

    <% If RS("Team") = "OPS1" Then 
    Response.Write(RS("NumDocs")) 
    End If 
    RS.MoveNext %> 
    

    它不會工作,什麼都不寫。

    任何想法,爲什麼mty IF不工作?當我寫入TEAM的值時,它們看起來沒問題,並且沒有尾隨空格。在SQL Server不會接受TRIM功能

    回答

    0

    SQL Server可能不接受TRIM,但應該接受RTRIMLTRIM,如:

    SELECT INTRAY. RTRIM(TEAM), Count(INTRAY.DOC_GUID) AS NumDocs 
    

    如果你不想在修剪您的SQL語句(我建議你這樣做),你總是可以嘗試微調您的IF聲明是這樣的:

    <%If Trim(RS("Team")) = "OPS1" Then %> 
    

    如果你做的<% Response.Write "!" & RS("Team") & "!") %>你數據現在,我懷疑你會看到類似的東西:

    !OPS1 ! 
    
    +0

    謝謝,現在整理!另外,我在第二張桌子的錯誤位置有End If。再次感謝您 – 2012-07-10 16:18:35

    +0

    @BenHamilton - 如果這個答案對您有幫助,將答案標記爲已接受以便其他用戶知道該問題已得到解答將是禮貌的。 – LittleBobbyTables 2012-07-10 19:06:07

    +0

    完成!感謝那。 – 2012-07-16 11:41:38

    相關問題