通常,计算小时工资是一个简单的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/

10-09 01:48