首页 MsSql sql – 我得到:“你试图执行一个不包含指定表达式’OrdID’的查询作为聚合函数的一部分.如何绕过?

sql – 我得到:“你试图执行一个不包含指定表达式’OrdID’的查询作为聚合函数的一部分.如何绕过?

我的代码如下: SELECT Last, OrderLine.OrdID, OrdDate, SUM(Price*Qty) AS total_price FROM ((Cus INNER JOIN Orders ON Cus.CID=Orders.CID) INNER JOIN OrderLine ON Orders.OrdID=OrderLine

我的代码如下:

SELECT Last,OrderLine.OrdID,OrdDate,SUM(Price*Qty)  AS total_price
    FROM ((Cus INNER JOIN Orders ON Cus.CID=Orders.CID)
        INNER JOIN OrderLine
            ON Orders.OrdID=OrderLine.OrdID)
        INNER JOIN ProdFabric
            ON OrderLine.PrID=ProdFabric.PrID   
            AND OrderLine.Fabric=ProdFabric.Fabric  
    GROUP BY Last  
    ORDER BY Last DESC,OrderLine.OrdID DESC;

此代码之前已经得到了回答,但含糊不清.我想知道我哪里出错了.

You tried to execute a query that does not include the specified expression ‘OrdID’ as part of an aggregate function.

是我不断得到的错误消息,无论我改变什么,它都会给我这个错误.是的我知道,它是用SQL-92编写的,但是我该如何使它成为一个合法的功能呢?

解决方法

对于几乎每个DBMS(MySQL是我所知道的唯一例外,但也可能有其他例外),SELECT中未聚合的每一列都需要在GROUP BY子句中.在您的查询的情况下,这将是除SUM()中的列之外的所有内容:

SELECT Last,SUM(Price*Qty)  AS total_price
...   
GROUP BY Last,OrdDate  
ORDER BY Last DESC,OrderLine.OrdID DESC;

本文来自网络,不代表青岛站长网立场。转载请注明出处: https://www.0532zz.com/html/shujuku/mssql/20200716/6310.html
上一篇
下一篇

作者: dawei

【声明】:青岛站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。

为您推荐

返回顶部