我的问题是---> 员工进行的每笔销售将获得他每笔总销售额的 10% 的佣金,找出迄今为止哪个员工以非常少的订单数量获得了更多的佣金 [参考 Northwind 数据库]
我创建一个“com”列来计算佣金百分比。
从 MIN(count(employeeid)) 和 max(com) 的订单中选择 distinct(EmployeeID)
当我运行 sqlserver 查询时,它显示如下错误
“在预期条件的上下文中指定的非布尔类型的表达式,靠近‘和’。”
我的问题是---> 员工进行的每笔销售将获得他每笔总销售额的 10% 的佣金,找出迄今为止哪个员工以非常少的订单数量获得了更多的佣金 [参考 Northwind 数据库]
我创建一个“com”列来计算佣金百分比。
从 MIN(count(employeeid)) 和 max(com) 的订单中选择 distinct(EmployeeID)
当我运行 sqlserver 查询时,它显示如下错误
“在预期条件的上下文中指定的非布尔类型的表达式,靠近‘和’。”
您的查询有几个问题。简而言之,你不能离开 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)