这是一个两部分问题......首先我坚持逻辑,第二部分是格式化。
问题如下:显示所有工作和最高工资总额(工资+佣金) 为每个工作。 该表称为employee - 此处适用的列是作业,工资和佣金(工资和佣金都可能为空)。
select * from employee
where sum (SALARY + COMMISSION) =
(select max (SALARY + COMMISSION)
From employee)
group by job;
我不能为我的生活弄清楚如何在那里使用ISNULL。
您必须使用美元($)符号,逗号和两位小数(例如$ 1,234.56)显示最高总工资。按作业对输出进行排序。
我是否可以使用某些命令对其进行格式化 - 或者我可以简单地连接' $' ... 请帮忙。
表格的几行:
7839 | KING |主席|| 20-NOV-01 | 5000 || 50
7596 | JOST | VICE PRESIDENT | 7839 | 04-MAY-01 | 4500 || 50
7603 | CLARK | VICE PRESIDENT | 7839 | 12-JUN-01 | 4000 || 50
create statement:
CREATE TABLE employee
( EMPLOYEE_ID NUMBER(4) PRIMARY KEY,
EMPLOYEE_NAME VARCHAR2(20) NOT NULL,
JOB VARCHAR2(50) NOT NULL,
MANAGER_ID NUMBER(4),
HIRE_DATE DATE,
SALARY NUMBER(9, 2),
COMMISSION NUMBER(9, 2),
DEPARTMENT_ID NUMBER(4) REFERENCES department(DEPARTMENT_ID));
答案 0 :(得分:1)
select job, concat('$',format(max(total_pay),2))
from (select job, (coalesce(salary,0) + coalesce(commission,0)) total_pay
from employee) t1
group by job
order by job