我正在为一个学校项目创建一个模拟数据库, 我有两个表:客户和订单 这两个表都是这样
客户:custID,custLName,custFName,custAddress,custTown,custPostcode,custPhone,custEmail
和
订单:orderID,orderDate,dispatchDate,custID(外键)
我正在尝试生成一个查询,该查询返回订单最多的客户的全名和电话号码。 这是我在下面的查询,但是它在GROUP BY函数上返回错误,指出ORA-00904:“客户”:无效的标识符
SELECT b.custFName || ' ' || b.custLName || ', ' || b.custPhone AS Customer,
COUNT(DISTINCT o.custID) AS Orders_Placed
FROM CUSTOMERS b, ORDERS o
GROUP BY Customer
HAVING COUNT(DISTINCT o.custID) AND b.custID = o.custID
ORDER BY o.custID DESC;
答案 0 :(得分:0)
除了Gordon Linoff和Boneist所说的那样,除了提到的所有其他错误之外,您也没有在HAVING子句中进行过滤。正确进行联接,然后过滤/选择具有最大计数的记录。