-1

私の質問は ---> 従業員が販売を行うたびに、各販売額の 10% のコミッションが得られます。注文数が非常に少なく、これまでにどの従業員がより多くのコミッションを獲得しているかを調べます [Northwind データベースを参照]

手数料率を計算するための列「com」を作成します。

MIN(count(employeeid)) および max(com) のオーダーから、distinct(EmployeeID) を選択します。

sqlserverクエリを実行すると、次のようなエラーが表示されます

「「and」の近くで、条件が期待されるコンテキストで指定された非ブール型の式。」

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 に答える