在SQL中创建两个表之间的视图

时间:2016-04-22 12:16:00

标签: sql

SQL不是我最强的主题,而且我在创建视图方面遇到了困难。

我应该创建一个视图,指出哪些时间表存在争议。这些是未经批准且超过两周的时间表。数据应以以下格式显示:

TIMESHEET_ID               TIMESHEET             EMPLOYEE
15                         16-feb-15             Gareth Smith

我再一次没有做过SQL。此创建视图所需的表格如下:

timesheet

 Name                                      Null?    Type

 TIMESHEET_ID                              NOT NULL NUMBER(3)
 TIMESHEET_EMP                             NOT NULL NUMBER(3)
 TIMESHEET_WC                              NOT NULL DATE
 TIMESHEET_HOURS                                    NUMBER(2)
 TIMESHEET_OT                                       NUMBER(2)
 TIMESHEET_APPROVED                                 NUMBER(3)

employee

Name                                      Null?    Type

EMP_ID                                    NOT NULL NUMBER(3)
EMP_FIRSTNAME                             NOT NULL VARCHAR2(50)
EMP_SURNAME                                        VARCHAR2(50)
EMP_DEPARTMENT                                     NUMBER(2)
EMP_STREET                                         VARCHAR2(50)
EMP_TOWN                                           VARCHAR2(50)
EMP_DISTRICT                                       VARCHAR2(50)
EMP_GRADE                                          NUMBER(3)
EMP_SITE                                           VARCHAR2(30)
FUNTOM_GRADE                                       NUMBER(3)
EMPLOYEE_STATUS                                    VARCHAR2(10)
EMPLOYEE_START                                     DATE
EMPLOYEE_TERMINATION                               DATE

1 个答案:

答案 0 :(得分:1)

像这样。

使用TIMESHEET_EMP = EMP_ID加入两个表。检查日期是否至少14天。还要验证TIMESHEET_APPROVED - 但我不知道这里的值 - 所以替换???有你自己的价值。

create view viewname as
select t.TIMESHEET_ID, t.TIMESHEET, e.EMPLOYEE
from timesheet t
  join employee e ON t.TIMESHEET_EMP = e.EMP_ID
where t.TIMESHEET_WC <= current_date - '14' day
  and t.TIMESHEET_APPROVED = ???

由于没有指定dbms,我正在使用ANSI SQL日期比较。