使用asp循环SQL记录

时间:2014-07-15 13:09:50

标签: sql-server loops asp-classic

我需要显示一个XML输出,该输出根据传递一个搜索记录号的请求输出多个订单项。

例如,请求传递记录号“ABC123”的记录号以搜索。

响应按记录编号查找记录并返回一些字段:

<RecordNo>ABC123</ReocrdNo>
<LineNo>1</LineNo>
<Item>Good record</Item>
<Quantity>1</Quantity>
<Price>5.00</Price>

但是,一条记录可能包含多个订单项,例如

<RecordNo>ABC123</ReocrdNo>
<LineNo>1</LineNo>
<Item>Good record</Item>
<Quantity>1</Quantity>
<Price>5.00</Price>

<RecordNo>ABC123</ReocrdNo>
<LineNo>2</LineNo>
<Item>Best record</Item>
<Quantity>1</Quantity>
<Price>6.00</Price>

表结构基本上有一个带有记录号的主表,然后连接到该主记录的详细信息表中的多个详细记录。我知道我需要使用某种循环。 XML输出在asp页面上完成:

Set nodeTierRecordNum = CreateNode(nodeTierLine, "Quantity", "")
nodeTierRecordNum.text = cmdGetRecord.Parameters("@quantity").Value

在SQL方面:

SET @quantity = (SELECT qty FROM record_details WHERE record_id = @record_id_passed_in)

但这将返回多个值,因为此记录有多个记录(行)。

qty
1
1

我如何实现我正在寻找的目标?

1 个答案:

答案 0 :(得分:0)

根据要求所需的组:

SET @quantity = (SELECT sum(qty) FROM record_details WHERE record_id = @record_id_passed_in
group by Item)

另一个是XML输出:

SELECT record_id, sum(qty) as qty FROM record_details
 WHERE record_id = @record_id_passed_in
 group by record_id
 for XML auto