2016-04-22 4 views
0

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

Шаг 1) сделайте простой выбор с соединением. Шаг 2) добавьте «два недели». Шаг 3) Используйте запрос с шага 2 в инструкции создания представления. – jarlh

+0

Вы не задали вопрос здесь. Пожалуйста, отредактируйте вопрос, чтобы показать нам, что вы пробовали, и дать нам конкретную проблему. – Lexi

+1

Кроме того, похоже, что вы переключили таблицы сотрудников и таблиц расписания и не смогли привязать эти 2 таблицы. –

ответ

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.