通常,计算小时工资是一个简单的sql语句。但是,正如下面的数据所示,salarywage列的值存储为年工资和小时工资。我需要按谁的小时工资最高来分类。不知怎么的,你需要把SalaryWage列成年薪,然后把这些值转换成小时工资。然后按小时工资排序。
这是我到目前为止的资料,你可以看到我的桌子等等的名字。
select EMPLOYEEID, LASTNAME || ', ' || FIRSTNAME As Employee_Name, HIREDATE, SALARYWAGE
from EMPLOYEE;
下载下面的excel文件
http://www.filedropper.com/book1_6
EmployeeID Employee_Name HIREDATE SALARYWAGE
100001 Manaugh, Jim 15-Mar-09 75500
100101 Rosner, Joanne 4-Apr-09 16.3
100103 Bush, Rita 30-Jan-09 85800
最佳答案
基于CASE
表达式的列可以方便地处理当前条件下的数据,并且它也可以在同一级别的ORDER BY
中引用,因此不需要将逻辑向下推到子选择中。也就是说,我和@clockwork muse一样关注使用一个列来存储两种不同的工资类型(年薪和小时薪)中的任何一种的合理性。我希望最初的问题是一个暂时的努力的一部分,以孤立和转换工资数据使用同一个工资期。
SELECT EMPLOYEEID, LASTNAME || ', ' || FIRSTNAME As Employee_Name,
HIREDATE, SALARYWAGE,
CASE WHEN (SALARYWAGE > 1000) THEN (salarywage / 2000)
ELSE salarywage END
AS hourlywage
FROM EMPLOYEE ORDER BY hourlywage DESC;
关于mysql - SQL从年薪和小时工资值中查找小时工资,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28511694/