表的结构如下
table FEmployee
(
 Fid number 主键, Fname varchar2(20) 员工姓名, FDate timestamp 日期, FSalary number 薪水
);注意:薪水可能是月薪也可能是年薪,也可能是跨年份。用SQL语句求下列问题:问题1:求姓名为'张三'在本年的薪水总和。问题2:求每个员工的薪水年报表、月报表。

解决方案 »

  1.   

    1:select Fname ,sum(FSalary )
    from FEmployee
    where Fname ='张三'
    and FDate between trunc(sysdate,'yyyy') and  trunc(add_months(sysdate,12),'yyyy')
      

  2.   

    2:试试,记得是ROLLUP可以实现统计,要不然就是CUBE
    select Fname ,sum(FSalary )
    from FEmployee
    group by Fname rollup(trunc(sysdate,'yyyy'),trunc(sysdate,'MM'))
      

  3.   

    select Fname ,to_char(FSalary ,'YYYY'),sum(FSalary )
    from FEmployee 
    where Fname ='张三'
    group by to_char(FSalary ,'YYYY')