表T_Sales(员工)字段如下:
字段 名称 类型 说明
Sales_ID 销售员ID NUMBER 主键
Team 销售小组 VARCHAR2
Name 姓名 VARCHAR2
Sex 性别 VARCHAR2
Birthday 出生日期 DATE
StartDate 入职日期 DATE
Sale_Under_Limit 销售额下限 NUMBER 要求用PLSQL创建一张视图,显示特定销售员信息,要求98年进入公司,年龄在20--30岁男性销售员。
视图的列包括:员工ID、姓名、性别、出生日期、入职日期、销售额下限。

解决方案 »

  1.   

    select Sales_ID as 员工ID,Name as 姓名,Sex as 性别,Birthday as 出生日期,
    StartDate as 入职日期,Sale_Under_Limit as 销售额下限
    from T_Sales
    where Sex ='男'--男性销售员
    and (sysdate-Birthday>20 and sysdate-Birthday<30) --年龄在20--30岁
    and to_char(StartDate,'yyyy')='1998'--98年进入公司
      

  2.   

    sysdate-Birthday>20 and sysdate-Birthday <30
    你这减出来能是20-30岁?
    减出来的都是天啊,要除以365才行啊
    或者这样
    to_char(sysdate,'yyyy')-to_char(birthday,'yyyy')+1
    如果要转成数字,就再to_number一下
      

  3.   

    trunc(months_between(sysdate,t.birthday)/12,0))
      

  4.   

    Calculating years (anniversaries) between dates in SQL.
    简要地说有返回timestamp的计算两个日期之间interval,把timestamp转换成year就行了.
    最精确莫过于 trunc(((to_number(to_char(date2, 'YYYYMMDD'))-to_number(to_char(date1, 'YYYYMMDD'))/10000)