SQL子查询的错误(SQL subqueries errors)

2019-10-19 05:03发布

使用AdventureWorks2012数据库,我不得不改变下面的查询选择与客户编号的前10%的订单大于500且降序排序顺序的命令由TotalDue。

 SELECT *
 FROM Sales.SalesOrderHeader h
 INNER JOIN Sales.SalesOrderDetail d 
 ON d.SalesOrderId = h.SalesOrderId

这里有两个我在解决问题的尝试,但都包含错误:

  Msg 156, Level 15, State 1, Line 9
  Incorrect syntax near the keyword 'DESC'.
  Msg 156, Level 15, State 1, Line 12
  Incorrect syntax near the keyword 'FROM'.

尝试1

 SELECT *
 FROM SalesOrderHeader 
 WHERE SalesOrderID IN
 (SELECT TOP 10 PERCENT SalesOrderID 
 FROM SalesOrderDetail 
 WHERE SalesOrderID > 500
 ORDER BY TotalDue DESC);

我究竟做错了什么? 谢谢。


更新:我删除从订单逗号BY部分和管理,从我第一次尝试执行查询。 不过,我得到一个看似无穷无尽的“执行成功”负载。 换句话说,我得到了3000的结果,当我修改下面的查询统计:

    SELECT *
    FROM Sales.SalesOrderHeader 
    WHERE SalesOrderID IN
(SELECT TOP 10 PERCENT SalesOrderID 
FROM Sales.SalesOrderDetail 
WHERE CustomerID > 500
ORDER BY TotalDue DESC);
文章来源: SQL subqueries errors