SQL查找两列总和的最大值

时间:2014-07-24 18:53:23

标签: mysql sql sum max isnull

这是一个两部分问题......首先我坚持逻辑,第二部分是格式化。

问题如下:显示所有工作和最高工资总额(工资+佣金) 为每个工作。 该表称为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));

1 个答案:

答案 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