0

我有以下代码:

sql="SELECT  COUNT(*) AS CurrentInvoice from [Invoices].[dbo].[InvoiceSentInformation] WHERE (InvoiceSeries = 18) AND (InvoicePeriodStartDate='"&SelectedMonth&"') AND (CustomerBillingGroupId IN (2, 3, 11))" 
Response.Write SelectedMonth
'Response.Write sql
r.open sql,c_SQL,3,3
IF r.recordcount>0 THEN
    CurrentInvoice=r("CurrentInvoice")
    for i=1 to r.recordcount
   %>
       <TR align="center">
        <TD><%=CurrentInvoice%></TD>
        <TD>
         <%


  %>

输出为:0。

当我在我的 sql-server 中运行查询时,结果是一个 > 15,000 的数字。
如何修复我的代码以显示与我在数据库中看到的相同的输出?

4

2 回答 2

0

在您的 for 循环中,您似乎从 1 循环到 r.recordcount。这意味着未输入 for 循环,因此不显示任何内容。

您是否尝试过仅显示 CurrentInvoice 而没有 for 循环?然后应该只显示来自 SQL 的计数

于 2012-12-30T21:04:20.080 回答
0

如上所述,您应该删除 for 循环 - 当您从表中选择聚合()时,即使表为空,结果也将始终为一行。

可能是您刚刚在片段中排除了它,但是要显示一个表格,它需要正确的格式。看起来上面可能会打开并且永远不会关闭 . 第二个应该是一个?

我建议查看 HTML 输出的源代码,以便您可以看到我编写的所有代码。我怀疑你归因于​​上面的零可能来自其他地方,上面可能没有输出任何可见的东西(没有查看源)。

至于 SQL,仅供参考,您可以通过使用 count(1) 而不是 count(*) 看到性能改进 - 后者仍然让 SQL 检查所有列的元数据。

于 2012-12-31T05:37:59.427 回答