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

时间:2016-04-24 23:21:10

标签: sql views

我在两个表之间创建视图时遇到了问题,因为我对SQL很陌生。我需要创建一个视图,显示过去14天内哪些员工作为顾问开展工作。视图的结果也应该显示这种布局:

14 day consultancy report 
-----------------------------------------------
Employee Helvin Paul worked for 6 hours for factory ltd chargeable £351

我假设你需要连接在一起的两个表是Employee表和Consultancy表。我将在下面显示两个,因为我在创建这些表时创建了一个文本文件:

create table Funtom_employee 
(
    emp_ID      Number(3)  primary key,    
    Emp_firstname   varchar2(50) not null,
    Emp_surname varchar2(50),
    Emp_department  Number(2) constraint FK_funtom_dept references 
    funtom_department,
    emp_street  varchar2(50),
    emp_town    varchar2(50),
    emp_district    varchar2(50),
    Emp_grade   Number(3) default 4 constraint chk_emp_grd check (Emp_grade between 1 and 9),
    Emp_site    varchar2(30) default 'LONDON',

    constraint  FK_funtom_grade funtom_grade references funtom_department
);

create table Funtom_consultancy
(
    consultancy_ID  Number(3) primary key,
    Consultancy_emp Number(3) constraint cns_emp references funtom_employee,
    Consultancy_hours   Number(4,2) constraint consultancy_check check (Consultancy_hours > 1),
    Consultancy_client  Number(3) references funtom_customer,
    Consultancy_date    DATE,
    Consultancy_activity    Number(3) references funtom_activity
);

感谢任何可以帮助您创建视图和时间的人

1 个答案:

答案 0 :(得分:0)

可以使用CREATE VIEW statement创建视图。下面列出了一个基于您的数据的示例。

CREATE VIEW consultancy_report as 
select
    Funtom_employee.Emp_firstname,
    Funtom_consultancy.Consultancy_date,
from
    Funtom_employee
    join Funtom_consultancy
        on Funtom_employee.emp_id = Funtom_consultancy.Consultancy_emp

您可以在查询的select子句中的任一表中添加所需的任何其他字段。我在两张桌子上都展示了一个字段。

如果您希望显示示例中列出的输出,则需要将concatenate几个字段作为一个字符串组合在一起。由于这感觉就像是一个家庭作业问题,我会把它作为锻炼给你。