Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql Oracle 12c-如何通过此查询进行分组和订购_Sql_Oracle - Fatal编程技术网

Sql Oracle 12c-如何通过此查询进行分组和订购

Sql Oracle 12c-如何通过此查询进行分组和订购,sql,oracle,Sql,Oracle,下面的查询是关于GROUP BY和ORDER BY表达式的投诉-请帮助我更正-谢谢 挑选 a、 名字| |“”| | a.姓为“Name”, 四舍五入(总额((b.单价-b.折扣)*b.数量)/100000)为“销售额” 从…起 员工a、订单详情b、订单c 哪里 a、 EmployeeID=c.EmployeeID和 b、 OrderID=c.OrderID 按1分组 按2描述订购 只取前5行; 以下是错误: a.FirstName|| ' ' ||a.LastName AS "Name",

下面的查询是关于GROUP BY和ORDER BY表达式的投诉-请帮助我更正-谢谢

挑选
a、 名字| |“”| | a.姓为“Name”,
四舍五入(总额((b.单价-b.折扣)*b.数量)/100000)为“销售额”
从…起
员工a、订单详情b、订单c
哪里
a、 EmployeeID=c.EmployeeID和
b、 OrderID=c.OrderID
按1分组
按2描述订购
只取前5行;

以下是错误:

a.FirstName|| ' ' ||a.LastName AS "Name",
ERROR at line 2:
ORA-00979: not a GROUP BY expression`
问候 托尼亚

试试:

SELECT    a.FirstName|| ' ' ||a.LastName AS "Name",    
    ROUND(SUM((b.UnitPrice - b.Discount) * b.Quantity)/100000) AS
    "Sales"    
FROM     
    Employees a, Order_Details b, Orders c  
WHERE    
    a.EmployeeID = c.EmployeeID AND     
    b.OrderID = c.OrderID  
GROUP BY
    a.FirstName, a.LastName 
ORDER BY 
    2 DESC  
FETCH FIRST 5 ROWS ONLY;

ORDER BY
子句不同,您不能将
用作列名或列位置号。如果分组列是一个表达式,则必须在
GROUP BY
子句中使用该表达式,即
a.FirstName | |''.| a.LastName
SUM
是将应用于此组的聚合函数,即使它是一个类似于此表达式的凌乱表达式。

在oracle中,不能在group by中指定列号,只能指定列/表达式本身
SELECT a.FirstName || ' ' || a.LastName AS "Name", 
       ROUND(SUM((b.UnitPrice - b.Discount) * b.Quantity)/100000) AS "Sales" 
  FROM Employees a, Order_Details b, Orders c 
 WHERE a.EmployeeID = c.EmployeeID
   AND b.OrderID = c.OrderID 
GROUP BY a.FirstName || ' ' || a.LastName
ORDER BY 2 DESC 
FETCH FIRST 5 ROWS ONLY;