以文本方式查看主题

-  计算机科学论坛  (http://bbs.xml.org.cn/index.asp)
--  『 DTD/XML Schema 』  (http://bbs.xml.org.cn/list.asp?boardid=23)
----  有问题请教,高手帮忙啊,Qr在么?[求助]  (http://bbs.xml.org.cn/dispbbs.asp?boardid=23&rootid=&id=26355)


--  作者:white.gourd
--  发布时间:1/11/2006 9:33:00 PM

--  有问题请教,高手帮忙啊,Qr在么?[求助]
在另外一版里面没有得到答案,所以到这里来问......

SQL—XML 为什么使用了DESC后就出现错误?

下面这段代码没有问题,但是结果是按照从小到大的顺序显示的,我想将结果反向排序,因此在ORDER BY [Newsletter!1!Number], [Article!2!ArticleTitle] 后面增加了DESC,但是出现了这个错误:Parent tag ID 1 is not among the open tags. FOR XML EXPLICIT requires parent tags to be opened first. Check the ordering of the result set.

如果想反向排序该怎么办?  请高手指点一下。谢谢!

SELECT 1 AS Tag,
NULL AS Parent,
l.IssueNumber as [Newsletter!1!Number],
l.IssueDate as [Newsletter!1!IssueDate],
l.FileLocation as [Newsletter!1!Link],
NULL as [Article!2!ArticleTitle]
FROM LevelNewsletter l

UNION ALL

SELECT 2 AS Tag, 1 AS Parent,
l.IssueNumber, l.IssueDate, l.FileLocation, a.ArticleTitle
FROM LevelNewsletter l, LevelArticle a
WHERE l.NewsletterId = a.NewsletterId
ORDER BY [Newsletter!1!Number], [Article!2!ArticleTitle]

FOR XML EXPLICIT


--  作者:ceodmk
--  发布时间:12/4/2006 11:22:00 AM

--  
可能是union all 后的 l.IssueDate, l.FileLocation出了问题
--  作者:ceodmk
--  发布时间:12/4/2006 1:36:00 PM

--  
correctly SQL script

SELECT 1       AS TAG,
NULL          AS PARENT,
Customers.CustomerID AS [Customers!1!CustomerID],
Customers.CompanyName AS [Customers!1!CompanyName],
NULL          AS [Orders!2!OrderID],
NULL          AS [Orders!2!OrderDate],
NULL          AS [Orders!2!ShipCity],
NULL          AS [OrderDetails!3!ProductID],
NULL          AS [OrderDetails!3!Quantity],
NULL          AS [Products!4!ProductName]
FROM Customers INNER JOIN Orders
ON Customers.CustomerID = ORders.CustomerID
INNER JOIN [Order Details] OD ON od.OrderID = Orders.OrderID
INNER JOIN Products ON Products.ProductID = OD.ProductID
WHERE Products.ProductID = 9

UNION ALL
SELECT
2    AS TAG,
1    AS PARENT,
customers.customerID      AS [Customers!1!CustomerID],
NULL      AS [Customers!1!CompanyName],
Orders.OrderID     AS [Orders!2!OrderID],
Orders.OrderDate    AS [Orders!2!OrderDate],
Orders.ShipCity    AS [Orders!2!ShipCity],
NULL          AS [OrderDetails!3!ProductID],
NULL          AS [OrderDetails!3!Quantity],
NULL          AS [Products!4!ProductName]
FROM Customers INNER JOIN Orders
ON customers.customerID = Orders.CustomerID
INNER JOIN [Order Details] OD ON od.OrderID = Orders.OrderID
INNER JOIN Products ON Products.ProductID = OD.ProductID
WHERE Products.ProductID = 9

UNION ALL 

SELECT
3       AS TAG,
2       AS PARENT,
Customers.CustomerID    AS [Customers!1!CustomerID],
NULL            AS [Customers!1!CompanyName],
Orders.OrderID       AS [Orders!2!OrderID],
NULL            AS [Orders!2!OrderDate],
NULL            AS [Orders!2!ShipCity],
OD.ProductID        AS [OrderDetails!3!ProductID],
OD.Quantity        AS [OrderDetails!3!Quantity],
NULL            AS [Products!4!ProductName]
FROM Customers INNER JOIN Orders
ON customers.customerID = Orders.CustomerID
INNER JOIN [Order Details] OD ON OD.OrderID = Orders.OrderID
INNER JOIN Products ON Products.ProductID = OD.ProductID
WHERE Products.ProductID = 9
ORDER BY [Customers!1!CustomerID], [Orders!2!OrderID]
FOR XML EXPLICIT


W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
62.500ms