ASSIGNMENT – 6
Tables:
Employee:
Project:
Project Allocation:
Code for table:
CREATE table employee(
empno int,
emp_name varchar(30),
emp_join_date date,
emp_status char(1),
Primary key(empno)
);
CREATE table project(
project_code varchar(5),
project_description varchar(50),
project_start_date date,
project_end_date date,
Primary key(project_code)
);
CREATE table project_allocation(
project_code varchar(5),
empno int,
emp_proj_alloc_date date,
emp_proj_release_date date,
PRIMARY KEY(project_code,empno)
);
INSERT into employee values(101 ,'Jhonny', '2005-07-01', 'C');
INSERT into employee values(116 ,'Nayak', '2005-08-16', 'C');
INSERT into employee values(202 ,'Meera', '2006-01-30', 'C');
INSERT into employee values(205 ,'Ravi', '2006-02-11', 'C');
INSERT into employee values(304 ,'Hari', '2006-11-25', 'P');
INSERT into employee values(307 ,'Nancy', '2007-01-15', 'P');
INSERT into employee values(403 ,'Nick', '2007-01-21', 'P');
INSERT into project values('P001', 'Environment Pollution', '2005-08-20' ,'2006-12-11');
INSERT into project values('P002', 'Learning Curve', '2006-02-01' ,'2006-03-15');
INSERT into project values('P003', 'Effects of IT', '2007-01-03' ,NULL);
INSERT into project_allocation values('P001', 101, '2005-08-01' ,'2006-12-11');
INSERT into project_allocation values('P001', 116, '2005-08-16' ,'2006-12-11');
INSERT into project_allocation values('P002', 202, '2006-02-01' ,'2007-01-14');
INSERT into project_allocation values('P002', 307, '2007-01-15' ,NULL);
INSERT into project_allocation values('P002', 205, '2006-02-11' ,NULL);
INSERT into project_allocation values('P003', 403, '2007-01-21' ,NULL);
INSERT into project_allocation values('P003', 304, '2007-01-03' ,NULL);
INSERT into project_allocation values('P003', 101, '2007-01-03' ,NULL);
INSERT into project_allocation values('P003', 116, '2007-01-03' ,NULL);
INSERT into project_allocation values('P003', 202, '2007-01-15' ,NULL);
Queries:
-- 1
SELECT project_description,emp_name from employee natural join project_allocation
natural join project;
-- 2
SELECT emp_name from employee where emp_status='C';
-- 3
select emp_name from employee where strftime('%m',emp_join_date)='11';
-- 4
select project_description from project where project_start_date>'2006-01-01';
-- 5
select emp_name from employee natural join project_allocation natural join project where
project_description='Effects of IT';
-- 6
select project_description from project where project_end_date is null;
-- 7
SELECT E.empno AS EMPLOYEE_NO, E.emp_name AS EMPLOYEE_NAME
FROM employee as E, project as P, project_allocation as R
WHERE (P.project_code = 'P002') AND (R.emp_proj_release_date IS not NULL) AND
(P.project_code = R.project_code) AND (R.empno = E.empno);
-- 8
SELECT (julianday(project_end_date)-julianday(project_start_date)) AS DAYS_TAKEN_P002
FROM project
WHERE project_code='P002';
-- 9
SELECT E.empno,E.emp_name,P.project_description,(CASE
WHEN R.emp_proj_release_date IS NOT NULL
THEN (julianday(R.emp_proj_release_date)-julianday(R.emp_proj_alloc_date))
ELSE (julianday('2009-01-01')-julianday(R.emp_proj_alloc_date))
END) AS DAYS_TAKEN
FROM employee as E natural join project_allocation as R natural join project as P;
-- 10
-- ALTER TABLE project add manager_id int;
-- 11
-- UPDATE project set manager_id=101 where project_code='P001';
-- UPDATE project set manager_id=202 where project_code='P002';
-- UPDATE project set manager_id=116 where project_code='P003';
-- 12
-- insert into project values("P004","Election Rage",'2007-03-01','2023-03-24',NULL);
-- 13
-- DELETE from project where project_description ='Effects of IT';
-- 14
-- select * from project where project_end_date <= project_start_date+interval 1 year;
-- 15
SELECT P.project_code, P.project_description, COUNT(FEB_WORK.empno) AS
NUMBER_OF_EMPLOYEES
FROM (
SELECT empno, project_code
FROM project_allocation
WHERE (emp_proj_alloc_date <= '2007-02-01') AND ((emp_proj_release_date IS NULL) OR
(emp_proj_release_date>='2007-02-28'))
) AS FEB_WORK, project AS P
WHERE (FEB_WORK.project_code = P.project_code) GROUP BY FEB_WORK.project_code;