Advertisement
byu

derived class for current employees

byu
Sep 29th, 2014
245
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
T-SQL 1.88 KB | None | 0 0
  1. drop table terminate;
  2. drop table hire;
  3. drop table person;
  4. drop sequence s;
  5.  
  6. create sequence s start with 1000 increment by 1;
  7.  
  8. create table Person(
  9.   Personid int primary key default next value for s,
  10.   fname varchar(50)
  11. );
  12.  
  13. insert into person (fname) values('Joseph'),('Brigham'),('John'),('Wilfred'),('Lorenzo'),('Heber'),('Lyman'), ('');
  14.  
  15. create table hire(
  16. hireID int primary key default next value for s,
  17. HireDate datetime default getdate(),
  18. Startdate datetime,
  19. personID int references person,
  20. hirerID int references person
  21. );
  22.  
  23. insert into hire(startdate, personid, hirerid) values('4/6/1830', 1001, 1000);
  24. insert into hire(startdate, personid, hirerid) values('4/6/1830', 1002, 1000);
  25. insert into hire(startdate, personid, hirerid) values('4/6/1830', 1003, 1000);
  26. insert into hire(startdate, personid, hirerid) values('4/6/1830', 1004, 1000);
  27. insert into hire(startdate, personid, hirerid) values('4/6/1830', 1005, 1000);
  28. insert into hire(startdate, personid, hirerid) values('4/6/1830', 1006, 1000);
  29. insert into hire(startdate, personid, hirerid) values('4/6/1831', 1006, 1000);
  30.  
  31.  
  32. create table terminate(
  33. terminateID int primary key default next value for s,
  34. termDate datetime default getdate(),
  35. effectiveDate datetime,
  36. terminatorid int references person,
  37. hireID int references hire,
  38. type varchar(50)
  39. );
  40.  
  41. insert into terminate(effectiveDate, terminatorid, hireid, type) values(getdate(),1000,
  42. (select MIN(hireid) from hire where personid = (select personid from person where fname = 'Lyman')),
  43. 'Excommunication'
  44.  );
  45.  
  46.  
  47.  
  48.  
  49. select * from person;
  50. select * from  hire;
  51. select * from terminate;
  52.  
  53.  
  54. create view employee as
  55. select fname, hiredate, startdate, terminate.hireid
  56. from person
  57.   join hire on person.personid = hire.personid
  58.   left outer join terminate on terminate.hireid = hire.hireid
  59. where terminate.hireid  is null
  60. ;
  61.  
  62. select * from employee
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement