为什么附近会出现不正确的语法错误?

时间:2019-02-12 19:02:14

标签: sql sql-server

我收到一个错误消息,表明关键字“ DESC”附近的语法不正确。

SELECT   S.NAME, SUM([QTY] * [PRICE]) AS SALES
FROM    Invoices$ Inv INNER JOIN InvDetails$ InvD ON 
Inv.INVOICE_ID=InvD.INVOICE_ID
      INNER JOIN Products$ P ON InvD.PRODUCT_ID=P.PRODUCT_ID
    INNER JOIN Stores$ S ON S.STORE_ID=Inv.STORE_ID
GROUP BY SALES DESC

预期结果是按细分顺序打印所有商店及其销售额,按总销售额(SALES)排序

3 个答案:

答案 0 :(得分:3)

您的意思是GROUP BY S.NAME,而不是SALES

另外,GROUP BY并不关心顺序,因此将DESC移到ORDER BY之后。您不能将GROUP BYORDER BY合并为一个子句。

GROUP BY S.NAME 
ORDER BY SALES DESC;

答案 1 :(得分:1)

您的查询应如下所示:

string
在MySQL中,

CurrentSaleItem.SaleDate被用作SELECT S.NAME, SUM([QTY] * [PRICE]) AS SALES FROM Invoices$ Inv INNER JOIN InvDetails$ InvD ON Inv.INVOICE_ID = InvD.INVOICE_ID INNER JOIN Products$ P ON InvD.PRODUCT_ID = P.PRODUCT_ID INNER JOIN Stores$ S ON S.STORE_ID = Inv.STORE_ID GROUP BY S.NAME ORDER BY SALES DESC; 的关键字(尽管我认为v8中已弃用了该用法)。但是,这是其他数据库未使用的扩展。

无论如何,DESC应该包含GROUP BY中所有未聚合的键。那将是GROUP BY,而不是SELECT

答案 2 :(得分:0)

您需要在name的{​​{1}}列中添加

group by