zoukankan      html  css  js  c++  java
  • SQL-27 给出每个员工每年薪水涨幅超过5000的员工编号emp_no、薪水变更开始日期from_date以及薪水涨幅值salary_growth,并按照salary_growth逆序排列。 提示:在sqlite中获取datetime时间对应的年份函数为strftime('%Y', to_date)

    题目描述

    给出每个员工每年薪水涨幅超过5000的员工编号emp_no、薪水变更开始日期from_date以及薪水涨幅值salary_growth,并按照salary_growth逆序排列。

    提示:在sqlite中获取datetime时间对应的年份函数为strftime('%Y', to_date)


    CREATE TABLE `salaries` (
    `emp_no` int(11) NOT NULL,
    `salary` int(11) NOT NULL,
    `from_date` date NOT NULL,
    `to_date` date NOT NULL,
    PRIMARY KEY (`emp_no`,`from_date`));

    输入描述:

    输出描述:

    emp_nofrom_datesalary_growth
    10003 1995-12-03 24178
    10008 1998-03-11 20843
    10008 2000-03-10 5997

    SQL:

    select s2.emp_no,s2.from_date,(s2.salary-s1.salary)as salary_growth
    from salaries as s1,salaries as s2
    where s2.emp_no=s1.emp_no
    and salary_growth>5000
    and(strftime('%Y', s2.to_date)-strftime('%Y', s1.to_date)=1
    or strftime('%Y', s2.from_date)-strftime('%Y', s1.from_date)=1)
    order by salary_growth desc
    

      复用salaries 表 找出大于5000的 并且设定依据为每年

    两条薪水记录的from_date相同或to_date相同

  • 相关阅读:
    [AHOI2005]航线规划(树链剖分+时间倒流)
    洛谷4317花神的数论题(数位DP)
    天天爱跑步(NOIP2016)
    BZOJ4730 Alice和Bob又在玩游戏
    基础数论总结
    poj1845(数论)
    扩展(bsgs+卢卡斯)(bzoj3283)
    古代猪文(数论)
    BSGS
    构建之法阅读笔记3
  • 原文地址:https://www.cnblogs.com/kexiblog/p/10694024.html
Copyright © 2011-2022 走看看