-1

我的问题是---> 员工进行的每笔销售将获得他每笔总销售额的 10% 的佣金,找出迄今为止哪个员工以非常少的订单数量获得了更多的佣金 [参考 Northwind 数据库]

我创建一个“com”列来计算佣金百分比。

从 MIN(count(employeeid)) 和 max(com) 的订单中选择 distinct(EmployeeID)

当我运行 sqlserver 查询时,它显示如下错误

“在预期条件的上下文中指定的非布尔类型的表达式,靠近‘和’。”

4

1 回答 1

0

您的查询有几个问题。简而言之,你不能离开 max() 函数而不将它与其他表达式进行比较。您也不能在 where 子句中指定聚合函数:为此,您需要将它们包含在 (select max()....) 子查询中。但是为了您的目的,您需要检查查询表上的 sum() 和 max(),您需要在下面指定它们:

SELECT EmployeeID
FROM orders 
GROUP BY EmployeeID
HAVING SUM(debet)=
    (SELECT MAX (sum(com)) from orders GROUP BY EmployeeID)
AND COUNT(ledger_id)=
    (SELECT MIN(COUNT(EmployeeID)) FROM orders GROUP BY EmployeeID)
于 2014-04-23T06:25:00.963 回答