我有4个表,员工,驱动程序,旅行和三重奏
EMPLOYEE表具有要提取并显示的名称,具有最大数量,具有与驱动程序共享的E#DRIVER表具有与TRIP相同的L#(许可证号)
TRIP表具有与TRIPLEG相同的T#(行程号)>
我正在尝试查找驱动程序已完成的最大三倍(在这种情况下,许可证号为10002的驱动程序:
SELECT MAX(COUNT(TRIPLEG.LEG#)) FROM TRIP, TRIPLEG ON TRIP.T# = TRIPLEG.T# WHERE TRIP.L# = 10002 GROUP BY TRIP.T#
COUNT(TRIPLEG.LEG#)给了我https://i.imgur.com/AYAovov.png,
所以我做了上面的MAX(COUNT(TRIPLEG.LEG#)),这给了我:https://i.imgur.com/alCFlO3.png
我无法尝试选择更多列(如TRIP.T#),因此无法继续
SELECT TRIP.T#, MAX(COUNT(TRIPLEG.LEG#)) FROM TRIP, TRIPLEG ON TRIP.T# = TRIPLEG.T# WHERE TRIP.L# = 10002 GROUP BY TRIP.T#
给我一个错误:ORA-00937:不是单组分组功能
有什么建议吗?需要能够从小处开始并进行选择,然后才能加入更多表以使Employee名称显示在MAX Tripleg计数旁边。
提前感谢
基本上,我想要的是这样的东西:(仅1行,这是完成的MAX三元组(5))
NAME MAX(COUNT(TRIPLEG.LEG#))
-----------------------------------
BOB 5
我有4个表,EMPLOYEE,DRIVER,TRIP和TRIPLEG EMPLOYEE表具有要提取的名称并以MAX计数显示,具有与DRIVER DRIVER表共享的E#具有L#(许可证号)...
我没有您的表,所以我将使用Scott的EMP和DEPT(因为您使用Oracle,所以我假设您熟悉它们)。
根据您的表查找驱动程序已完成的最大三倍次数(在这种情况下,许可证号为10002的驱动程序: