我有幾個與員工和以美元為單位的銷售額相關的表格,我必須在此處按照以下說明進行操作:
公司希望查看所有訂單的每個銷售人員(推銷員)的總銷售額。假設一些在線訂單沒有涉及任何銷售人員。顯示該員工的銷售員全名和總銷售額。還包括所有訂單的總銷售額,無需銷售人員參與。排除名字以 y 結尾的銷售人員(如 Lily 或 Daisy)。僅包括負責銷售額超過 400 萬美元的銷售人員。對結果進行排序,以便首先顯示較大的銷售額。筆記; 不要使用LIKE運算子。
我已經撰寫了一個查詢陳述句,其中顯示了員工 ID 而不是員工姓名,這是正確回答此查詢問題所需的。在這種情況下,銷售員 ID“,” 是沒有姓名的銷售人員,例如。網上銷售因此沒有具體名稱。我如何做到這一點,以便我保留“,”,而是顯示員工的姓名而不是他們的 ID 這是宣告:
SELECT NVL(to_char(o.salesman_id), ',') AS "Emp Name", RPAD(to_char(SUM(i.quantity * i.unit_price),'$999,999,999.99'), 16, ' ') AS "Total Sale"
FROM (orders o
INNER JOIN order_items i ON i.order_id = o.order_id)
GROUP BY o.salesman_id
HAVING SUM(i.quantity * i.unit_price) > 4000000.00
ORDER BY 2 DESC;
這是查詢的輸出:
uj5u.com熱心網友回復:
看起來像外部加入我。
我沒有你的表格,所以我會用 Scott 的emp來說明。
SQL> select empno, ename from emp where deptno = 10;
EMPNO ENAME
---------- ----------
7782 CLARK
7839 KING
7934 MILLER
我將使用這些EMPNO值而不是您的 62 和 64(如螢屏截圖所示)。your_queryCTE 代表您當前擁有的輸出。然后將它與包含員工姓名的表(emp在我的情況下)外部連接,但留給,未知員工:
SQL> with
2 your_query (emp_name, total_sale) as
3 (select ',' , 100 from dual union all
4 select '7782', 200 from dual union all
5 select '7839', 300 from dual
6 )
7 select nvl(e.ename, q.emp_name) ename,
8 q.total_sale
9 from your_query q left join emp e on q.emp_name = to_char(e.empno);
ENAME TOTAL_SALE
---------- ----------
CLARK 200
KING 300
, 100
SQL>
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/314307.html
