要显示select语句--sql查询

时间:2012-01-03 02:43:33

标签: html sql-server asp-classic

我有一个从数据库中选择companyNamedepartment的查询。当我在我的网站上显示时,它将按companyName订购。

当我从部门添加select productSold时,如果有2 productSold,我的部门会分成2条记录。无论如何我可以在表格中显示1个有2条记录的部门。 感谢。

我的查询如下:

SELECT dbo.CompanyAdd.companyName, 
       dbo.OrderDetails.department,
       dbo.OrderDetails.productSold
FROM   dbo.CompanyAdd 
INNER JOIN
       dbo.OrderDetails
GROUP BY dbo.CompanyAdd.companyName,
       dbo.OrderDetails.department, 
       dbo.OrderDetails.productSold
HAVING (dbo.User2Company.UsrID = 10)
ORDER BY
       dbo.OrderDetails.department;

这是我的代码,用于检查以前的记录是否与当前记录相同。

<% dim productSold  
   Do While  Not registerRS.EOF 
     Response.write"<table>" 
     Response.write "<tr>" %> 
     <td height="265.6" width="264.56">
       <%=rS.Fields("companyName")%> <br />
       <%=rS.Fields("department") %><br />
       <%=rS.Fields("productSold") %><br /> 
     </td>      
     <%
      Response.write "</tr>" 
      If r = 4 then r = 1 
      'Next  
        if rS.Fields("productSold") <> productSold then
          Response.write("productSold:" & productSold) 
        end if
      rS.movenext 
   loop  
   Response.write "</table> "  
   rS.close 
   set rS=nothing   
%>

2 个答案:

答案 0 :(得分:1)

您未将变量productSold设置为rS.Fields("productSold")。如果在循环语句之前,你也会错过结束。

尝试将代码修改为类似的内容。

<% dim productSold  
   Do While  Not registerRS.EOF 
     Response.write"<table>" 
     Response.write "<tr>" %> 
     <td height="265.6" width="264.56">
       <%=rS.Fields("companyName")%> <br />
       <%=rS.Fields("department") %><br />
       if rS.Fields("productSold") <> productSold then
         Response.write("productSold:" & productSold) 
       end if           
     </td>      
     <%
      Response.write "</tr>" 
      If r = 4 then r = 1 
      'Next  
      if rS.Fields("productSold") <> productSold then
        Response.write("productSold 2:" & productSold) 
      end if
      productSold = rS.Fields("productSold") '<-- Set productSold variable
      rS.movenext 
   loop  
   Response.write "</table> "  
   rS.close 
   set rS=nothing   
%>

我在if语句之外添加了它,但根据您的逻辑,您可能希望在if语句中设置它。您评论说您在循环之前移动了rS.movenext,它必须在循环之前,否则您的记录集永远不会到达下一条记录。

答案 1 :(得分:0)

如果您使用的是SQL Server 2005+,则可以将所有相同部门的产品连接到单个产品列表中,例如将它们分隔开来。使用行分隔符(在这种情况下,取决于您是偏好varchar还是nvarchar,它可以是CHAR(13) + CHAR(10)NCHAR(13) + NCHAR(10))。

该站点包含大量如何将一列值连接成单个值的示例。这只是其中的一个:

您可以浏览问题的链接部分,以查找更多类似的问题,从而获得更多示例。