我需要显示一个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
我如何实现我正在寻找的目标?
答案 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