数据库表的结构如下:create table  workers(id int primary key,name varchar(12),department varchar(12),salary int,releaseDay date);要求能够写出:一个月内发过两次或者两次以上工资的员工的发工资次数,发工资总数,发工资月份,员工姓名和部门的sql语句;
理论上是不可以写存储过程和不兼容的函数;

解决方案 »

  1.   


    select name 姓名,department 部门,trunc(date,'mm')发工资月份,count(*) 发工资次数,
    sum(salary) 发工资总数
    from workers
    group by name ,department ,trunc(date,'mm')
    having count(*)>=2
      

  2.   


    trunc是oracle的函数,在mysql下面是没用的,可不可以用标准的sql语句求出来!
      

  3.   

    仅取月份 to_char(releaseDay,'mm')
      

  4.   

    用to_char(date,'yyyymm')加上年份更好
      

  5.   


    你跑到ORACLE版块来问题,又没说要通用所有数据库,所以当然按ORACLE的方法回答喽
    同样楼上两位用TO_char ,mysql也没有的楼主,你没理解这道面试的要点在哪?
    要点不是在这种trunc和to_char函数的问题
    说真的,如果我是面试官,你这样回答,那就说明你没理解题目的用意
    有些题目不是说你非要答的非常正常,特别是你这种要求通用的SQL
    关键是看你解题的思路,这种出题目一般都 会说明是哪种数据库的