https://wiki.cdot.senecacollege.ca/w/api.php?action=feedcontributions&user=Yujin.jeong&feedformat=atom
CDOT Wiki - User contributions [en]
2024-03-19T07:58:42Z
User contributions
MediaWiki 1.30.0
https://wiki.cdot.senecacollege.ca/w/index.php?title=J.Y.S&diff=51070
J.Y.S
2010-12-01T19:15:37Z
<p>Yujin.jeong: /* Display data from VIEW */</p>
<hr />
<div>This page is to efficiently manage our group assignments!<br />
== Member List == <br />
*[mailto:,,yjeong@learn.senecac.on.ca,?subject=dbs301 Email All]<br />
<br />
{| class="wikitable sortable" border="1" cellpadding="5"<br />
! First Name !! Last Name !! wiki id !! Learn e-mail !! Phone<br />
|-<br />
|[[User:Yujin.jeong | YuJin]]||Jeong||[[Special:Contributions/yujin.jeong | yujin.jeong]]||[mailto:yjeong@learn.senecac.on.ca?sujbect=dbs301 yjeong]|| 647 - 832 - 6771<br />
|-<br />
<br />
|-<br />
|Saad||Mohammad || saadism ||[mailto:smohammad8@learn.senecac.on.ca?subject=db301 smohammad8] ||(647) 894-7223<br />
|-<br />
<br />
|-<br />
|James|| || || ||<br />
|-<br />
|}<br />
<br />
=Assignment 3 (worth 9%)=<br />
==Due Date==<br />
Thursday, December 2nd, 3:00pm<br />
Printout of all TIC charts and DDL / DML statements<br />
<br />
==Solution==<br />
==== DDL Statements (CREATE TABLE) ====<br />
1. AREA<br />
<pre><br />
CREATE TABLE AREA<br />
(<br />
AreaID NUMBER(4) CONSTRAINT area_areaid_pk PRIMARY KEY,<br />
AreaName VARCHAR2(15) NOT NULL CONSTRAINT area_areaname_uk UNIQUE,<br />
ElmSchool VARCHAR2(40),<br />
MidSchool VARCHAR2(40),<br />
HighSchool VARCHAR2(40),<br />
Comments VARCHAR2(100)<br />
);<br />
</pre><br />
2. AGENCY<br />
<pre><br />
CREATE TABLE AGENCY<br />
(<br />
AgencyID NUMBER(4) CONSTRAINT agency_agencyid_pk PRIMARY KEY,<br />
AgencyName VARCHAR2(30) NOT NULL CONSTRAINT agency_agencyname_uk UNIQUE,<br />
AgencyPhone VARCHAR2(15) NOT NULL CONSTRAINT agency_agencyphone_uk UNIQUE<br />
);<br />
</pre><br />
3. PROPERTY<br />
<pre><br />
CREATE TABLE PROPERTY<br />
(<br />
PropertyID NUMBER(6),<br />
Street VARCHAR2(40) NOT NULL,<br />
City VARCHAR2(15) NOT NULL,<br />
Province CHAR(2) NOT NULL,<br />
PostalCode CHAR(6) NOT NULL,<br />
Bedrooms NUMBER(1) NOT NULL,<br />
Bathrooms NUMBER(1) NOT NULL,<br />
ListingPrice NUMBER(7) NOT NULL,<br />
AreaID NUMBER(4) NOT NULL,<br />
AgencyID NUMBER(4),<br />
CONSTRAINT property_propertyid_pk PRIMARY KEY(PropertyID),<br />
CONSTRAINT property_bedrooms_ck CHECK(Bedrooms BETWEEN 1 AND 9),<br />
CONSTRAINT property_bathrooms_ck CHECK(Bathrooms BETWEEN 1 AND 9),<br />
CONSTRAINT property_listingprice_ck CHECK(ListingPrice BETWEEN 1 AND 4999999),<br />
CONSTRAINT property_areaid_fk FOREIGN KEY(AreaID) REFERENCES AREA(AreaID)<br />
);<br />
</pre><br />
4. SINGLE<br />
<pre><br />
CREATE TABLE SINGLE<br />
(<br />
PropertyID NUMBER(6), <br />
LotSize NUMBER(8,2) NOT NULL,<br />
CONSTRAINT single_propertyID_pk PRIMARY KEY(PropertyID), <br />
CONSTRAINT single_propertyID_fk FOREIGN KEY(PropertyID) REFERENCES PROPERTY(PropertyID),<br />
CONSTRAINT single_lotsize_ck CHECK(LotSize > 0)<br />
);<br />
<br />
</pre><br />
5. CONDO<br />
<pre><br />
CREATE TABLE CONDO<br />
(<br />
PropertyID NUMBER(6),<br />
Fee NUMBER(8,2) NOT NULL, <br />
CONSTRAINT condo_propertyID_pk PRIMARY KEY(PropertyID),<br />
CONSTRAINT condo_propertyID_fk FOREIGN KEY(PropertyID) REFERENCES PROPERTY(PropertyID),<br />
CONSTRAINT condo_fee_ck CHECK(Fee > 0)<br />
);<br />
<br />
</pre><br />
6. OUTLET<br />
<pre><br />
CREATE TABLE OUTLET<br />
(<br />
OutletID NUMBER(4), <br />
OutletName VARCHAR2(20) NOT NULL,<br />
OutletPhone VARCHAR2(15) NOT NULL,<br />
OutletType CHAR(1) NOT NULL,<br />
CONSTRAINT outlet_outletid_pk PRIMARY KEY(OutletID),<br />
CONSTRAINT outlet_outlettype_ck CHECK(OutletType IN('N','M','W','F')),<br />
CONSTRAINT outlet_outletname_type_uk UNIQUE(OutletName, OutletType)<br />
);<br />
<br />
</pre><br />
7. ADVERTISEMENT<br />
<pre><br />
CREATE TABLE ADVERTISEMENT<br />
(<br />
PropertyID NUMBER(6),<br />
OutletID NUMBER(4),<br />
AdvDate DATE,<br />
AdvCost NUMBER(6) NOT NULL,<br />
CONSTRAINT ad_adid_pk PRIMARY KEY(PropertyID, OutletID),<br />
CONSTRAINT ad_propertyid_fk FOREIGN KEY(PropertyID) REFERENCES PROPERTY(PropertyID),<br />
CONSTRAINT ad_outletid_fk FOREIGN KEY(OutletID) REFERENCES OUTLET(OutletID),<br />
CONSTRAINT ad_advcost_ck CHECK(AdvCost > 0)<br />
);<br />
</pre><br />
<br />
Before Creating CLIENT table, you should rename the existing CLIENT table so that<br />
we can use that name. Execute following:<br />
<pre><br />
ALTER TABLE CLIENT RENAME TO CLIENT_2;<br />
</pre><br />
<br />
8. CLIENT<br />
<pre><br />
CREATE TABLE CLIENT<br />
(<br />
ClientID NUMBER(6),<br />
Fname VARCHAR2(15) NOT NULL,<br />
Lname VARCHAR2(15) NOT NULL,<br />
Phone VARCHAR2(15) NOT NULL,<br />
Email VARCHAR2(30),<br />
RefID NUMBER(6),<br />
CONSTRAINT client_clientid_pk PRIMARY KEY(ClientID),<br />
CONSTRAINT client_phone_uk UNIQUE(Phone),<br />
CONSTRAINT client_email_uk UNIQUE(Email),<br />
CONSTRAINT client_refid_fk FOREIGN KEY(RefID) REFERENCES CLIENT(ClientID)<br />
);<br />
</pre><br />
9. DEED<br />
<pre><br />
CREATE TABLE DEED<br />
(<br />
PropertyID NUMBER(6),<br />
SellerID NUMBER(6),<br />
OwnPct NUMBER(5,2) NOT NULL,<br />
BuyerID NUMBER(6),<br />
BuyPrice NUMBER(7),<br />
CONSTRAINT deed_deedid_pk PRIMARY KEY(PropertyID, SellerID),<br />
CONSTRAINT deed_propertyid_fk FOREIGN KEY(PropertyID) REFERENCES PROPERTY(PropertyID),<br />
CONSTRAINT deed_sellerid_fk FOREIGN KEY(SellerID) REFERENCES CLIENT(ClientID),<br />
CONSTRAINT deed_buyerid_fk FOREIGN KEY(BuyerID) REFERENCES CLIENT(ClientID),<br />
CONSTRAINT deed_ownpct_ck CHECK(OwnPct > 0 AND OwnPct <= 100),<br />
CONSTRAINT deed_buyprice_ck CHECK(BuyPrice BETWEEN 1 AND 4999999)<br />
);<br />
<br />
</pre><br />
<br />
==== DML Statements (INSERT INTO) ====<br />
<br />
1. AREA<BR><br />
<pre><br />
INSERT ALL<br />
INTO AREA VALUES(1001, 'Bayview Village', 'Adrienne Clarkson Public School', 'Amesbury Middle School', 'Bayview Secondary School', 'Upper middle class to upper class neighborhood in Toronto.')<br />
INTO AREA VALUES(3001,'Laurelwood', 'Elizabeth Ziegler Primary School','Waterloo Middle School','Saint David Catholic Secondary School','Close to University of Waterloo and many popular amenities.')<br />
INTO AREA VALUES(4001,'Silver Heights','Alison Park Primary School','Eastwood Middle School','King Edward Secondary School',null)<br />
INTO AREA VALUES(5001,'Kitsilano','Henry Hudson Elementary School','St George School','Kitsilano Secondary School','Very well-off area.')<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
<br />
2. AGENCY<BR><br />
<pre><br />
INSERT ALL<br />
INTO AGENCY VALUES(1055,'Sutton Group Regal Realty','416.875.9873')<br />
INTO AGENCY VALUES(3079,'MacDonald Realty','604.986.0231')<br />
INTO AGENCY VALUES(7024,'Royal LePage Groupe Newton','514.234.9283')<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
<br />
3. PROPERTY<BR><br />
<pre><br />
INSERT ALL<br />
INTO PROPERTY VALUES(134982,q'[27 King's College Circle]','Toronto','ON','M5S1A1',2,2,380000,1001,1055)<br />
INTO PROPERTY VALUES(149800,'17 Pleasant View Dr.','Toronto','ON','M2J2H1',3,2,470000,1001, null)<br />
INTO PROPERTY VALUES(152932,'17 Barberry Pl. #1313','Toronto','ON','M8W7V4',1,1,259888,1001, null)<br />
INTO PROPERTY VALUES(495820,'776 Laurelwood Dr.','Waterloo','ON','H3A2T5',2,2,295000,3001,3079)<br />
INTO PROPERTY VALUES(500211,'409 Kelso Cr.','Cambridge','ON','H3Y7S3',3,2,485000,4001, null)<br />
INTO PROPERTY VALUES(139204,'3043 Crown St.','Vancouver','BC','U3J3M6',5,3,1398000,5001,7024)<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
4. SINGLE<BR><br />
<pre><br />
INSERT ALL<br />
INTO SINGLE VALUES(134982,3716)<br />
INTO SINGLE VALUES(149800,1005)<br />
INTO SINGLE VALUES(139204,5400)<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
5. CONDO<BR><br />
<pre><br />
INSERT ALL<br />
INTO CONDO VALUES(152932,250)<br />
INTO CONDO VALUES(495820,320)<br />
INTO CONDO VALUES(500211,550)<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
6. OUTLET<BR><br />
<pre><br />
INSERT ALL<br />
INTO OUTLET VALUES(1000,'Toronto Star','416.923.1782','N')<br />
INTO OUTLET VALUES(2001,'Waterloo Living','519.098.9283','M')<br />
INTO OUTLET VALUES(8001,'Canadian Life','416.982.0192','W')<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
7. ADVERTISEMENT<BR><br />
<pre><br />
INSERT ALL<br />
INTO ADVERTISEMENT VALUES(134982,1000,'25-NOV-10',350)<br />
INTO ADVERTISEMENT VALUES(149800,1000,'27-NOV-10',250)<br />
INTO ADVERTISEMENT VALUES(495820,2001,'27-NOV-10',300)<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
8. CLIENT<BR><br />
<pre><br />
INSERT ALL<br />
INTO CLIENT VALUES(1010,'Andrew','Lee','647.978.0192','andrew11@hotmail.com', null)<br />
INTO CLIENT VALUES(1011,'Daniel','Smith','416.895.9762','dsmith@gmail.com',5010)<br />
INTO CLIENT VALUES(1012,'Olivia','Wilson','647.915.2738','oliviaorange@gmail.com', null)<br />
INTO CLIENT VALUES(1013,'Jayden','Martin','519.225.1928','jmartin@rogers.com', null)<br />
INTO CLIENT VALUES(1014,'Maria','Brown','416.182.0021','maria.brown@hotmail.com', null)<br />
INTO CLIENT VALUES(2010,'Ethan','Roy','226.289.0394','ethanrockstar@bell.com', null)<br />
INTO CLIENT VALUES(2011,'Sophia','Tremblay','647.297.2918','stremblay@gmail.com',5010)<br />
INTO CLIENT VALUES(3010,'Ryan','Wilson','604.837.1029','wilsonryan@gmail.com', null)<br />
INTO CLIENT VALUES(3012,'Luis','Jones','416.832.6771','luis7787@rogers.com', null)<br />
INTO CLIENT VALUES(5010,'Mary','Anderson','647.234.5690','andersonpink@gmail.com', null)<br />
INTO CLIENT VALUES(7010,'James','White','647.298.9182','james.white@bell.com',1010)<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
9. DEED<BR><br />
<pre><br />
INSERT ALL<br />
INTO DEED VALUES(149800,1010,75,5010,352300)<br />
INTO DEED VALUES(139204,1012,100,3010,1394000)<br />
INTO DEED VALUES(134982,2011,50,1014,200000)<br />
SELECT * FROM DUAL;<br />
</pre><br />
<br />
==== CREATE VIEW ====<br />
<pre><br />
CREATE VIEW PropAreaLocSeller_VU AS<br />
SELECT SUBSTR((ar.AreaName || ', ' || p.City || ', ' || p.Street || ', ' || p.PostalCode), 1, 60) "Property Location",<br />
TO_CHAR(p.ListingPrice,'$9,999,999') "Price", sgl.LotSize || ' sqft' "LotSize",<br />
s.Lname || ', ' || s.Fname "Full Name", s.phone "Phone", d.OwnPct "OwnPct", NVL(ag.AgencyName, 'No Agency') "Agency"<br />
FROM Property p<br />
JOIN Single sgl ON (p.PropertyID = sgl.PropertyID)<br />
JOIN Area ar ON (p.AreaID = ar.AreaID)<br />
LEFT OUTER JOIN Agency ag ON (p.AgencyID = ag.AgencyID)<br />
JOIN Deed d ON (p.PropertyID = d.PropertyID)<br />
JOIN Client s ON (d.SellerID = s.ClientID);<br />
</pre><br />
<br />
==== Display data from VIEW ====<br />
<pre><br />
<br />
SELECT *<br />
<br />
FROM PROPAREALOCSELLER_VU<br />
<br />
WHERE INSTR("Property Location", 'Bayview Village') !=0<br />
<br />
AND INSTR("Agency", 'Sutton') !=0;<br />
<br />
</pre><br />
<br />
=Assignment 1=<br />
==Due Date==<br />
Thursday, October 21st, 4:00pm<br />
Printout submission only( SELECT Statements + ALL outputs)<br />
==Description==<br />
[https://cs.senecac.on.ca/~nconkic/assign1.doc Assignment1]<br />
==Solution==<br />
<pre><br />
SQL> SELECT employee_id, RPAD(CONCAT(CONCAT(last_name, ', '),first_name), 25) "Full Name",<br />
<br />
2 job_id,<br />
<br />
3 TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
<br />
4 "Start Date"<br />
<br />
5 FROM employees<br />
<br />
6 WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
<br />
7 ORDER BY 4 DESC;<br />
<br />
<br />
<br />
EMPLOYEE_ID Full Name JOB_ID Start Date <br />
<br />
----------- ------------------------- ---------- ----------------------------------------- <br />
<br />
124 Mourgos, Kevin ST_MAN November First in the year 1999 <br />
<br />
178 Grant, Kimberely SA_REP May First in the year 1999 <br />
<br />
174 Abel, Ellen SA_REP May First in the year 1996 <br />
<br />
104 Ernst, Bruce IT_PROG May First in the year 1991 <br />
<br />
<br />
<br />
SQL> SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
<br />
2 || job_id || ' will have a new salary of $' || salary * 1.15 "Happy Employees"<br />
<br />
3 FROM employees<br />
<br />
4 WHERE salary BETWEEN 5000 AND 12000<br />
<br />
5 AND job_id IN ('IT_PROG', 'ST_CLERK')<br />
<br />
6 ORDER BY employee_id;<br />
<br />
<br />
<br />
Happy Employees <br />
<br />
----------------------------------------------------------------------------------------------------<br />
<br />
Employee named Alexander Hunold who is IT_PROG will have a new salary of $10350 <br />
<br />
Employee named Bruce Ernst who is IT_PROG will have a new salary of $6900 <br />
<br />
<br />
<br />
SQL> SELECT last_name, salary, job_id,<br />
<br />
2 RPAD(NVL(TO_CHAR(manager_id), 'No Manager'), 10) "Manager #",<br />
<br />
3 LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
<br />
4 FROM employees<br />
<br />
5 WHERE (job_id LIKE 'MK%' OR manager_id IS NULL)<br />
<br />
6 AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
<br />
7 ORDER BY 2 DESC;<br />
<br />
<br />
<br />
LAST_NAME SALARY JOB_ID Manager # Total Income <br />
<br />
------------------------- ---------- ---------- ---------- ------------ <br />
<br />
King 24000 AD_PRES No Manager $288,000 <br />
<br />
Hartstein 13000 MK_MAN 100 $156,000 <br />
<br />
<br />
<br />
SQL> SELECT RPAD(CONCAT(CONCAT(first_name,' '),last_name), 25) "Employee", job_id,<br />
<br />
2 LPAD(TRIM(TO_CHAR(salary, '$999,999')), 12, '=') "Salary", department_name<br />
<br />
3 FROM employees e JOIN departments d<br />
<br />
4 ON (e.department_id = d.department_id)<br />
<br />
5 WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
<br />
6 AND salary <<br />
<br />
7 (SELECT MAX(salary)<br />
<br />
8 FROM employees<br />
<br />
9 WHERE SUBSTR(job_id, 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
<br />
10 ORDER BY 1;<br />
<br />
<br />
<br />
Employee JOB_ID Salary DEPARTMENT_NAME <br />
<br />
------------------------- ---------- ------------ ------------------------------ <br />
<br />
Eleni Zlotkey SA_MAN =====$10,500 Sales <br />
<br />
Jonathon Taylor SA_REP ======$8,600 Sales <br />
<br />
Pat Fay MK_REP ======$6,000 Marketing <br />
<br />
<br />
<br />
SQL><br />
<br />
SQL> SELECT last_name, salary, job_id<br />
<br />
2 FROM employees<br />
<br />
3 WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
<br />
4 AND salary ><br />
<br />
5 (SELECT MAX(salary)<br />
<br />
6 FROM employees<br />
<br />
7 JOIN departments USING (department_id)<br />
<br />
8 JOIN locations USING (location_id)<br />
<br />
9 WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
<br />
<br />
LAST_NAME SALARY JOB_ID <br />
<br />
------------------------- ---------- ---------- <br />
<br />
Kochhar 17000 AD_VP <br />
<br />
De Haan 17000 AD_VP <br />
<br />
<br />
<br />
SQL> SELECT last_name, first_name, job_id, hire_date<br />
<br />
2 FROM employees<br />
<br />
3 WHERE hire_date ><br />
<br />
4 (SELECT MAX(hire_date)<br />
<br />
5 FROM employees<br />
<br />
6 WHERE department_id =<br />
<br />
7 (SELECT department_id<br />
<br />
8 FROM departments<br />
<br />
9 WHERE UPPER(department_name) = 'IT'))<br />
<br />
10 AND (department_id !=<br />
<br />
11 (SELECT department_id<br />
<br />
12 FROM departments<br />
<br />
13 WHERE UPPER(department_name) = 'EXECUTIVE')<br />
<br />
14 OR department_id IS NULL)<br />
<br />
15 ORDER BY 4 DESC;<br />
<br />
<br />
<br />
LAST_NAME FIRST_NAME JOB_ID HIRE_DATE <br />
<br />
------------------------- -------------------- ---------- --------- <br />
<br />
Zlotkey Eleni SA_MAN 29-JAN-00 <br />
<br />
Mourgos Kevin ST_MAN 16-NOV-99 <br />
<br />
Grant Kimberely SA_REP 24-MAY-99 <br />
<br />
<br />
<br />
SQL> SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay",<br />
<br />
2 MIN(salary) "Lowest Dept/Job Pay"<br />
<br />
3 FROM employees<br />
<br />
4 WHERE UPPER(job_id) NOT LIKE '%VP'<br />
<br />
5 AND department_id NOT IN<br />
<br />
6 (SELECT department_id<br />
<br />
7 FROM departments<br />
<br />
8 WHERE UPPER(department_name) IN ('IT','SALES'))<br />
<br />
9 GROUP BY department_id, job_id<br />
<br />
10 HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
<br />
11 ORDER BY 1, 2;<br />
<br />
<br />
<br />
DEPARTMENT_ID JOB_ID Average Dept/Job Pay Lowest Dept/Job Pay <br />
<br />
------------- ---------- -------------------- ------------------- <br />
<br />
20 MK_MAN 13000 13000 <br />
<br />
20 MK_REP 6000 6000 <br />
<br />
50 ST_MAN 5800 5800 <br />
<br />
110 AC_ACCOUNT 8300 8300 <br />
<br />
110 AC_MGR 12000 12000 <br />
<br />
<br />
<br />
SQL> SELECT department_id, department_name,<br />
<br />
2 RPAD(TRIM(NVL(city, 'Not Assinged Yet')), 25, ' ') "City",<br />
<br />
3 COUNT(DISTINCT job_id) "# of Jobs"<br />
<br />
4 FROM employees<br />
<br />
5 RIGHT OUTER JOIN departments USING (department_id)<br />
<br />
6 LEFT OUTER JOIN locations USING (location_id)<br />
<br />
7 GROUP BY department_id, department_name, city;<br />
<br />
<br />
<br />
DEPARTMENT_ID DEPARTMENT_NAME City # of Jobs <br />
<br />
------------- ------------------------------ ------------------------- ---------- <br />
<br />
110 Accounting Seattle 2 <br />
<br />
50 Shipping South San Francisco 2 <br />
<br />
80 Sales Oxford 2 <br />
<br />
10 Administration Seattle 1 <br />
<br />
190 Contracting Seattle 0 <br />
<br />
90 Executive Seattle 2 <br />
<br />
20 Marketing Toronto 2 <br />
<br />
60 IT Southlake 1 <br />
<br />
<br />
<br />
8 rows selected.<br />
<br />
<br />
<br />
SQL> spool off<br />
</pre><br />
==SQL Statements==<br />
===1.===<br />
''YuJin''<br />
<pre><br />
SELECT employee_id, RPAD(CONCAT(CONCAT(last_name, ', '),first_name), 25) "Full Name",<br />
job_id,<br />
TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
"Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
ORDER BY 4 DESC;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT employee_id,<br />
SUBSTR(last_name ||' '|| first_name, 1, 25) "Full Name",<br />
job_id,<br />
TO_CHAR(hire_date,'fmMonth "First in the year" YYYY') "Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date,'fmMON') IN ('MAY','NOV')<br />
ORDER BY hire_date DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select employee_id "Emp#",<br />
(last_name ||', '|| first_name) "Full Name",<br />
job_id "Job",<br />
to_char(trunc(hire_date, 'MONTH'), 'FMMonth Ddspth "in the year"<br />
YYYY') "Start Date"<br />
from employees<br />
where to_char(hire_date, 'fmMonth') in ('May', 'November')<br />
order by hire_date desc;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT employee_id, SUBSTR(last_name ||' '|| first_name, 1, 25) "Full Name",<br />
job_id,<br />
TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
"Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
ORDER BY hire_date DESC;<br />
</pre><br />
<br />
===2.===<br />
''YuJin''<br />
<pre><br />
SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
|| job_id || ' will have a new salary of $' || salary * 1.15 "Happy Employees"<br />
FROM employees<br />
WHERE salary BETWEEN 5000 AND 12000<br />
AND job_id IN ('IT_PROG', 'ST_CLERK')<br />
ORDER BY employee_id;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT 'Employee named '||first_name||' '||last_name||' who is '||job_id||' will have a new salary of $'|| salary *1.15 "Happy Employees"<br />
FROM employees<br />
WHERE job_id IN ('IT_PROG','ST CLERK')<br />
AND (salary BETWEEN 5000 AND 12000)<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
Select ('Employee named ' || first_name ||' '|| last_name || ' who is ' || job_id || ' will have a new salary of ' || (salary*1.15)) "Happy Employees"<br />
From employees<br />
Where salary between 5000 and 12000<br />
And upper(job_id) in ('IT_PROG', 'ST_CLERK')<br />
order by employee_id;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
|| job_id || ' will have a new salary of ' || TO_CHAR(salary * 1.15, 'fm$999999') "Happy Employees"<br />
FROM employees<br />
WHERE salary BETWEEN 5000 AND 12000<br />
AND UPPER(job_id) IN ('IT_PROG', 'ST_CLERK')<br />
ORDER BY employee_id;<br />
</pre><br />
<br />
===3.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, salary, job_id,<br />
RPAD(NVL(TO_CHAR(manager_id), 'No Manager'), 10) "Manager #",<br />
LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
FROM employees<br />
WHERE (job_id LIKE 'MK%' OR manager_id IS NULL)<br />
AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
ORDER BY 2 DESC;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, salary, job_id, NVL(TO_CHAR(manager_id),'No Manager') Manager#,<br />
TO_CHAR(salary*12,'$999,999') "Total Income"<br />
FROM employees<br />
WHERE (manager_id IS NULL<br />
OR job_id LIKE 'MK%')<br />
AND ( salary* (NVL(commission_pct,0) + 1) + 1000 ) > 10000<br />
ORDER BY salary DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, salary, job_id, nvl(to_char(manager_id),'No Manager') Manager#,<br />
to_char(salary*12,'$999,999') "Total Income"<br />
from employees<br />
where (upper(job_id) like 'MK%' or manager_id IS NULL)<br />
and salary * (1 + nvl(commission_pct, 0)) + 1000 > 10000<br />
order by 2 desc;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT last_name, salary, job_id,<br />
SUBSTR(NVL(TO_CHAR(manager_id), 'No Manager'), 1, 10) "Manager #",<br />
LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
FROM employees<br />
WHERE (UPPER(job_id) LIKE 'MK%' OR manager_id IS NULL)<br />
AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
ORDER BY salary DESC;<br />
<br />
</pre><br />
<br />
===4.===<br />
''YuJin''<br />
<pre><br />
SELECT RPAD(CONCAT(CONCAT(first_name,' '),last_name), 25) "Employee", job_id,<br />
LPAD(TRIM(TO_CHAR(salary, '$999,999')), 12, '=') "Salary", department_name<br />
FROM employees e JOIN departments d<br />
ON (e.department_id = d.department_id)<br />
WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
AND salary <<br />
(SELECT MAX(salary)<br />
FROM employees<br />
WHERE SUBSTR(job_id, 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
ORDER BY 1;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT SUBSTR(first_name||' '||last_name, 25) Employee, job_id,<br />
LPAD(TO_CHAR(salary,'$99,999'), 12, '=') Salary, department_name<br />
FROM employees e JOIN departments d<br />
ON (d.department_id=e.department_id)<br />
WHERE salary < (SELECT MAX(salary)<br />
FROM employees<br />
WHERE UPPER(SUBSTR(job_id,4)) NOT IN ('VP', 'PRES', 'MAN', 'MGR')<br />
)<br />
AND UPPER(department_name) IN ('MARKETING','SALES')<br />
ORDER BY first_name, last_name<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select substr(first_name ||' '|| last_name) "Employee", job_id, to_char(salary, '$999,999', 12, '=') Salary, department_name<br />
from employees e join departments d<br />
on (e.department_id = d.department_id)<br />
where upper(department_name) in ('MARKETING', 'SALES')<br />
and salary < (select max(salary)<br />
from employees<br />
where substr(job_id,4) not in ('PRES','VP','MAN','MGR'))<br />
order by "Employee";<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT SUBSTR(first_name ||' '|| last_name, 1, 25) "Employee", job_id,<br />
LPAD(TO_CHAR(salary, 'fm$999,999'), 12, '=') "Salary", department_name<br />
FROM employees e JOIN departments d<br />
ON (e.department_id = d.department_id)<br />
WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
AND salary <<br />
(SELECT MAX(salary)<br />
FROM employees<br />
WHERE SUBSTR(UPPER(job_id), 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
ORDER BY 1;<br />
</pre><br />
<br />
===5.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
AND salary ><br />
(SELECT MAX(salary)<br />
FROM employees<br />
JOIN departments USING (department_id)<br />
JOIN locations USING (location_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE salary > (SELECT MAX(salary)<br />
FROM locations JOIN departments<br />
USING (location_id)<br />
JOIN employees<br />
USING (department_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD')<br />
)<br />
AND UPPER(job_id) NOT LIKE '%PRES'<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, salary, job_id<br />
from employees<br />
where salary > (select max(salary)<br />
from employees join departments<br />
using (department_id)<br />
join locations<br />
using (location_id)<br />
where upper(city) in ('TORONTO','OXFORD'))<br />
and upper(job_id) not like '%PRES'<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
AND salary ><br />
(SELECT MAX(salary)<br />
FROM employees<br />
JOIN departments USING (department_id)<br />
JOIN locations USING (location_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
</pre><br />
<br />
===6.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, first_name, job_id, hire_date<br />
FROM employees<br />
WHERE hire_date ><br />
(SELECT MAX(hire_date)<br />
FROM employees<br />
WHERE department_id =<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'IT'))<br />
AND (department_id !=<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'EXECUTIVE')<br />
OR department_id IS NULL)<br />
ORDER BY 4 DESC;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, first_name, job_id, hire_date<br />
FROM employees e<br />
WHERE hire_date > (SELECT MAX(hire_date)<br />
FROM employees<br />
WHERE department_id = (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'IT'<br />
)<br />
)<br />
AND (department_id <> (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) ='EXECUTIVE')<br />
OR department_id IS NULL)<br />
ORDER BY hire_date DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, first_name, job_id, hire_date<br />
from employees<br />
where hire_date > (select max(hire_date)<br />
from employees<br />
where department_id = (select department_id<br />
from departments<br />
where upper(department_name) = 'IT'))<br />
and (department_id != (select department_id<br />
from departments<br />
where upper(department_name) = 'EXECUTIVE')<br />
or department_id IS NULL)<br />
order by hire_date desc;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT last_name, first_name, job_id, hire_date<br />
FROM employees<br />
WHERE hire_date ><br />
(SELECT MAX(hire_date)<br />
FROM employees<br />
WHERE department_id =<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'IT'))<br />
AND (department_id !=<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'EXECUTIVE')<br />
OR department_id IS NULL)<br />
ORDER BY hire_date DESC;<br />
</pre><br />
<br />
===7.===<br />
''YuJin''<br />
<pre><br />
SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay",<br />
MIN(salary) "Lowest Dept/Job Pay"<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%VP'<br />
AND department_id NOT IN<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) IN ('IT','SALES'))<br />
GROUP BY department_id, job_id<br />
HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
ORDER BY 1, 2;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay", MIN(salary) "Lowest Dept/Job Pay"<br />
FROM employees<br />
WHERE department_id <> ALL (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) IN ('IT','SALES')<br />
)<br />
AND job_id NOT LIKE '%VP'<br />
GROUP BY department_id, job_id<br />
HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
ORDER BY department_id, job_id<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select department_id, job_id, avg(salary) "Average Dept/Job Pay", min(salary) "Lowest Dept/Job Pay"<br />
from employees<br />
where upper(job_id) not like '%VP'<br />
and department_id != all(select department_id<br />
from departments<br />
where upper(department_name) in ('IT','SALES'))<br />
group by department_id, job_id<br />
having min(salary) between 5000 and 15000<br />
order by department_id, job_id<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay",<br />
MIN(salary) "Lowest Dept/Job Pay"<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%VP'<br />
AND department_id != ALL<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) IN ('IT','SALES'))<br />
GROUP BY department_id, job_id<br />
HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
ORDER BY department_id, job_id;<br />
</pre><br />
<br />
===8.===<br />
''YuJin''<br />
<pre><br />
SELECT department_id, department_name,<br />
RPAD(TRIM(NVL(city, 'Not Assinged Yet')), 25, ' ') "City",<br />
COUNT(DISTINCT job_id) "# of Jobs"<br />
FROM employees<br />
RIGHT OUTER JOIN departments USING (department_id)<br />
LEFT OUTER JOIN locations USING (location_id)<br />
GROUP BY department_id, department_name, city;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT department_id, department_name, SUBSTR(NVL(city,'Not Assigned Yet'),1,25) City,<br />
COUNT(DISTINCT job_id) "# of Jobs"<br />
FROM locations l RIGHT OUTER JOIN departments d<br />
USING (location_id)<br />
LEFT OUTER JOIN employees e<br />
USING (department_id)<br />
GROUP BY department_id, department_name, city<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select department_id, department_name, substr(nvl(city,'Not Assigned Yet'),1,25) City,<br />
count(distinct job_id) "# of Jobs"<br />
from employees right outer join departments<br />
using (department_id)<br />
left outer join locations<br />
using (location_id)<br />
group by department_id, department_name, city<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT department_id, department_name,<br />
SUBSTR(NVL(city, 'Not Assinged Yet'),1, 25) "City",<br />
COUNT(DISTINCT job_id) "# of Jobs"<br />
FROM employees<br />
RIGHT OUTER JOIN departments USING (department_id)<br />
LEFT OUTER JOIN locations USING (location_id)<br />
GROUP BY department_id, department_name, city;<br />
<br />
</pre></div>
Yujin.jeong
https://wiki.cdot.senecacollege.ca/w/index.php?title=J.Y.S&diff=51069
J.Y.S
2010-12-01T19:15:28Z
<p>Yujin.jeong: /* CREATE VIEW */</p>
<hr />
<div>This page is to efficiently manage our group assignments!<br />
== Member List == <br />
*[mailto:,,yjeong@learn.senecac.on.ca,?subject=dbs301 Email All]<br />
<br />
{| class="wikitable sortable" border="1" cellpadding="5"<br />
! First Name !! Last Name !! wiki id !! Learn e-mail !! Phone<br />
|-<br />
|[[User:Yujin.jeong | YuJin]]||Jeong||[[Special:Contributions/yujin.jeong | yujin.jeong]]||[mailto:yjeong@learn.senecac.on.ca?sujbect=dbs301 yjeong]|| 647 - 832 - 6771<br />
|-<br />
<br />
|-<br />
|Saad||Mohammad || saadism ||[mailto:smohammad8@learn.senecac.on.ca?subject=db301 smohammad8] ||(647) 894-7223<br />
|-<br />
<br />
|-<br />
|James|| || || ||<br />
|-<br />
|}<br />
<br />
=Assignment 3 (worth 9%)=<br />
==Due Date==<br />
Thursday, December 2nd, 3:00pm<br />
Printout of all TIC charts and DDL / DML statements<br />
<br />
==Solution==<br />
==== DDL Statements (CREATE TABLE) ====<br />
1. AREA<br />
<pre><br />
CREATE TABLE AREA<br />
(<br />
AreaID NUMBER(4) CONSTRAINT area_areaid_pk PRIMARY KEY,<br />
AreaName VARCHAR2(15) NOT NULL CONSTRAINT area_areaname_uk UNIQUE,<br />
ElmSchool VARCHAR2(40),<br />
MidSchool VARCHAR2(40),<br />
HighSchool VARCHAR2(40),<br />
Comments VARCHAR2(100)<br />
);<br />
</pre><br />
2. AGENCY<br />
<pre><br />
CREATE TABLE AGENCY<br />
(<br />
AgencyID NUMBER(4) CONSTRAINT agency_agencyid_pk PRIMARY KEY,<br />
AgencyName VARCHAR2(30) NOT NULL CONSTRAINT agency_agencyname_uk UNIQUE,<br />
AgencyPhone VARCHAR2(15) NOT NULL CONSTRAINT agency_agencyphone_uk UNIQUE<br />
);<br />
</pre><br />
3. PROPERTY<br />
<pre><br />
CREATE TABLE PROPERTY<br />
(<br />
PropertyID NUMBER(6),<br />
Street VARCHAR2(40) NOT NULL,<br />
City VARCHAR2(15) NOT NULL,<br />
Province CHAR(2) NOT NULL,<br />
PostalCode CHAR(6) NOT NULL,<br />
Bedrooms NUMBER(1) NOT NULL,<br />
Bathrooms NUMBER(1) NOT NULL,<br />
ListingPrice NUMBER(7) NOT NULL,<br />
AreaID NUMBER(4) NOT NULL,<br />
AgencyID NUMBER(4),<br />
CONSTRAINT property_propertyid_pk PRIMARY KEY(PropertyID),<br />
CONSTRAINT property_bedrooms_ck CHECK(Bedrooms BETWEEN 1 AND 9),<br />
CONSTRAINT property_bathrooms_ck CHECK(Bathrooms BETWEEN 1 AND 9),<br />
CONSTRAINT property_listingprice_ck CHECK(ListingPrice BETWEEN 1 AND 4999999),<br />
CONSTRAINT property_areaid_fk FOREIGN KEY(AreaID) REFERENCES AREA(AreaID)<br />
);<br />
</pre><br />
4. SINGLE<br />
<pre><br />
CREATE TABLE SINGLE<br />
(<br />
PropertyID NUMBER(6), <br />
LotSize NUMBER(8,2) NOT NULL,<br />
CONSTRAINT single_propertyID_pk PRIMARY KEY(PropertyID), <br />
CONSTRAINT single_propertyID_fk FOREIGN KEY(PropertyID) REFERENCES PROPERTY(PropertyID),<br />
CONSTRAINT single_lotsize_ck CHECK(LotSize > 0)<br />
);<br />
<br />
</pre><br />
5. CONDO<br />
<pre><br />
CREATE TABLE CONDO<br />
(<br />
PropertyID NUMBER(6),<br />
Fee NUMBER(8,2) NOT NULL, <br />
CONSTRAINT condo_propertyID_pk PRIMARY KEY(PropertyID),<br />
CONSTRAINT condo_propertyID_fk FOREIGN KEY(PropertyID) REFERENCES PROPERTY(PropertyID),<br />
CONSTRAINT condo_fee_ck CHECK(Fee > 0)<br />
);<br />
<br />
</pre><br />
6. OUTLET<br />
<pre><br />
CREATE TABLE OUTLET<br />
(<br />
OutletID NUMBER(4), <br />
OutletName VARCHAR2(20) NOT NULL,<br />
OutletPhone VARCHAR2(15) NOT NULL,<br />
OutletType CHAR(1) NOT NULL,<br />
CONSTRAINT outlet_outletid_pk PRIMARY KEY(OutletID),<br />
CONSTRAINT outlet_outlettype_ck CHECK(OutletType IN('N','M','W','F')),<br />
CONSTRAINT outlet_outletname_type_uk UNIQUE(OutletName, OutletType)<br />
);<br />
<br />
</pre><br />
7. ADVERTISEMENT<br />
<pre><br />
CREATE TABLE ADVERTISEMENT<br />
(<br />
PropertyID NUMBER(6),<br />
OutletID NUMBER(4),<br />
AdvDate DATE,<br />
AdvCost NUMBER(6) NOT NULL,<br />
CONSTRAINT ad_adid_pk PRIMARY KEY(PropertyID, OutletID),<br />
CONSTRAINT ad_propertyid_fk FOREIGN KEY(PropertyID) REFERENCES PROPERTY(PropertyID),<br />
CONSTRAINT ad_outletid_fk FOREIGN KEY(OutletID) REFERENCES OUTLET(OutletID),<br />
CONSTRAINT ad_advcost_ck CHECK(AdvCost > 0)<br />
);<br />
</pre><br />
<br />
Before Creating CLIENT table, you should rename the existing CLIENT table so that<br />
we can use that name. Execute following:<br />
<pre><br />
ALTER TABLE CLIENT RENAME TO CLIENT_2;<br />
</pre><br />
<br />
8. CLIENT<br />
<pre><br />
CREATE TABLE CLIENT<br />
(<br />
ClientID NUMBER(6),<br />
Fname VARCHAR2(15) NOT NULL,<br />
Lname VARCHAR2(15) NOT NULL,<br />
Phone VARCHAR2(15) NOT NULL,<br />
Email VARCHAR2(30),<br />
RefID NUMBER(6),<br />
CONSTRAINT client_clientid_pk PRIMARY KEY(ClientID),<br />
CONSTRAINT client_phone_uk UNIQUE(Phone),<br />
CONSTRAINT client_email_uk UNIQUE(Email),<br />
CONSTRAINT client_refid_fk FOREIGN KEY(RefID) REFERENCES CLIENT(ClientID)<br />
);<br />
</pre><br />
9. DEED<br />
<pre><br />
CREATE TABLE DEED<br />
(<br />
PropertyID NUMBER(6),<br />
SellerID NUMBER(6),<br />
OwnPct NUMBER(5,2) NOT NULL,<br />
BuyerID NUMBER(6),<br />
BuyPrice NUMBER(7),<br />
CONSTRAINT deed_deedid_pk PRIMARY KEY(PropertyID, SellerID),<br />
CONSTRAINT deed_propertyid_fk FOREIGN KEY(PropertyID) REFERENCES PROPERTY(PropertyID),<br />
CONSTRAINT deed_sellerid_fk FOREIGN KEY(SellerID) REFERENCES CLIENT(ClientID),<br />
CONSTRAINT deed_buyerid_fk FOREIGN KEY(BuyerID) REFERENCES CLIENT(ClientID),<br />
CONSTRAINT deed_ownpct_ck CHECK(OwnPct > 0 AND OwnPct <= 100),<br />
CONSTRAINT deed_buyprice_ck CHECK(BuyPrice BETWEEN 1 AND 4999999)<br />
);<br />
<br />
</pre><br />
<br />
==== DML Statements (INSERT INTO) ====<br />
<br />
1. AREA<BR><br />
<pre><br />
INSERT ALL<br />
INTO AREA VALUES(1001, 'Bayview Village', 'Adrienne Clarkson Public School', 'Amesbury Middle School', 'Bayview Secondary School', 'Upper middle class to upper class neighborhood in Toronto.')<br />
INTO AREA VALUES(3001,'Laurelwood', 'Elizabeth Ziegler Primary School','Waterloo Middle School','Saint David Catholic Secondary School','Close to University of Waterloo and many popular amenities.')<br />
INTO AREA VALUES(4001,'Silver Heights','Alison Park Primary School','Eastwood Middle School','King Edward Secondary School',null)<br />
INTO AREA VALUES(5001,'Kitsilano','Henry Hudson Elementary School','St George School','Kitsilano Secondary School','Very well-off area.')<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
<br />
2. AGENCY<BR><br />
<pre><br />
INSERT ALL<br />
INTO AGENCY VALUES(1055,'Sutton Group Regal Realty','416.875.9873')<br />
INTO AGENCY VALUES(3079,'MacDonald Realty','604.986.0231')<br />
INTO AGENCY VALUES(7024,'Royal LePage Groupe Newton','514.234.9283')<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
<br />
3. PROPERTY<BR><br />
<pre><br />
INSERT ALL<br />
INTO PROPERTY VALUES(134982,q'[27 King's College Circle]','Toronto','ON','M5S1A1',2,2,380000,1001,1055)<br />
INTO PROPERTY VALUES(149800,'17 Pleasant View Dr.','Toronto','ON','M2J2H1',3,2,470000,1001, null)<br />
INTO PROPERTY VALUES(152932,'17 Barberry Pl. #1313','Toronto','ON','M8W7V4',1,1,259888,1001, null)<br />
INTO PROPERTY VALUES(495820,'776 Laurelwood Dr.','Waterloo','ON','H3A2T5',2,2,295000,3001,3079)<br />
INTO PROPERTY VALUES(500211,'409 Kelso Cr.','Cambridge','ON','H3Y7S3',3,2,485000,4001, null)<br />
INTO PROPERTY VALUES(139204,'3043 Crown St.','Vancouver','BC','U3J3M6',5,3,1398000,5001,7024)<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
4. SINGLE<BR><br />
<pre><br />
INSERT ALL<br />
INTO SINGLE VALUES(134982,3716)<br />
INTO SINGLE VALUES(149800,1005)<br />
INTO SINGLE VALUES(139204,5400)<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
5. CONDO<BR><br />
<pre><br />
INSERT ALL<br />
INTO CONDO VALUES(152932,250)<br />
INTO CONDO VALUES(495820,320)<br />
INTO CONDO VALUES(500211,550)<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
6. OUTLET<BR><br />
<pre><br />
INSERT ALL<br />
INTO OUTLET VALUES(1000,'Toronto Star','416.923.1782','N')<br />
INTO OUTLET VALUES(2001,'Waterloo Living','519.098.9283','M')<br />
INTO OUTLET VALUES(8001,'Canadian Life','416.982.0192','W')<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
7. ADVERTISEMENT<BR><br />
<pre><br />
INSERT ALL<br />
INTO ADVERTISEMENT VALUES(134982,1000,'25-NOV-10',350)<br />
INTO ADVERTISEMENT VALUES(149800,1000,'27-NOV-10',250)<br />
INTO ADVERTISEMENT VALUES(495820,2001,'27-NOV-10',300)<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
8. CLIENT<BR><br />
<pre><br />
INSERT ALL<br />
INTO CLIENT VALUES(1010,'Andrew','Lee','647.978.0192','andrew11@hotmail.com', null)<br />
INTO CLIENT VALUES(1011,'Daniel','Smith','416.895.9762','dsmith@gmail.com',5010)<br />
INTO CLIENT VALUES(1012,'Olivia','Wilson','647.915.2738','oliviaorange@gmail.com', null)<br />
INTO CLIENT VALUES(1013,'Jayden','Martin','519.225.1928','jmartin@rogers.com', null)<br />
INTO CLIENT VALUES(1014,'Maria','Brown','416.182.0021','maria.brown@hotmail.com', null)<br />
INTO CLIENT VALUES(2010,'Ethan','Roy','226.289.0394','ethanrockstar@bell.com', null)<br />
INTO CLIENT VALUES(2011,'Sophia','Tremblay','647.297.2918','stremblay@gmail.com',5010)<br />
INTO CLIENT VALUES(3010,'Ryan','Wilson','604.837.1029','wilsonryan@gmail.com', null)<br />
INTO CLIENT VALUES(3012,'Luis','Jones','416.832.6771','luis7787@rogers.com', null)<br />
INTO CLIENT VALUES(5010,'Mary','Anderson','647.234.5690','andersonpink@gmail.com', null)<br />
INTO CLIENT VALUES(7010,'James','White','647.298.9182','james.white@bell.com',1010)<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
9. DEED<BR><br />
<pre><br />
INSERT ALL<br />
INTO DEED VALUES(149800,1010,75,5010,352300)<br />
INTO DEED VALUES(139204,1012,100,3010,1394000)<br />
INTO DEED VALUES(134982,2011,50,1014,200000)<br />
SELECT * FROM DUAL;<br />
</pre><br />
<br />
==== CREATE VIEW ====<br />
<pre><br />
CREATE VIEW PropAreaLocSeller_VU AS<br />
SELECT SUBSTR((ar.AreaName || ', ' || p.City || ', ' || p.Street || ', ' || p.PostalCode), 1, 60) "Property Location",<br />
TO_CHAR(p.ListingPrice,'$9,999,999') "Price", sgl.LotSize || ' sqft' "LotSize",<br />
s.Lname || ', ' || s.Fname "Full Name", s.phone "Phone", d.OwnPct "OwnPct", NVL(ag.AgencyName, 'No Agency') "Agency"<br />
FROM Property p<br />
JOIN Single sgl ON (p.PropertyID = sgl.PropertyID)<br />
JOIN Area ar ON (p.AreaID = ar.AreaID)<br />
LEFT OUTER JOIN Agency ag ON (p.AgencyID = ag.AgencyID)<br />
JOIN Deed d ON (p.PropertyID = d.PropertyID)<br />
JOIN Client s ON (d.SellerID = s.ClientID);<br />
</pre><br />
<br />
==== Display data from VIEW ====<br />
<pre><br />
Normal 0 false false false EN-US X-NONE X-NONE<br />
<br />
SELECT *<br />
<br />
FROM PROPAREALOCSELLER_VU<br />
<br />
WHERE INSTR("Property Location", 'Bayview Village') !=0<br />
<br />
AND INSTR("Agency", 'Sutton') !=0;<br />
<br />
</pre><br />
<br />
=Assignment 1=<br />
==Due Date==<br />
Thursday, October 21st, 4:00pm<br />
Printout submission only( SELECT Statements + ALL outputs)<br />
==Description==<br />
[https://cs.senecac.on.ca/~nconkic/assign1.doc Assignment1]<br />
==Solution==<br />
<pre><br />
SQL> SELECT employee_id, RPAD(CONCAT(CONCAT(last_name, ', '),first_name), 25) "Full Name",<br />
<br />
2 job_id,<br />
<br />
3 TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
<br />
4 "Start Date"<br />
<br />
5 FROM employees<br />
<br />
6 WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
<br />
7 ORDER BY 4 DESC;<br />
<br />
<br />
<br />
EMPLOYEE_ID Full Name JOB_ID Start Date <br />
<br />
----------- ------------------------- ---------- ----------------------------------------- <br />
<br />
124 Mourgos, Kevin ST_MAN November First in the year 1999 <br />
<br />
178 Grant, Kimberely SA_REP May First in the year 1999 <br />
<br />
174 Abel, Ellen SA_REP May First in the year 1996 <br />
<br />
104 Ernst, Bruce IT_PROG May First in the year 1991 <br />
<br />
<br />
<br />
SQL> SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
<br />
2 || job_id || ' will have a new salary of $' || salary * 1.15 "Happy Employees"<br />
<br />
3 FROM employees<br />
<br />
4 WHERE salary BETWEEN 5000 AND 12000<br />
<br />
5 AND job_id IN ('IT_PROG', 'ST_CLERK')<br />
<br />
6 ORDER BY employee_id;<br />
<br />
<br />
<br />
Happy Employees <br />
<br />
----------------------------------------------------------------------------------------------------<br />
<br />
Employee named Alexander Hunold who is IT_PROG will have a new salary of $10350 <br />
<br />
Employee named Bruce Ernst who is IT_PROG will have a new salary of $6900 <br />
<br />
<br />
<br />
SQL> SELECT last_name, salary, job_id,<br />
<br />
2 RPAD(NVL(TO_CHAR(manager_id), 'No Manager'), 10) "Manager #",<br />
<br />
3 LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
<br />
4 FROM employees<br />
<br />
5 WHERE (job_id LIKE 'MK%' OR manager_id IS NULL)<br />
<br />
6 AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
<br />
7 ORDER BY 2 DESC;<br />
<br />
<br />
<br />
LAST_NAME SALARY JOB_ID Manager # Total Income <br />
<br />
------------------------- ---------- ---------- ---------- ------------ <br />
<br />
King 24000 AD_PRES No Manager $288,000 <br />
<br />
Hartstein 13000 MK_MAN 100 $156,000 <br />
<br />
<br />
<br />
SQL> SELECT RPAD(CONCAT(CONCAT(first_name,' '),last_name), 25) "Employee", job_id,<br />
<br />
2 LPAD(TRIM(TO_CHAR(salary, '$999,999')), 12, '=') "Salary", department_name<br />
<br />
3 FROM employees e JOIN departments d<br />
<br />
4 ON (e.department_id = d.department_id)<br />
<br />
5 WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
<br />
6 AND salary <<br />
<br />
7 (SELECT MAX(salary)<br />
<br />
8 FROM employees<br />
<br />
9 WHERE SUBSTR(job_id, 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
<br />
10 ORDER BY 1;<br />
<br />
<br />
<br />
Employee JOB_ID Salary DEPARTMENT_NAME <br />
<br />
------------------------- ---------- ------------ ------------------------------ <br />
<br />
Eleni Zlotkey SA_MAN =====$10,500 Sales <br />
<br />
Jonathon Taylor SA_REP ======$8,600 Sales <br />
<br />
Pat Fay MK_REP ======$6,000 Marketing <br />
<br />
<br />
<br />
SQL><br />
<br />
SQL> SELECT last_name, salary, job_id<br />
<br />
2 FROM employees<br />
<br />
3 WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
<br />
4 AND salary ><br />
<br />
5 (SELECT MAX(salary)<br />
<br />
6 FROM employees<br />
<br />
7 JOIN departments USING (department_id)<br />
<br />
8 JOIN locations USING (location_id)<br />
<br />
9 WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
<br />
<br />
LAST_NAME SALARY JOB_ID <br />
<br />
------------------------- ---------- ---------- <br />
<br />
Kochhar 17000 AD_VP <br />
<br />
De Haan 17000 AD_VP <br />
<br />
<br />
<br />
SQL> SELECT last_name, first_name, job_id, hire_date<br />
<br />
2 FROM employees<br />
<br />
3 WHERE hire_date ><br />
<br />
4 (SELECT MAX(hire_date)<br />
<br />
5 FROM employees<br />
<br />
6 WHERE department_id =<br />
<br />
7 (SELECT department_id<br />
<br />
8 FROM departments<br />
<br />
9 WHERE UPPER(department_name) = 'IT'))<br />
<br />
10 AND (department_id !=<br />
<br />
11 (SELECT department_id<br />
<br />
12 FROM departments<br />
<br />
13 WHERE UPPER(department_name) = 'EXECUTIVE')<br />
<br />
14 OR department_id IS NULL)<br />
<br />
15 ORDER BY 4 DESC;<br />
<br />
<br />
<br />
LAST_NAME FIRST_NAME JOB_ID HIRE_DATE <br />
<br />
------------------------- -------------------- ---------- --------- <br />
<br />
Zlotkey Eleni SA_MAN 29-JAN-00 <br />
<br />
Mourgos Kevin ST_MAN 16-NOV-99 <br />
<br />
Grant Kimberely SA_REP 24-MAY-99 <br />
<br />
<br />
<br />
SQL> SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay",<br />
<br />
2 MIN(salary) "Lowest Dept/Job Pay"<br />
<br />
3 FROM employees<br />
<br />
4 WHERE UPPER(job_id) NOT LIKE '%VP'<br />
<br />
5 AND department_id NOT IN<br />
<br />
6 (SELECT department_id<br />
<br />
7 FROM departments<br />
<br />
8 WHERE UPPER(department_name) IN ('IT','SALES'))<br />
<br />
9 GROUP BY department_id, job_id<br />
<br />
10 HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
<br />
11 ORDER BY 1, 2;<br />
<br />
<br />
<br />
DEPARTMENT_ID JOB_ID Average Dept/Job Pay Lowest Dept/Job Pay <br />
<br />
------------- ---------- -------------------- ------------------- <br />
<br />
20 MK_MAN 13000 13000 <br />
<br />
20 MK_REP 6000 6000 <br />
<br />
50 ST_MAN 5800 5800 <br />
<br />
110 AC_ACCOUNT 8300 8300 <br />
<br />
110 AC_MGR 12000 12000 <br />
<br />
<br />
<br />
SQL> SELECT department_id, department_name,<br />
<br />
2 RPAD(TRIM(NVL(city, 'Not Assinged Yet')), 25, ' ') "City",<br />
<br />
3 COUNT(DISTINCT job_id) "# of Jobs"<br />
<br />
4 FROM employees<br />
<br />
5 RIGHT OUTER JOIN departments USING (department_id)<br />
<br />
6 LEFT OUTER JOIN locations USING (location_id)<br />
<br />
7 GROUP BY department_id, department_name, city;<br />
<br />
<br />
<br />
DEPARTMENT_ID DEPARTMENT_NAME City # of Jobs <br />
<br />
------------- ------------------------------ ------------------------- ---------- <br />
<br />
110 Accounting Seattle 2 <br />
<br />
50 Shipping South San Francisco 2 <br />
<br />
80 Sales Oxford 2 <br />
<br />
10 Administration Seattle 1 <br />
<br />
190 Contracting Seattle 0 <br />
<br />
90 Executive Seattle 2 <br />
<br />
20 Marketing Toronto 2 <br />
<br />
60 IT Southlake 1 <br />
<br />
<br />
<br />
8 rows selected.<br />
<br />
<br />
<br />
SQL> spool off<br />
</pre><br />
==SQL Statements==<br />
===1.===<br />
''YuJin''<br />
<pre><br />
SELECT employee_id, RPAD(CONCAT(CONCAT(last_name, ', '),first_name), 25) "Full Name",<br />
job_id,<br />
TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
"Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
ORDER BY 4 DESC;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT employee_id,<br />
SUBSTR(last_name ||' '|| first_name, 1, 25) "Full Name",<br />
job_id,<br />
TO_CHAR(hire_date,'fmMonth "First in the year" YYYY') "Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date,'fmMON') IN ('MAY','NOV')<br />
ORDER BY hire_date DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select employee_id "Emp#",<br />
(last_name ||', '|| first_name) "Full Name",<br />
job_id "Job",<br />
to_char(trunc(hire_date, 'MONTH'), 'FMMonth Ddspth "in the year"<br />
YYYY') "Start Date"<br />
from employees<br />
where to_char(hire_date, 'fmMonth') in ('May', 'November')<br />
order by hire_date desc;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT employee_id, SUBSTR(last_name ||' '|| first_name, 1, 25) "Full Name",<br />
job_id,<br />
TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
"Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
ORDER BY hire_date DESC;<br />
</pre><br />
<br />
===2.===<br />
''YuJin''<br />
<pre><br />
SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
|| job_id || ' will have a new salary of $' || salary * 1.15 "Happy Employees"<br />
FROM employees<br />
WHERE salary BETWEEN 5000 AND 12000<br />
AND job_id IN ('IT_PROG', 'ST_CLERK')<br />
ORDER BY employee_id;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT 'Employee named '||first_name||' '||last_name||' who is '||job_id||' will have a new salary of $'|| salary *1.15 "Happy Employees"<br />
FROM employees<br />
WHERE job_id IN ('IT_PROG','ST CLERK')<br />
AND (salary BETWEEN 5000 AND 12000)<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
Select ('Employee named ' || first_name ||' '|| last_name || ' who is ' || job_id || ' will have a new salary of ' || (salary*1.15)) "Happy Employees"<br />
From employees<br />
Where salary between 5000 and 12000<br />
And upper(job_id) in ('IT_PROG', 'ST_CLERK')<br />
order by employee_id;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
|| job_id || ' will have a new salary of ' || TO_CHAR(salary * 1.15, 'fm$999999') "Happy Employees"<br />
FROM employees<br />
WHERE salary BETWEEN 5000 AND 12000<br />
AND UPPER(job_id) IN ('IT_PROG', 'ST_CLERK')<br />
ORDER BY employee_id;<br />
</pre><br />
<br />
===3.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, salary, job_id,<br />
RPAD(NVL(TO_CHAR(manager_id), 'No Manager'), 10) "Manager #",<br />
LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
FROM employees<br />
WHERE (job_id LIKE 'MK%' OR manager_id IS NULL)<br />
AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
ORDER BY 2 DESC;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, salary, job_id, NVL(TO_CHAR(manager_id),'No Manager') Manager#,<br />
TO_CHAR(salary*12,'$999,999') "Total Income"<br />
FROM employees<br />
WHERE (manager_id IS NULL<br />
OR job_id LIKE 'MK%')<br />
AND ( salary* (NVL(commission_pct,0) + 1) + 1000 ) > 10000<br />
ORDER BY salary DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, salary, job_id, nvl(to_char(manager_id),'No Manager') Manager#,<br />
to_char(salary*12,'$999,999') "Total Income"<br />
from employees<br />
where (upper(job_id) like 'MK%' or manager_id IS NULL)<br />
and salary * (1 + nvl(commission_pct, 0)) + 1000 > 10000<br />
order by 2 desc;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT last_name, salary, job_id,<br />
SUBSTR(NVL(TO_CHAR(manager_id), 'No Manager'), 1, 10) "Manager #",<br />
LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
FROM employees<br />
WHERE (UPPER(job_id) LIKE 'MK%' OR manager_id IS NULL)<br />
AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
ORDER BY salary DESC;<br />
<br />
</pre><br />
<br />
===4.===<br />
''YuJin''<br />
<pre><br />
SELECT RPAD(CONCAT(CONCAT(first_name,' '),last_name), 25) "Employee", job_id,<br />
LPAD(TRIM(TO_CHAR(salary, '$999,999')), 12, '=') "Salary", department_name<br />
FROM employees e JOIN departments d<br />
ON (e.department_id = d.department_id)<br />
WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
AND salary <<br />
(SELECT MAX(salary)<br />
FROM employees<br />
WHERE SUBSTR(job_id, 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
ORDER BY 1;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT SUBSTR(first_name||' '||last_name, 25) Employee, job_id,<br />
LPAD(TO_CHAR(salary,'$99,999'), 12, '=') Salary, department_name<br />
FROM employees e JOIN departments d<br />
ON (d.department_id=e.department_id)<br />
WHERE salary < (SELECT MAX(salary)<br />
FROM employees<br />
WHERE UPPER(SUBSTR(job_id,4)) NOT IN ('VP', 'PRES', 'MAN', 'MGR')<br />
)<br />
AND UPPER(department_name) IN ('MARKETING','SALES')<br />
ORDER BY first_name, last_name<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select substr(first_name ||' '|| last_name) "Employee", job_id, to_char(salary, '$999,999', 12, '=') Salary, department_name<br />
from employees e join departments d<br />
on (e.department_id = d.department_id)<br />
where upper(department_name) in ('MARKETING', 'SALES')<br />
and salary < (select max(salary)<br />
from employees<br />
where substr(job_id,4) not in ('PRES','VP','MAN','MGR'))<br />
order by "Employee";<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT SUBSTR(first_name ||' '|| last_name, 1, 25) "Employee", job_id,<br />
LPAD(TO_CHAR(salary, 'fm$999,999'), 12, '=') "Salary", department_name<br />
FROM employees e JOIN departments d<br />
ON (e.department_id = d.department_id)<br />
WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
AND salary <<br />
(SELECT MAX(salary)<br />
FROM employees<br />
WHERE SUBSTR(UPPER(job_id), 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
ORDER BY 1;<br />
</pre><br />
<br />
===5.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
AND salary ><br />
(SELECT MAX(salary)<br />
FROM employees<br />
JOIN departments USING (department_id)<br />
JOIN locations USING (location_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE salary > (SELECT MAX(salary)<br />
FROM locations JOIN departments<br />
USING (location_id)<br />
JOIN employees<br />
USING (department_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD')<br />
)<br />
AND UPPER(job_id) NOT LIKE '%PRES'<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, salary, job_id<br />
from employees<br />
where salary > (select max(salary)<br />
from employees join departments<br />
using (department_id)<br />
join locations<br />
using (location_id)<br />
where upper(city) in ('TORONTO','OXFORD'))<br />
and upper(job_id) not like '%PRES'<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
AND salary ><br />
(SELECT MAX(salary)<br />
FROM employees<br />
JOIN departments USING (department_id)<br />
JOIN locations USING (location_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
</pre><br />
<br />
===6.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, first_name, job_id, hire_date<br />
FROM employees<br />
WHERE hire_date ><br />
(SELECT MAX(hire_date)<br />
FROM employees<br />
WHERE department_id =<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'IT'))<br />
AND (department_id !=<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'EXECUTIVE')<br />
OR department_id IS NULL)<br />
ORDER BY 4 DESC;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, first_name, job_id, hire_date<br />
FROM employees e<br />
WHERE hire_date > (SELECT MAX(hire_date)<br />
FROM employees<br />
WHERE department_id = (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'IT'<br />
)<br />
)<br />
AND (department_id <> (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) ='EXECUTIVE')<br />
OR department_id IS NULL)<br />
ORDER BY hire_date DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, first_name, job_id, hire_date<br />
from employees<br />
where hire_date > (select max(hire_date)<br />
from employees<br />
where department_id = (select department_id<br />
from departments<br />
where upper(department_name) = 'IT'))<br />
and (department_id != (select department_id<br />
from departments<br />
where upper(department_name) = 'EXECUTIVE')<br />
or department_id IS NULL)<br />
order by hire_date desc;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT last_name, first_name, job_id, hire_date<br />
FROM employees<br />
WHERE hire_date ><br />
(SELECT MAX(hire_date)<br />
FROM employees<br />
WHERE department_id =<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'IT'))<br />
AND (department_id !=<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'EXECUTIVE')<br />
OR department_id IS NULL)<br />
ORDER BY hire_date DESC;<br />
</pre><br />
<br />
===7.===<br />
''YuJin''<br />
<pre><br />
SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay",<br />
MIN(salary) "Lowest Dept/Job Pay"<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%VP'<br />
AND department_id NOT IN<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) IN ('IT','SALES'))<br />
GROUP BY department_id, job_id<br />
HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
ORDER BY 1, 2;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay", MIN(salary) "Lowest Dept/Job Pay"<br />
FROM employees<br />
WHERE department_id <> ALL (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) IN ('IT','SALES')<br />
)<br />
AND job_id NOT LIKE '%VP'<br />
GROUP BY department_id, job_id<br />
HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
ORDER BY department_id, job_id<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select department_id, job_id, avg(salary) "Average Dept/Job Pay", min(salary) "Lowest Dept/Job Pay"<br />
from employees<br />
where upper(job_id) not like '%VP'<br />
and department_id != all(select department_id<br />
from departments<br />
where upper(department_name) in ('IT','SALES'))<br />
group by department_id, job_id<br />
having min(salary) between 5000 and 15000<br />
order by department_id, job_id<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay",<br />
MIN(salary) "Lowest Dept/Job Pay"<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%VP'<br />
AND department_id != ALL<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) IN ('IT','SALES'))<br />
GROUP BY department_id, job_id<br />
HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
ORDER BY department_id, job_id;<br />
</pre><br />
<br />
===8.===<br />
''YuJin''<br />
<pre><br />
SELECT department_id, department_name,<br />
RPAD(TRIM(NVL(city, 'Not Assinged Yet')), 25, ' ') "City",<br />
COUNT(DISTINCT job_id) "# of Jobs"<br />
FROM employees<br />
RIGHT OUTER JOIN departments USING (department_id)<br />
LEFT OUTER JOIN locations USING (location_id)<br />
GROUP BY department_id, department_name, city;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT department_id, department_name, SUBSTR(NVL(city,'Not Assigned Yet'),1,25) City,<br />
COUNT(DISTINCT job_id) "# of Jobs"<br />
FROM locations l RIGHT OUTER JOIN departments d<br />
USING (location_id)<br />
LEFT OUTER JOIN employees e<br />
USING (department_id)<br />
GROUP BY department_id, department_name, city<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select department_id, department_name, substr(nvl(city,'Not Assigned Yet'),1,25) City,<br />
count(distinct job_id) "# of Jobs"<br />
from employees right outer join departments<br />
using (department_id)<br />
left outer join locations<br />
using (location_id)<br />
group by department_id, department_name, city<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT department_id, department_name,<br />
SUBSTR(NVL(city, 'Not Assinged Yet'),1, 25) "City",<br />
COUNT(DISTINCT job_id) "# of Jobs"<br />
FROM employees<br />
RIGHT OUTER JOIN departments USING (department_id)<br />
LEFT OUTER JOIN locations USING (location_id)<br />
GROUP BY department_id, department_name, city;<br />
<br />
</pre></div>
Yujin.jeong
https://wiki.cdot.senecacollege.ca/w/index.php?title=J.Y.S&diff=51064
J.Y.S
2010-12-01T19:09:47Z
<p>Yujin.jeong: /* DML Statements (INSERT INTO) */</p>
<hr />
<div>This page is to efficiently manage our group assignments!<br />
== Member List == <br />
*[mailto:,,yjeong@learn.senecac.on.ca,?subject=dbs301 Email All]<br />
<br />
{| class="wikitable sortable" border="1" cellpadding="5"<br />
! First Name !! Last Name !! wiki id !! Learn e-mail !! Phone<br />
|-<br />
|[[User:Yujin.jeong | YuJin]]||Jeong||[[Special:Contributions/yujin.jeong | yujin.jeong]]||[mailto:yjeong@learn.senecac.on.ca?sujbect=dbs301 yjeong]|| 647 - 832 - 6771<br />
|-<br />
<br />
|-<br />
|Saad||Mohammad || saadism ||[mailto:smohammad8@learn.senecac.on.ca?subject=db301 smohammad8] ||(647) 894-7223<br />
|-<br />
<br />
|-<br />
|James|| || || ||<br />
|-<br />
|}<br />
<br />
=Assignment 3 (worth 9%)=<br />
==Due Date==<br />
Thursday, December 2nd, 3:00pm<br />
Printout of all TIC charts and DDL / DML statements<br />
<br />
==Solution==<br />
==== DDL Statements (CREATE TABLE) ====<br />
1. AREA<br />
<pre><br />
CREATE TABLE AREA<br />
(<br />
AreaID NUMBER(4) CONSTRAINT area_areaid_pk PRIMARY KEY,<br />
AreaName VARCHAR2(15) NOT NULL CONSTRAINT area_areaname_uk UNIQUE,<br />
ElmSchool VARCHAR2(40),<br />
MidSchool VARCHAR2(40),<br />
HighSchool VARCHAR2(40),<br />
Comments VARCHAR2(100)<br />
);<br />
</pre><br />
2. AGENCY<br />
<pre><br />
CREATE TABLE AGENCY<br />
(<br />
AgencyID NUMBER(4) CONSTRAINT agency_agencyid_pk PRIMARY KEY,<br />
AgencyName VARCHAR2(30) NOT NULL CONSTRAINT agency_agencyname_uk UNIQUE,<br />
AgencyPhone VARCHAR2(15) NOT NULL CONSTRAINT agency_agencyphone_uk UNIQUE<br />
);<br />
</pre><br />
3. PROPERTY<br />
<pre><br />
CREATE TABLE PROPERTY<br />
(<br />
PropertyID NUMBER(6),<br />
Street VARCHAR2(40) NOT NULL,<br />
City VARCHAR2(15) NOT NULL,<br />
Province CHAR(2) NOT NULL,<br />
PostalCode CHAR(6) NOT NULL,<br />
Bedrooms NUMBER(1) NOT NULL,<br />
Bathrooms NUMBER(1) NOT NULL,<br />
ListingPrice NUMBER(7) NOT NULL,<br />
AreaID NUMBER(4) NOT NULL,<br />
AgencyID NUMBER(4),<br />
CONSTRAINT property_propertyid_pk PRIMARY KEY(PropertyID),<br />
CONSTRAINT property_bedrooms_ck CHECK(Bedrooms BETWEEN 1 AND 9),<br />
CONSTRAINT property_bathrooms_ck CHECK(Bathrooms BETWEEN 1 AND 9),<br />
CONSTRAINT property_listingprice_ck CHECK(ListingPrice BETWEEN 1 AND 4999999),<br />
CONSTRAINT property_areaid_fk FOREIGN KEY(AreaID) REFERENCES AREA(AreaID)<br />
);<br />
</pre><br />
4. SINGLE<br />
<pre><br />
CREATE TABLE SINGLE<br />
(<br />
PropertyID NUMBER(6), <br />
LotSize NUMBER(8,2) NOT NULL,<br />
CONSTRAINT single_propertyID_pk PRIMARY KEY(PropertyID), <br />
CONSTRAINT single_propertyID_fk FOREIGN KEY(PropertyID) REFERENCES PROPERTY(PropertyID),<br />
CONSTRAINT single_lotsize_ck CHECK(LotSize > 0)<br />
);<br />
<br />
</pre><br />
5. CONDO<br />
<pre><br />
CREATE TABLE CONDO<br />
(<br />
PropertyID NUMBER(6),<br />
Fee NUMBER(8,2) NOT NULL, <br />
CONSTRAINT condo_propertyID_pk PRIMARY KEY(PropertyID),<br />
CONSTRAINT condo_propertyID_fk FOREIGN KEY(PropertyID) REFERENCES PROPERTY(PropertyID),<br />
CONSTRAINT condo_fee_ck CHECK(Fee > 0)<br />
);<br />
<br />
</pre><br />
6. OUTLET<br />
<pre><br />
CREATE TABLE OUTLET<br />
(<br />
OutletID NUMBER(4), <br />
OutletName VARCHAR2(20) NOT NULL,<br />
OutletPhone VARCHAR2(15) NOT NULL,<br />
OutletType CHAR(1) NOT NULL,<br />
CONSTRAINT outlet_outletid_pk PRIMARY KEY(OutletID),<br />
CONSTRAINT outlet_outlettype_ck CHECK(OutletType IN('N','M','W','F')),<br />
CONSTRAINT outlet_outletname_type_uk UNIQUE(OutletName, OutletType)<br />
);<br />
<br />
</pre><br />
7. ADVERTISEMENT<br />
<pre><br />
CREATE TABLE ADVERTISEMENT<br />
(<br />
PropertyID NUMBER(6),<br />
OutletID NUMBER(4),<br />
AdvDate DATE,<br />
AdvCost NUMBER(6) NOT NULL,<br />
CONSTRAINT ad_adid_pk PRIMARY KEY(PropertyID, OutletID),<br />
CONSTRAINT ad_propertyid_fk FOREIGN KEY(PropertyID) REFERENCES PROPERTY(PropertyID),<br />
CONSTRAINT ad_outletid_fk FOREIGN KEY(OutletID) REFERENCES OUTLET(OutletID),<br />
CONSTRAINT ad_advcost_ck CHECK(AdvCost > 0)<br />
);<br />
</pre><br />
<br />
Before Creating CLIENT table, you should rename the existing CLIENT table so that<br />
we can use that name. Execute following:<br />
<pre><br />
ALTER TABLE CLIENT RENAME TO CLIENT_2;<br />
</pre><br />
<br />
8. CLIENT<br />
<pre><br />
CREATE TABLE CLIENT<br />
(<br />
ClientID NUMBER(6),<br />
Fname VARCHAR2(15) NOT NULL,<br />
Lname VARCHAR2(15) NOT NULL,<br />
Phone VARCHAR2(15) NOT NULL,<br />
Email VARCHAR2(30),<br />
RefID NUMBER(6),<br />
CONSTRAINT client_clientid_pk PRIMARY KEY(ClientID),<br />
CONSTRAINT client_phone_uk UNIQUE(Phone),<br />
CONSTRAINT client_email_uk UNIQUE(Email),<br />
CONSTRAINT client_refid_fk FOREIGN KEY(RefID) REFERENCES CLIENT(ClientID)<br />
);<br />
</pre><br />
9. DEED<br />
<pre><br />
CREATE TABLE DEED<br />
(<br />
PropertyID NUMBER(6),<br />
SellerID NUMBER(6),<br />
OwnPct NUMBER(5,2) NOT NULL,<br />
BuyerID NUMBER(6),<br />
BuyPrice NUMBER(7),<br />
CONSTRAINT deed_deedid_pk PRIMARY KEY(PropertyID, SellerID),<br />
CONSTRAINT deed_propertyid_fk FOREIGN KEY(PropertyID) REFERENCES PROPERTY(PropertyID),<br />
CONSTRAINT deed_sellerid_fk FOREIGN KEY(SellerID) REFERENCES CLIENT(ClientID),<br />
CONSTRAINT deed_buyerid_fk FOREIGN KEY(BuyerID) REFERENCES CLIENT(ClientID),<br />
CONSTRAINT deed_ownpct_ck CHECK(OwnPct > 0 AND OwnPct <= 100),<br />
CONSTRAINT deed_buyprice_ck CHECK(BuyPrice BETWEEN 1 AND 4999999)<br />
);<br />
<br />
</pre><br />
<br />
==== DML Statements (INSERT INTO) ====<br />
<br />
1. AREA<BR><br />
<pre><br />
INSERT ALL<br />
INTO AREA VALUES(1001, 'Bayview Village', 'Adrienne Clarkson Public School', 'Amesbury Middle School', 'Bayview Secondary School', 'Upper middle class to upper class neighborhood in Toronto.')<br />
INTO AREA VALUES(3001,'Laurelwood', 'Elizabeth Ziegler Primary School','Waterloo Middle School','Saint David Catholic Secondary School','Close to University of Waterloo and many popular amenities.')<br />
INTO AREA VALUES(4001,'Silver Heights','Alison Park Primary School','Eastwood Middle School','King Edward Secondary School',null)<br />
INTO AREA VALUES(5001,'Kitsilano','Henry Hudson Elementary School','St George School','Kitsilano Secondary School','Very well-off area.')<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
<br />
2. AGENCY<BR><br />
<pre><br />
INSERT ALL<br />
INTO AGENCY VALUES(1055,'Sutton Group Regal Realty','416.875.9873')<br />
INTO AGENCY VALUES(3079,'MacDonald Realty','604.986.0231')<br />
INTO AGENCY VALUES(7024,'Royal LePage Groupe Newton','514.234.9283')<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
<br />
3. PROPERTY<BR><br />
<pre><br />
INSERT ALL<br />
INTO PROPERTY VALUES(134982,q'[27 King's College Circle]','Toronto','ON','M5S1A1',2,2,380000,1001,1055)<br />
INTO PROPERTY VALUES(149800,'17 Pleasant View Dr.','Toronto','ON','M2J2H1',3,2,470000,1001, null)<br />
INTO PROPERTY VALUES(152932,'17 Barberry Pl. #1313','Toronto','ON','M8W7V4',1,1,259888,1001, null)<br />
INTO PROPERTY VALUES(495820,'776 Laurelwood Dr.','Waterloo','ON','H3A2T5',2,2,295000,3001,3079)<br />
INTO PROPERTY VALUES(500211,'409 Kelso Cr.','Cambridge','ON','H3Y7S3',3,2,485000,4001, null)<br />
INTO PROPERTY VALUES(139204,'3043 Crown St.','Vancouver','BC','U3J3M6',5,3,1398000,5001,7024)<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
4. SINGLE<BR><br />
<pre><br />
INSERT ALL<br />
INTO SINGLE VALUES(134982,3716)<br />
INTO SINGLE VALUES(149800,1005)<br />
INTO SINGLE VALUES(139204,5400)<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
5. CONDO<BR><br />
<pre><br />
INSERT ALL<br />
INTO CONDO VALUES(152932,250)<br />
INTO CONDO VALUES(495820,320)<br />
INTO CONDO VALUES(500211,550)<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
6. OUTLET<BR><br />
<pre><br />
INSERT ALL<br />
INTO OUTLET VALUES(1000,'Toronto Star','416.923.1782','N')<br />
INTO OUTLET VALUES(2001,'Waterloo Living','519.098.9283','M')<br />
INTO OUTLET VALUES(8001,'Canadian Life','416.982.0192','W')<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
7. ADVERTISEMENT<BR><br />
<pre><br />
INSERT ALL<br />
INTO ADVERTISEMENT VALUES(134982,1000,'25-NOV-10',350)<br />
INTO ADVERTISEMENT VALUES(149800,1000,'27-NOV-10',250)<br />
INTO ADVERTISEMENT VALUES(495820,2001,'27-NOV-10',300)<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
8. CLIENT<BR><br />
<pre><br />
INSERT ALL<br />
INTO CLIENT VALUES(1010,'Andrew','Lee','647.978.0192','andrew11@hotmail.com', null)<br />
INTO CLIENT VALUES(1011,'Daniel','Smith','416.895.9762','dsmith@gmail.com',5010)<br />
INTO CLIENT VALUES(1012,'Olivia','Wilson','647.915.2738','oliviaorange@gmail.com', null)<br />
INTO CLIENT VALUES(1013,'Jayden','Martin','519.225.1928','jmartin@rogers.com', null)<br />
INTO CLIENT VALUES(1014,'Maria','Brown','416.182.0021','maria.brown@hotmail.com', null)<br />
INTO CLIENT VALUES(2010,'Ethan','Roy','226.289.0394','ethanrockstar@bell.com', null)<br />
INTO CLIENT VALUES(2011,'Sophia','Tremblay','647.297.2918','stremblay@gmail.com',5010)<br />
INTO CLIENT VALUES(3010,'Ryan','Wilson','604.837.1029','wilsonryan@gmail.com', null)<br />
INTO CLIENT VALUES(3012,'Luis','Jones','416.832.6771','luis7787@rogers.com', null)<br />
INTO CLIENT VALUES(5010,'Mary','Anderson','647.234.5690','andersonpink@gmail.com', null)<br />
INTO CLIENT VALUES(7010,'James','White','647.298.9182','james.white@bell.com',1010)<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
9. DEED<BR><br />
<pre><br />
INSERT ALL<br />
INTO DEED VALUES(149800,1010,75,5010,352300)<br />
INTO DEED VALUES(139204,1012,100,3010,1394000)<br />
INTO DEED VALUES(134982,2011,50,1014,200000)<br />
SELECT * FROM DUAL;<br />
</pre><br />
<br />
==== CREATE VIEW ====<br />
<pre><br />
CREATE VIEW PropAreaLocSeller_VU AS<br />
SELECT SUBSTR((ar.AreaName || ', ' || p.City || ', ' || p.Street || ', ' || p.PostalCode), 1, 60) "Property Location",<br />
TO_CHAR(p.ListingPrice,'$9,999,999') "Price", sgl.LotSize || ' sqft' "LotSize",<br />
s.Lname || ', ' || s.Fname "Full Name", s.phone "Phone", d.OwnPct "OwnPct", NVL(ag.AgencyName, 'No Agency') "Agency"<br />
FROM Property p<br />
JOIN Single sgl ON (p.PropertyID = sgl.PropertyID)<br />
JOIN Area ar ON (p.AreaID = ar.AreaID)<br />
LEFT OUTER JOIN Agency ag ON (p.AgencyID = ag.AgencyID)<br />
JOIN Deed d ON (p.PropertyID = d.PropertyID)<br />
JOIN Client s ON (d.SellerID = s.ClientID);<br />
</pre><br />
<br />
=Assignment 1=<br />
==Due Date==<br />
Thursday, October 21st, 4:00pm<br />
Printout submission only( SELECT Statements + ALL outputs)<br />
==Description==<br />
[https://cs.senecac.on.ca/~nconkic/assign1.doc Assignment1]<br />
==Solution==<br />
<pre><br />
SQL> SELECT employee_id, RPAD(CONCAT(CONCAT(last_name, ', '),first_name), 25) "Full Name",<br />
<br />
2 job_id,<br />
<br />
3 TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
<br />
4 "Start Date"<br />
<br />
5 FROM employees<br />
<br />
6 WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
<br />
7 ORDER BY 4 DESC;<br />
<br />
<br />
<br />
EMPLOYEE_ID Full Name JOB_ID Start Date <br />
<br />
----------- ------------------------- ---------- ----------------------------------------- <br />
<br />
124 Mourgos, Kevin ST_MAN November First in the year 1999 <br />
<br />
178 Grant, Kimberely SA_REP May First in the year 1999 <br />
<br />
174 Abel, Ellen SA_REP May First in the year 1996 <br />
<br />
104 Ernst, Bruce IT_PROG May First in the year 1991 <br />
<br />
<br />
<br />
SQL> SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
<br />
2 || job_id || ' will have a new salary of $' || salary * 1.15 "Happy Employees"<br />
<br />
3 FROM employees<br />
<br />
4 WHERE salary BETWEEN 5000 AND 12000<br />
<br />
5 AND job_id IN ('IT_PROG', 'ST_CLERK')<br />
<br />
6 ORDER BY employee_id;<br />
<br />
<br />
<br />
Happy Employees <br />
<br />
----------------------------------------------------------------------------------------------------<br />
<br />
Employee named Alexander Hunold who is IT_PROG will have a new salary of $10350 <br />
<br />
Employee named Bruce Ernst who is IT_PROG will have a new salary of $6900 <br />
<br />
<br />
<br />
SQL> SELECT last_name, salary, job_id,<br />
<br />
2 RPAD(NVL(TO_CHAR(manager_id), 'No Manager'), 10) "Manager #",<br />
<br />
3 LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
<br />
4 FROM employees<br />
<br />
5 WHERE (job_id LIKE 'MK%' OR manager_id IS NULL)<br />
<br />
6 AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
<br />
7 ORDER BY 2 DESC;<br />
<br />
<br />
<br />
LAST_NAME SALARY JOB_ID Manager # Total Income <br />
<br />
------------------------- ---------- ---------- ---------- ------------ <br />
<br />
King 24000 AD_PRES No Manager $288,000 <br />
<br />
Hartstein 13000 MK_MAN 100 $156,000 <br />
<br />
<br />
<br />
SQL> SELECT RPAD(CONCAT(CONCAT(first_name,' '),last_name), 25) "Employee", job_id,<br />
<br />
2 LPAD(TRIM(TO_CHAR(salary, '$999,999')), 12, '=') "Salary", department_name<br />
<br />
3 FROM employees e JOIN departments d<br />
<br />
4 ON (e.department_id = d.department_id)<br />
<br />
5 WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
<br />
6 AND salary <<br />
<br />
7 (SELECT MAX(salary)<br />
<br />
8 FROM employees<br />
<br />
9 WHERE SUBSTR(job_id, 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
<br />
10 ORDER BY 1;<br />
<br />
<br />
<br />
Employee JOB_ID Salary DEPARTMENT_NAME <br />
<br />
------------------------- ---------- ------------ ------------------------------ <br />
<br />
Eleni Zlotkey SA_MAN =====$10,500 Sales <br />
<br />
Jonathon Taylor SA_REP ======$8,600 Sales <br />
<br />
Pat Fay MK_REP ======$6,000 Marketing <br />
<br />
<br />
<br />
SQL><br />
<br />
SQL> SELECT last_name, salary, job_id<br />
<br />
2 FROM employees<br />
<br />
3 WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
<br />
4 AND salary ><br />
<br />
5 (SELECT MAX(salary)<br />
<br />
6 FROM employees<br />
<br />
7 JOIN departments USING (department_id)<br />
<br />
8 JOIN locations USING (location_id)<br />
<br />
9 WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
<br />
<br />
LAST_NAME SALARY JOB_ID <br />
<br />
------------------------- ---------- ---------- <br />
<br />
Kochhar 17000 AD_VP <br />
<br />
De Haan 17000 AD_VP <br />
<br />
<br />
<br />
SQL> SELECT last_name, first_name, job_id, hire_date<br />
<br />
2 FROM employees<br />
<br />
3 WHERE hire_date ><br />
<br />
4 (SELECT MAX(hire_date)<br />
<br />
5 FROM employees<br />
<br />
6 WHERE department_id =<br />
<br />
7 (SELECT department_id<br />
<br />
8 FROM departments<br />
<br />
9 WHERE UPPER(department_name) = 'IT'))<br />
<br />
10 AND (department_id !=<br />
<br />
11 (SELECT department_id<br />
<br />
12 FROM departments<br />
<br />
13 WHERE UPPER(department_name) = 'EXECUTIVE')<br />
<br />
14 OR department_id IS NULL)<br />
<br />
15 ORDER BY 4 DESC;<br />
<br />
<br />
<br />
LAST_NAME FIRST_NAME JOB_ID HIRE_DATE <br />
<br />
------------------------- -------------------- ---------- --------- <br />
<br />
Zlotkey Eleni SA_MAN 29-JAN-00 <br />
<br />
Mourgos Kevin ST_MAN 16-NOV-99 <br />
<br />
Grant Kimberely SA_REP 24-MAY-99 <br />
<br />
<br />
<br />
SQL> SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay",<br />
<br />
2 MIN(salary) "Lowest Dept/Job Pay"<br />
<br />
3 FROM employees<br />
<br />
4 WHERE UPPER(job_id) NOT LIKE '%VP'<br />
<br />
5 AND department_id NOT IN<br />
<br />
6 (SELECT department_id<br />
<br />
7 FROM departments<br />
<br />
8 WHERE UPPER(department_name) IN ('IT','SALES'))<br />
<br />
9 GROUP BY department_id, job_id<br />
<br />
10 HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
<br />
11 ORDER BY 1, 2;<br />
<br />
<br />
<br />
DEPARTMENT_ID JOB_ID Average Dept/Job Pay Lowest Dept/Job Pay <br />
<br />
------------- ---------- -------------------- ------------------- <br />
<br />
20 MK_MAN 13000 13000 <br />
<br />
20 MK_REP 6000 6000 <br />
<br />
50 ST_MAN 5800 5800 <br />
<br />
110 AC_ACCOUNT 8300 8300 <br />
<br />
110 AC_MGR 12000 12000 <br />
<br />
<br />
<br />
SQL> SELECT department_id, department_name,<br />
<br />
2 RPAD(TRIM(NVL(city, 'Not Assinged Yet')), 25, ' ') "City",<br />
<br />
3 COUNT(DISTINCT job_id) "# of Jobs"<br />
<br />
4 FROM employees<br />
<br />
5 RIGHT OUTER JOIN departments USING (department_id)<br />
<br />
6 LEFT OUTER JOIN locations USING (location_id)<br />
<br />
7 GROUP BY department_id, department_name, city;<br />
<br />
<br />
<br />
DEPARTMENT_ID DEPARTMENT_NAME City # of Jobs <br />
<br />
------------- ------------------------------ ------------------------- ---------- <br />
<br />
110 Accounting Seattle 2 <br />
<br />
50 Shipping South San Francisco 2 <br />
<br />
80 Sales Oxford 2 <br />
<br />
10 Administration Seattle 1 <br />
<br />
190 Contracting Seattle 0 <br />
<br />
90 Executive Seattle 2 <br />
<br />
20 Marketing Toronto 2 <br />
<br />
60 IT Southlake 1 <br />
<br />
<br />
<br />
8 rows selected.<br />
<br />
<br />
<br />
SQL> spool off<br />
</pre><br />
==SQL Statements==<br />
===1.===<br />
''YuJin''<br />
<pre><br />
SELECT employee_id, RPAD(CONCAT(CONCAT(last_name, ', '),first_name), 25) "Full Name",<br />
job_id,<br />
TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
"Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
ORDER BY 4 DESC;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT employee_id,<br />
SUBSTR(last_name ||' '|| first_name, 1, 25) "Full Name",<br />
job_id,<br />
TO_CHAR(hire_date,'fmMonth "First in the year" YYYY') "Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date,'fmMON') IN ('MAY','NOV')<br />
ORDER BY hire_date DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select employee_id "Emp#",<br />
(last_name ||', '|| first_name) "Full Name",<br />
job_id "Job",<br />
to_char(trunc(hire_date, 'MONTH'), 'FMMonth Ddspth "in the year"<br />
YYYY') "Start Date"<br />
from employees<br />
where to_char(hire_date, 'fmMonth') in ('May', 'November')<br />
order by hire_date desc;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT employee_id, SUBSTR(last_name ||' '|| first_name, 1, 25) "Full Name",<br />
job_id,<br />
TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
"Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
ORDER BY hire_date DESC;<br />
</pre><br />
<br />
===2.===<br />
''YuJin''<br />
<pre><br />
SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
|| job_id || ' will have a new salary of $' || salary * 1.15 "Happy Employees"<br />
FROM employees<br />
WHERE salary BETWEEN 5000 AND 12000<br />
AND job_id IN ('IT_PROG', 'ST_CLERK')<br />
ORDER BY employee_id;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT 'Employee named '||first_name||' '||last_name||' who is '||job_id||' will have a new salary of $'|| salary *1.15 "Happy Employees"<br />
FROM employees<br />
WHERE job_id IN ('IT_PROG','ST CLERK')<br />
AND (salary BETWEEN 5000 AND 12000)<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
Select ('Employee named ' || first_name ||' '|| last_name || ' who is ' || job_id || ' will have a new salary of ' || (salary*1.15)) "Happy Employees"<br />
From employees<br />
Where salary between 5000 and 12000<br />
And upper(job_id) in ('IT_PROG', 'ST_CLERK')<br />
order by employee_id;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
|| job_id || ' will have a new salary of ' || TO_CHAR(salary * 1.15, 'fm$999999') "Happy Employees"<br />
FROM employees<br />
WHERE salary BETWEEN 5000 AND 12000<br />
AND UPPER(job_id) IN ('IT_PROG', 'ST_CLERK')<br />
ORDER BY employee_id;<br />
</pre><br />
<br />
===3.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, salary, job_id,<br />
RPAD(NVL(TO_CHAR(manager_id), 'No Manager'), 10) "Manager #",<br />
LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
FROM employees<br />
WHERE (job_id LIKE 'MK%' OR manager_id IS NULL)<br />
AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
ORDER BY 2 DESC;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, salary, job_id, NVL(TO_CHAR(manager_id),'No Manager') Manager#,<br />
TO_CHAR(salary*12,'$999,999') "Total Income"<br />
FROM employees<br />
WHERE (manager_id IS NULL<br />
OR job_id LIKE 'MK%')<br />
AND ( salary* (NVL(commission_pct,0) + 1) + 1000 ) > 10000<br />
ORDER BY salary DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, salary, job_id, nvl(to_char(manager_id),'No Manager') Manager#,<br />
to_char(salary*12,'$999,999') "Total Income"<br />
from employees<br />
where (upper(job_id) like 'MK%' or manager_id IS NULL)<br />
and salary * (1 + nvl(commission_pct, 0)) + 1000 > 10000<br />
order by 2 desc;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT last_name, salary, job_id,<br />
SUBSTR(NVL(TO_CHAR(manager_id), 'No Manager'), 1, 10) "Manager #",<br />
LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
FROM employees<br />
WHERE (UPPER(job_id) LIKE 'MK%' OR manager_id IS NULL)<br />
AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
ORDER BY salary DESC;<br />
<br />
</pre><br />
<br />
===4.===<br />
''YuJin''<br />
<pre><br />
SELECT RPAD(CONCAT(CONCAT(first_name,' '),last_name), 25) "Employee", job_id,<br />
LPAD(TRIM(TO_CHAR(salary, '$999,999')), 12, '=') "Salary", department_name<br />
FROM employees e JOIN departments d<br />
ON (e.department_id = d.department_id)<br />
WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
AND salary <<br />
(SELECT MAX(salary)<br />
FROM employees<br />
WHERE SUBSTR(job_id, 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
ORDER BY 1;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT SUBSTR(first_name||' '||last_name, 25) Employee, job_id,<br />
LPAD(TO_CHAR(salary,'$99,999'), 12, '=') Salary, department_name<br />
FROM employees e JOIN departments d<br />
ON (d.department_id=e.department_id)<br />
WHERE salary < (SELECT MAX(salary)<br />
FROM employees<br />
WHERE UPPER(SUBSTR(job_id,4)) NOT IN ('VP', 'PRES', 'MAN', 'MGR')<br />
)<br />
AND UPPER(department_name) IN ('MARKETING','SALES')<br />
ORDER BY first_name, last_name<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select substr(first_name ||' '|| last_name) "Employee", job_id, to_char(salary, '$999,999', 12, '=') Salary, department_name<br />
from employees e join departments d<br />
on (e.department_id = d.department_id)<br />
where upper(department_name) in ('MARKETING', 'SALES')<br />
and salary < (select max(salary)<br />
from employees<br />
where substr(job_id,4) not in ('PRES','VP','MAN','MGR'))<br />
order by "Employee";<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT SUBSTR(first_name ||' '|| last_name, 1, 25) "Employee", job_id,<br />
LPAD(TO_CHAR(salary, 'fm$999,999'), 12, '=') "Salary", department_name<br />
FROM employees e JOIN departments d<br />
ON (e.department_id = d.department_id)<br />
WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
AND salary <<br />
(SELECT MAX(salary)<br />
FROM employees<br />
WHERE SUBSTR(UPPER(job_id), 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
ORDER BY 1;<br />
</pre><br />
<br />
===5.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
AND salary ><br />
(SELECT MAX(salary)<br />
FROM employees<br />
JOIN departments USING (department_id)<br />
JOIN locations USING (location_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE salary > (SELECT MAX(salary)<br />
FROM locations JOIN departments<br />
USING (location_id)<br />
JOIN employees<br />
USING (department_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD')<br />
)<br />
AND UPPER(job_id) NOT LIKE '%PRES'<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, salary, job_id<br />
from employees<br />
where salary > (select max(salary)<br />
from employees join departments<br />
using (department_id)<br />
join locations<br />
using (location_id)<br />
where upper(city) in ('TORONTO','OXFORD'))<br />
and upper(job_id) not like '%PRES'<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
AND salary ><br />
(SELECT MAX(salary)<br />
FROM employees<br />
JOIN departments USING (department_id)<br />
JOIN locations USING (location_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
</pre><br />
<br />
===6.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, first_name, job_id, hire_date<br />
FROM employees<br />
WHERE hire_date ><br />
(SELECT MAX(hire_date)<br />
FROM employees<br />
WHERE department_id =<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'IT'))<br />
AND (department_id !=<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'EXECUTIVE')<br />
OR department_id IS NULL)<br />
ORDER BY 4 DESC;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, first_name, job_id, hire_date<br />
FROM employees e<br />
WHERE hire_date > (SELECT MAX(hire_date)<br />
FROM employees<br />
WHERE department_id = (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'IT'<br />
)<br />
)<br />
AND (department_id <> (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) ='EXECUTIVE')<br />
OR department_id IS NULL)<br />
ORDER BY hire_date DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, first_name, job_id, hire_date<br />
from employees<br />
where hire_date > (select max(hire_date)<br />
from employees<br />
where department_id = (select department_id<br />
from departments<br />
where upper(department_name) = 'IT'))<br />
and (department_id != (select department_id<br />
from departments<br />
where upper(department_name) = 'EXECUTIVE')<br />
or department_id IS NULL)<br />
order by hire_date desc;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT last_name, first_name, job_id, hire_date<br />
FROM employees<br />
WHERE hire_date ><br />
(SELECT MAX(hire_date)<br />
FROM employees<br />
WHERE department_id =<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'IT'))<br />
AND (department_id !=<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'EXECUTIVE')<br />
OR department_id IS NULL)<br />
ORDER BY hire_date DESC;<br />
</pre><br />
<br />
===7.===<br />
''YuJin''<br />
<pre><br />
SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay",<br />
MIN(salary) "Lowest Dept/Job Pay"<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%VP'<br />
AND department_id NOT IN<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) IN ('IT','SALES'))<br />
GROUP BY department_id, job_id<br />
HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
ORDER BY 1, 2;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay", MIN(salary) "Lowest Dept/Job Pay"<br />
FROM employees<br />
WHERE department_id <> ALL (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) IN ('IT','SALES')<br />
)<br />
AND job_id NOT LIKE '%VP'<br />
GROUP BY department_id, job_id<br />
HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
ORDER BY department_id, job_id<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select department_id, job_id, avg(salary) "Average Dept/Job Pay", min(salary) "Lowest Dept/Job Pay"<br />
from employees<br />
where upper(job_id) not like '%VP'<br />
and department_id != all(select department_id<br />
from departments<br />
where upper(department_name) in ('IT','SALES'))<br />
group by department_id, job_id<br />
having min(salary) between 5000 and 15000<br />
order by department_id, job_id<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay",<br />
MIN(salary) "Lowest Dept/Job Pay"<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%VP'<br />
AND department_id != ALL<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) IN ('IT','SALES'))<br />
GROUP BY department_id, job_id<br />
HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
ORDER BY department_id, job_id;<br />
</pre><br />
<br />
===8.===<br />
''YuJin''<br />
<pre><br />
SELECT department_id, department_name,<br />
RPAD(TRIM(NVL(city, 'Not Assinged Yet')), 25, ' ') "City",<br />
COUNT(DISTINCT job_id) "# of Jobs"<br />
FROM employees<br />
RIGHT OUTER JOIN departments USING (department_id)<br />
LEFT OUTER JOIN locations USING (location_id)<br />
GROUP BY department_id, department_name, city;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT department_id, department_name, SUBSTR(NVL(city,'Not Assigned Yet'),1,25) City,<br />
COUNT(DISTINCT job_id) "# of Jobs"<br />
FROM locations l RIGHT OUTER JOIN departments d<br />
USING (location_id)<br />
LEFT OUTER JOIN employees e<br />
USING (department_id)<br />
GROUP BY department_id, department_name, city<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select department_id, department_name, substr(nvl(city,'Not Assigned Yet'),1,25) City,<br />
count(distinct job_id) "# of Jobs"<br />
from employees right outer join departments<br />
using (department_id)<br />
left outer join locations<br />
using (location_id)<br />
group by department_id, department_name, city<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT department_id, department_name,<br />
SUBSTR(NVL(city, 'Not Assinged Yet'),1, 25) "City",<br />
COUNT(DISTINCT job_id) "# of Jobs"<br />
FROM employees<br />
RIGHT OUTER JOIN departments USING (department_id)<br />
LEFT OUTER JOIN locations USING (location_id)<br />
GROUP BY department_id, department_name, city;<br />
<br />
</pre></div>
Yujin.jeong
https://wiki.cdot.senecacollege.ca/w/index.php?title=J.Y.S&diff=51051
J.Y.S
2010-12-01T17:10:45Z
<p>Yujin.jeong: /* DML Statements (INSERT INTO) */</p>
<hr />
<div>This page is to efficiently manage our group assignments!<br />
== Member List == <br />
*[mailto:,,yjeong@learn.senecac.on.ca,?subject=dbs301 Email All]<br />
<br />
{| class="wikitable sortable" border="1" cellpadding="5"<br />
! First Name !! Last Name !! wiki id !! Learn e-mail !! Phone<br />
|-<br />
|[[User:Yujin.jeong | YuJin]]||Jeong||[[Special:Contributions/yujin.jeong | yujin.jeong]]||[mailto:yjeong@learn.senecac.on.ca?sujbect=dbs301 yjeong]|| 647 - 832 - 6771<br />
|-<br />
<br />
|-<br />
|Saad||Mohammad || saadism ||[mailto:smohammad8@learn.senecac.on.ca?subject=db301 smohammad8] ||(647) 894-7223<br />
|-<br />
<br />
|-<br />
|James|| || || ||<br />
|-<br />
|}<br />
<br />
=Assignment 3 (worth 9%)=<br />
==Due Date==<br />
Thursday, December 2nd, 3:00pm<br />
Printout of all TIC charts and DDL / DML statements<br />
<br />
==Solution==<br />
==== DDL Statements (CREATE TABLE) ====<br />
1. AREA<br />
<pre><br />
CREATE TABLE AREA<br />
(<br />
AreaID NUMBER(4) CONSTRAINT area_areaid_pk PRIMARY KEY,<br />
AreaName VARCHAR2(15) NOT NULL CONSTRAINT area_areaname_uk UNIQUE,<br />
ElmSchool VARCHAR2(40),<br />
MidSchool VARCHAR2(40),<br />
HighSchool VARCHAR2(40),<br />
Comments VARCHAR2(100)<br />
);<br />
</pre><br />
2. AGENCY<br />
<pre><br />
CREATE TABLE AGENCY<br />
(<br />
AgencyID NUMBER(4) CONSTRAINT agency_agencyid_pk PRIMARY KEY,<br />
AgencyName VARCHAR2(30) NOT NULL CONSTRAINT agency_agencyname_uk UNIQUE,<br />
AgencyPhone VARCHAR2(15) NOT NULL CONSTRAINT agency_agencyphone_uk UNIQUE<br />
);<br />
</pre><br />
3. PROPERTY<br />
<pre><br />
CREATE TABLE PROPERTY<br />
(<br />
PropertyID NUMBER(6),<br />
Street VARCHAR2(40) NOT NULL,<br />
City VARCHAR2(15) NOT NULL,<br />
Province CHAR(2) NOT NULL,<br />
PostalCode CHAR(6) NOT NULL,<br />
Bedrooms NUMBER(1) NOT NULL,<br />
Bathrooms NUMBER(1) NOT NULL,<br />
ListingPrice NUMBER(7) NOT NULL,<br />
AreaID NUMBER(4) NOT NULL,<br />
AgencyID NUMBER(4),<br />
CONSTRAINT property_propertyid_pk PRIMARY KEY(PropertyID),<br />
CONSTRAINT property_bedrooms_ck CHECK(Bedrooms BETWEEN 1 AND 9),<br />
CONSTRAINT property_bathrooms_ck CHECK(Bathrooms BETWEEN 1 AND 9),<br />
CONSTRAINT property_listingprice_ck CHECK(ListingPrice BETWEEN 1 AND 4999999),<br />
CONSTRAINT property_areaid_fk FOREIGN KEY(AreaID) REFERENCES AREA(AreaID)<br />
);<br />
</pre><br />
4. SINGLE<br />
<pre><br />
CREATE TABLE SINGLE<br />
(<br />
PropertyID NUMBER(6), <br />
LotSize NUMBER(8,2) NOT NULL,<br />
CONSTRAINT single_propertyID_pk PRIMARY KEY(PropertyID), <br />
CONSTRAINT single_propertyID_fk FOREIGN KEY(PropertyID) REFERENCES PROPERTY(PropertyID),<br />
CONSTRAINT single_lotsize_ck CHECK(LotSize > 0)<br />
);<br />
<br />
</pre><br />
5. CONDO<br />
<pre><br />
CREATE TABLE CONDO<br />
(<br />
PropertyID NUMBER(6),<br />
Fee NUMBER(8,2) NOT NULL, <br />
CONSTRAINT condo_propertyID_pk PRIMARY KEY(PropertyID),<br />
CONSTRAINT condo_propertyID_fk FOREIGN KEY(PropertyID) REFERENCES PROPERTY(PropertyID),<br />
CONSTRAINT condo_fee_ck CHECK(Fee > 0)<br />
);<br />
<br />
</pre><br />
6. OUTLET<br />
<pre><br />
CREATE TABLE OUTLET<br />
(<br />
OutletID NUMBER(4), <br />
OutletName VARCHAR2(20) NOT NULL,<br />
OutletPhone VARCHAR2(15) NOT NULL,<br />
OutletType CHAR(1) NOT NULL,<br />
CONSTRAINT outlet_outletid_pk PRIMARY KEY(OutletID),<br />
CONSTRAINT outlet_outlettype_ck CHECK(OutletType IN('N','M','W','F')),<br />
CONSTRAINT outlet_outletname_type_uk UNIQUE(OutletName, OutletType)<br />
);<br />
<br />
</pre><br />
7. ADVERTISEMENT<br />
<pre><br />
CREATE TABLE ADVERTISEMENT<br />
(<br />
PropertyID NUMBER(6),<br />
OutletID NUMBER(4),<br />
AdvDate DATE,<br />
AdvCost NUMBER(6) NOT NULL,<br />
CONSTRAINT ad_adid_pk PRIMARY KEY(PropertyID, OutletID),<br />
CONSTRAINT ad_propertyid_fk FOREIGN KEY(PropertyID) REFERENCES PROPERTY(PropertyID),<br />
CONSTRAINT ad_outletid_fk FOREIGN KEY(OutletID) REFERENCES OUTLET(OutletID),<br />
CONSTRAINT ad_advcost_ck CHECK(AdvCost > 0)<br />
);<br />
</pre><br />
<br />
Before Creating CLIENT table, you should rename the existing CLIENT table so that<br />
we can use that name. Execute following:<br />
<pre><br />
ALTER TABLE CLIENT RENAME TO CLIENT_2;<br />
</pre><br />
<br />
8. CLIENT<br />
<pre><br />
CREATE TABLE CLIENT<br />
(<br />
ClientID NUMBER(6),<br />
Fname VARCHAR2(15) NOT NULL,<br />
Lname VARCHAR2(15) NOT NULL,<br />
Phone VARCHAR2(15) NOT NULL,<br />
Email VARCHAR2(30),<br />
RefID NUMBER(6),<br />
CONSTRAINT client_clientid_pk PRIMARY KEY(ClientID),<br />
CONSTRAINT client_phone_uk UNIQUE(Phone),<br />
CONSTRAINT client_email_uk UNIQUE(Email),<br />
CONSTRAINT client_refid_fk FOREIGN KEY(RefID) REFERENCES CLIENT(ClientID)<br />
);<br />
</pre><br />
9. DEED<br />
<pre><br />
CREATE TABLE DEED<br />
(<br />
PropertyID NUMBER(6),<br />
SellerID NUMBER(6),<br />
OwnPct NUMBER(5,2) NOT NULL,<br />
BuyerID NUMBER(6),<br />
BuyPrice NUMBER(7),<br />
CONSTRAINT deed_deedid_pk PRIMARY KEY(PropertyID, SellerID),<br />
CONSTRAINT deed_propertyid_fk FOREIGN KEY(PropertyID) REFERENCES PROPERTY(PropertyID),<br />
CONSTRAINT deed_sellerid_fk FOREIGN KEY(SellerID) REFERENCES CLIENT(ClientID),<br />
CONSTRAINT deed_buyerid_fk FOREIGN KEY(BuyerID) REFERENCES CLIENT(ClientID),<br />
CONSTRAINT deed_ownpct_ck CHECK(OwnPct > 0 AND OwnPct <= 100),<br />
CONSTRAINT deed_buyprice_ck CHECK(BuyPrice BETWEEN 1 AND 4999999)<br />
);<br />
<br />
</pre><br />
<br />
==== DML Statements (INSERT INTO) ====<br />
<br />
1. AREA<BR><br />
<pre><br />
INSERT ALL<br />
INTO AREA VALUES(1001, 'Bayview Village', 'Adrienne Clarkson Public School', 'Amesbury Middle School', 'Bayview Secondary School', 'Upper middle class to upper class neighborhood in Toronto.')<br />
INTO AREA VALUES(3001,'Laurelwood', 'Elizabeth Ziegler Primary School','Waterloo Middle School','Saint David Catholic Secondary School','Close to University of Waterloo and many popular amenities.')<br />
INTO AREA VALUES(4001,'Silver Heights','Alison Park Primary School','Eastwood Middle School','King Edward Secondary School',null)<br />
INTO AREA VALUES(5001,'Kitsilano','Henry Hudson Elementary School','St George School','Kitsilano Secondary School','Very well-off area.')<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
<br />
2. AGENCY<BR><br />
<pre><br />
INSERT ALL<br />
INTO AGENCY VALUES(1055,'Sutton Group Regal Realty','416.875.9873')<br />
INTO AGENCY VALUES(3079,'MacDonald Realty','604.986.0231')<br />
INTO AGENCY VALUES(7024,'Royal LePage Groupe Newton','514.234.9283')<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
<br />
3. PROPERTY<BR><br />
<pre><br />
INSERT ALL<br />
INTO PROPERTY VALUES(134982,q'[27 King's College Circle]','Toronto','ON','M5S1A1',2,2,380000,1001,1055)<br />
INTO PROPERTY VALUES(149800,'17 Pleasant View Dr.','Toronto','ON','M2J2H1',3,2,470000,1001, null)<br />
INTO PROPERTY VALUES(152932,'17 Barberry Pl. #1313','Toronto','ON','M8W7V4',1,1,259888,1001, null)<br />
INTO PROPERTY VALUES(495820,'776 Laurelwood Dr.','Waterloo','ON','H3A2T5',2,2,295000,3001,3079)<br />
INTO PROPERTY VALUES(500211,'409 Kelso Cr.','Cambridge','ON','H3Y7S3',3,2,485000,4001, null)<br />
INTO PROPERTY VALUES(139204,'3043 Crown St.','Vancouver','BC','U3J3M6',5,3,1398000,5001,7024)<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
4. SINGLE<BR><br />
<pre><br />
INSERT ALL<br />
INTO SINGLE VALUES(134982,3716)<br />
INTO SINGLE VALUES(149800,1005)<br />
INTO SINGLE VALUES(139204,5400)<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
5. CONDO<BR><br />
<pre><br />
INSERT ALL<br />
INTO CONDO VALUES(152932,250)<br />
INTO CONDO VALUES(495820,320)<br />
INTO CONDO VALUES(500211,550)<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
6. OUTLET<BR><br />
<pre><br />
INSERT ALL<br />
INTO OUTLET VALUES(1000,'Toronto Star','416.923.1782','N')<br />
INTO OUTLET VALUES(2001,'Waterloo Living','519.098.9283','M')<br />
INTO OUTLET VALUES(8001,'Canadian Life','416.982.0192','W')<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
7. ADVERTISEMENT<BR><br />
<pre><br />
INSERT ALL<br />
INTO ADVERTISEMENT VALUES(134982,1000,'25-NOV-10',350)<br />
INTO ADVERTISEMENT VALUES(149800,1000,'27-NOV-10',250)<br />
INTO ADVERTISEMENT VALUES(495820,2001,'27-NOV-10',300)<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
8. CLIENT<BR><br />
<pre><br />
INSERT ALL<br />
INTO CLIENT VALUES(1010,'Andrew','Lee','647.978.0192','andrew11@hotmail.com', null)<br />
INTO CLIENT VALUES(1011,'Daniel','Smith','416.895.9762','dsmith@gmail.com',5010)<br />
INTO CLIENT VALUES(1012,'Olivia','Wilson','647.915.2738','oliviaorange@gmail.com', null)<br />
INTO CLIENT VALUES(1013,'Jayden','Martin','519.225.1928','jmartin@rogers.com', null)<br />
INTO CLIENT VALUES(1014,'Maria','Brown','416.182.0021','maria.brown@hotmail.com', null)<br />
INTO CLIENT VALUES(2010,'Ethan','Roy','226.289.0394','ethanrockstar@bell.com', null)<br />
INTO CLIENT VALUES(2011,'Sophia','Tremblay','647.297.2918','stremblay@gmail.com',5010)<br />
INTO CLIENT VALUES(3010,'Ryan','Wilson','604.837.1029','wilsonryan@gmail.com', null)<br />
INTO CLIENT VALUES(3012,'Luis','Jones','416.832.6771','luis7787@rogers.com', null)<br />
INTO CLIENT VALUES(5010,'Mary','Anderson','647.234.5690','andersonpink@gmail.com', null)<br />
INTO CLIENT VALUES(7010,'James','White','647.298.9182','james.white@bell.com',1010)<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
9. DEED<BR><br />
<pre><br />
INSERT ALL<br />
INTO VALUES(149800,1010,75,5010,352300)<br />
INTO VALUES(139204,1012,100,3010,1394000)<br />
INTO VALUES(134982,2011,50,1014,200000)<br />
SELECT * FROM DUAL;<br />
</pre><br />
<br />
==== CREATE VIEW ====<br />
<pre><br />
CREATE VIEW PropAreaLocSeller_VU AS<br />
SELECT SUBSTR((ar.AreaName || ', ' || p.City || ', ' || p.Street || ', ' || p.PostalCode), 1, 60) "Property Location",<br />
TO_CHAR(p.ListingPrice,'$9,999,999') "Price", sgl.LotSize || ' sqft' "LotSize",<br />
s.Lname || ', ' || s.Fname "Full Name", s.phone "Phone", d.OwnPct "OwnPct", NVL(ag.AgencyName, 'No Agency') "Agency"<br />
FROM Property p<br />
JOIN Single sgl ON (p.PropertyID = sgl.PropertyID)<br />
JOIN Area ar ON (p.AreaID = ar.AreaID)<br />
LEFT OUTER JOIN Agency ag ON (p.AgencyID = ag.AgencyID)<br />
JOIN Deed d ON (p.PropertyID = d.PropertyID)<br />
JOIN Client s ON (d.SellerID = s.ClientID);<br />
</pre><br />
<br />
=Assignment 1=<br />
==Due Date==<br />
Thursday, October 21st, 4:00pm<br />
Printout submission only( SELECT Statements + ALL outputs)<br />
==Description==<br />
[https://cs.senecac.on.ca/~nconkic/assign1.doc Assignment1]<br />
==Solution==<br />
<pre><br />
SQL> SELECT employee_id, RPAD(CONCAT(CONCAT(last_name, ', '),first_name), 25) "Full Name",<br />
<br />
2 job_id,<br />
<br />
3 TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
<br />
4 "Start Date"<br />
<br />
5 FROM employees<br />
<br />
6 WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
<br />
7 ORDER BY 4 DESC;<br />
<br />
<br />
<br />
EMPLOYEE_ID Full Name JOB_ID Start Date <br />
<br />
----------- ------------------------- ---------- ----------------------------------------- <br />
<br />
124 Mourgos, Kevin ST_MAN November First in the year 1999 <br />
<br />
178 Grant, Kimberely SA_REP May First in the year 1999 <br />
<br />
174 Abel, Ellen SA_REP May First in the year 1996 <br />
<br />
104 Ernst, Bruce IT_PROG May First in the year 1991 <br />
<br />
<br />
<br />
SQL> SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
<br />
2 || job_id || ' will have a new salary of $' || salary * 1.15 "Happy Employees"<br />
<br />
3 FROM employees<br />
<br />
4 WHERE salary BETWEEN 5000 AND 12000<br />
<br />
5 AND job_id IN ('IT_PROG', 'ST_CLERK')<br />
<br />
6 ORDER BY employee_id;<br />
<br />
<br />
<br />
Happy Employees <br />
<br />
----------------------------------------------------------------------------------------------------<br />
<br />
Employee named Alexander Hunold who is IT_PROG will have a new salary of $10350 <br />
<br />
Employee named Bruce Ernst who is IT_PROG will have a new salary of $6900 <br />
<br />
<br />
<br />
SQL> SELECT last_name, salary, job_id,<br />
<br />
2 RPAD(NVL(TO_CHAR(manager_id), 'No Manager'), 10) "Manager #",<br />
<br />
3 LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
<br />
4 FROM employees<br />
<br />
5 WHERE (job_id LIKE 'MK%' OR manager_id IS NULL)<br />
<br />
6 AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
<br />
7 ORDER BY 2 DESC;<br />
<br />
<br />
<br />
LAST_NAME SALARY JOB_ID Manager # Total Income <br />
<br />
------------------------- ---------- ---------- ---------- ------------ <br />
<br />
King 24000 AD_PRES No Manager $288,000 <br />
<br />
Hartstein 13000 MK_MAN 100 $156,000 <br />
<br />
<br />
<br />
SQL> SELECT RPAD(CONCAT(CONCAT(first_name,' '),last_name), 25) "Employee", job_id,<br />
<br />
2 LPAD(TRIM(TO_CHAR(salary, '$999,999')), 12, '=') "Salary", department_name<br />
<br />
3 FROM employees e JOIN departments d<br />
<br />
4 ON (e.department_id = d.department_id)<br />
<br />
5 WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
<br />
6 AND salary <<br />
<br />
7 (SELECT MAX(salary)<br />
<br />
8 FROM employees<br />
<br />
9 WHERE SUBSTR(job_id, 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
<br />
10 ORDER BY 1;<br />
<br />
<br />
<br />
Employee JOB_ID Salary DEPARTMENT_NAME <br />
<br />
------------------------- ---------- ------------ ------------------------------ <br />
<br />
Eleni Zlotkey SA_MAN =====$10,500 Sales <br />
<br />
Jonathon Taylor SA_REP ======$8,600 Sales <br />
<br />
Pat Fay MK_REP ======$6,000 Marketing <br />
<br />
<br />
<br />
SQL><br />
<br />
SQL> SELECT last_name, salary, job_id<br />
<br />
2 FROM employees<br />
<br />
3 WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
<br />
4 AND salary ><br />
<br />
5 (SELECT MAX(salary)<br />
<br />
6 FROM employees<br />
<br />
7 JOIN departments USING (department_id)<br />
<br />
8 JOIN locations USING (location_id)<br />
<br />
9 WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
<br />
<br />
LAST_NAME SALARY JOB_ID <br />
<br />
------------------------- ---------- ---------- <br />
<br />
Kochhar 17000 AD_VP <br />
<br />
De Haan 17000 AD_VP <br />
<br />
<br />
<br />
SQL> SELECT last_name, first_name, job_id, hire_date<br />
<br />
2 FROM employees<br />
<br />
3 WHERE hire_date ><br />
<br />
4 (SELECT MAX(hire_date)<br />
<br />
5 FROM employees<br />
<br />
6 WHERE department_id =<br />
<br />
7 (SELECT department_id<br />
<br />
8 FROM departments<br />
<br />
9 WHERE UPPER(department_name) = 'IT'))<br />
<br />
10 AND (department_id !=<br />
<br />
11 (SELECT department_id<br />
<br />
12 FROM departments<br />
<br />
13 WHERE UPPER(department_name) = 'EXECUTIVE')<br />
<br />
14 OR department_id IS NULL)<br />
<br />
15 ORDER BY 4 DESC;<br />
<br />
<br />
<br />
LAST_NAME FIRST_NAME JOB_ID HIRE_DATE <br />
<br />
------------------------- -------------------- ---------- --------- <br />
<br />
Zlotkey Eleni SA_MAN 29-JAN-00 <br />
<br />
Mourgos Kevin ST_MAN 16-NOV-99 <br />
<br />
Grant Kimberely SA_REP 24-MAY-99 <br />
<br />
<br />
<br />
SQL> SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay",<br />
<br />
2 MIN(salary) "Lowest Dept/Job Pay"<br />
<br />
3 FROM employees<br />
<br />
4 WHERE UPPER(job_id) NOT LIKE '%VP'<br />
<br />
5 AND department_id NOT IN<br />
<br />
6 (SELECT department_id<br />
<br />
7 FROM departments<br />
<br />
8 WHERE UPPER(department_name) IN ('IT','SALES'))<br />
<br />
9 GROUP BY department_id, job_id<br />
<br />
10 HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
<br />
11 ORDER BY 1, 2;<br />
<br />
<br />
<br />
DEPARTMENT_ID JOB_ID Average Dept/Job Pay Lowest Dept/Job Pay <br />
<br />
------------- ---------- -------------------- ------------------- <br />
<br />
20 MK_MAN 13000 13000 <br />
<br />
20 MK_REP 6000 6000 <br />
<br />
50 ST_MAN 5800 5800 <br />
<br />
110 AC_ACCOUNT 8300 8300 <br />
<br />
110 AC_MGR 12000 12000 <br />
<br />
<br />
<br />
SQL> SELECT department_id, department_name,<br />
<br />
2 RPAD(TRIM(NVL(city, 'Not Assinged Yet')), 25, ' ') "City",<br />
<br />
3 COUNT(DISTINCT job_id) "# of Jobs"<br />
<br />
4 FROM employees<br />
<br />
5 RIGHT OUTER JOIN departments USING (department_id)<br />
<br />
6 LEFT OUTER JOIN locations USING (location_id)<br />
<br />
7 GROUP BY department_id, department_name, city;<br />
<br />
<br />
<br />
DEPARTMENT_ID DEPARTMENT_NAME City # of Jobs <br />
<br />
------------- ------------------------------ ------------------------- ---------- <br />
<br />
110 Accounting Seattle 2 <br />
<br />
50 Shipping South San Francisco 2 <br />
<br />
80 Sales Oxford 2 <br />
<br />
10 Administration Seattle 1 <br />
<br />
190 Contracting Seattle 0 <br />
<br />
90 Executive Seattle 2 <br />
<br />
20 Marketing Toronto 2 <br />
<br />
60 IT Southlake 1 <br />
<br />
<br />
<br />
8 rows selected.<br />
<br />
<br />
<br />
SQL> spool off<br />
</pre><br />
==SQL Statements==<br />
===1.===<br />
''YuJin''<br />
<pre><br />
SELECT employee_id, RPAD(CONCAT(CONCAT(last_name, ', '),first_name), 25) "Full Name",<br />
job_id,<br />
TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
"Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
ORDER BY 4 DESC;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT employee_id,<br />
SUBSTR(last_name ||' '|| first_name, 1, 25) "Full Name",<br />
job_id,<br />
TO_CHAR(hire_date,'fmMonth "First in the year" YYYY') "Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date,'fmMON') IN ('MAY','NOV')<br />
ORDER BY hire_date DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select employee_id "Emp#",<br />
(last_name ||', '|| first_name) "Full Name",<br />
job_id "Job",<br />
to_char(trunc(hire_date, 'MONTH'), 'FMMonth Ddspth "in the year"<br />
YYYY') "Start Date"<br />
from employees<br />
where to_char(hire_date, 'fmMonth') in ('May', 'November')<br />
order by hire_date desc;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT employee_id, SUBSTR(last_name ||' '|| first_name, 1, 25) "Full Name",<br />
job_id,<br />
TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
"Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
ORDER BY hire_date DESC;<br />
</pre><br />
<br />
===2.===<br />
''YuJin''<br />
<pre><br />
SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
|| job_id || ' will have a new salary of $' || salary * 1.15 "Happy Employees"<br />
FROM employees<br />
WHERE salary BETWEEN 5000 AND 12000<br />
AND job_id IN ('IT_PROG', 'ST_CLERK')<br />
ORDER BY employee_id;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT 'Employee named '||first_name||' '||last_name||' who is '||job_id||' will have a new salary of $'|| salary *1.15 "Happy Employees"<br />
FROM employees<br />
WHERE job_id IN ('IT_PROG','ST CLERK')<br />
AND (salary BETWEEN 5000 AND 12000)<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
Select ('Employee named ' || first_name ||' '|| last_name || ' who is ' || job_id || ' will have a new salary of ' || (salary*1.15)) "Happy Employees"<br />
From employees<br />
Where salary between 5000 and 12000<br />
And upper(job_id) in ('IT_PROG', 'ST_CLERK')<br />
order by employee_id;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
|| job_id || ' will have a new salary of ' || TO_CHAR(salary * 1.15, 'fm$999999') "Happy Employees"<br />
FROM employees<br />
WHERE salary BETWEEN 5000 AND 12000<br />
AND UPPER(job_id) IN ('IT_PROG', 'ST_CLERK')<br />
ORDER BY employee_id;<br />
</pre><br />
<br />
===3.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, salary, job_id,<br />
RPAD(NVL(TO_CHAR(manager_id), 'No Manager'), 10) "Manager #",<br />
LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
FROM employees<br />
WHERE (job_id LIKE 'MK%' OR manager_id IS NULL)<br />
AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
ORDER BY 2 DESC;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, salary, job_id, NVL(TO_CHAR(manager_id),'No Manager') Manager#,<br />
TO_CHAR(salary*12,'$999,999') "Total Income"<br />
FROM employees<br />
WHERE (manager_id IS NULL<br />
OR job_id LIKE 'MK%')<br />
AND ( salary* (NVL(commission_pct,0) + 1) + 1000 ) > 10000<br />
ORDER BY salary DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, salary, job_id, nvl(to_char(manager_id),'No Manager') Manager#,<br />
to_char(salary*12,'$999,999') "Total Income"<br />
from employees<br />
where (upper(job_id) like 'MK%' or manager_id IS NULL)<br />
and salary * (1 + nvl(commission_pct, 0)) + 1000 > 10000<br />
order by 2 desc;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT last_name, salary, job_id,<br />
SUBSTR(NVL(TO_CHAR(manager_id), 'No Manager'), 1, 10) "Manager #",<br />
LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
FROM employees<br />
WHERE (UPPER(job_id) LIKE 'MK%' OR manager_id IS NULL)<br />
AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
ORDER BY salary DESC;<br />
<br />
</pre><br />
<br />
===4.===<br />
''YuJin''<br />
<pre><br />
SELECT RPAD(CONCAT(CONCAT(first_name,' '),last_name), 25) "Employee", job_id,<br />
LPAD(TRIM(TO_CHAR(salary, '$999,999')), 12, '=') "Salary", department_name<br />
FROM employees e JOIN departments d<br />
ON (e.department_id = d.department_id)<br />
WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
AND salary <<br />
(SELECT MAX(salary)<br />
FROM employees<br />
WHERE SUBSTR(job_id, 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
ORDER BY 1;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT SUBSTR(first_name||' '||last_name, 25) Employee, job_id,<br />
LPAD(TO_CHAR(salary,'$99,999'), 12, '=') Salary, department_name<br />
FROM employees e JOIN departments d<br />
ON (d.department_id=e.department_id)<br />
WHERE salary < (SELECT MAX(salary)<br />
FROM employees<br />
WHERE UPPER(SUBSTR(job_id,4)) NOT IN ('VP', 'PRES', 'MAN', 'MGR')<br />
)<br />
AND UPPER(department_name) IN ('MARKETING','SALES')<br />
ORDER BY first_name, last_name<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select substr(first_name ||' '|| last_name) "Employee", job_id, to_char(salary, '$999,999', 12, '=') Salary, department_name<br />
from employees e join departments d<br />
on (e.department_id = d.department_id)<br />
where upper(department_name) in ('MARKETING', 'SALES')<br />
and salary < (select max(salary)<br />
from employees<br />
where substr(job_id,4) not in ('PRES','VP','MAN','MGR'))<br />
order by "Employee";<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT SUBSTR(first_name ||' '|| last_name, 1, 25) "Employee", job_id,<br />
LPAD(TO_CHAR(salary, 'fm$999,999'), 12, '=') "Salary", department_name<br />
FROM employees e JOIN departments d<br />
ON (e.department_id = d.department_id)<br />
WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
AND salary <<br />
(SELECT MAX(salary)<br />
FROM employees<br />
WHERE SUBSTR(UPPER(job_id), 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
ORDER BY 1;<br />
</pre><br />
<br />
===5.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
AND salary ><br />
(SELECT MAX(salary)<br />
FROM employees<br />
JOIN departments USING (department_id)<br />
JOIN locations USING (location_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE salary > (SELECT MAX(salary)<br />
FROM locations JOIN departments<br />
USING (location_id)<br />
JOIN employees<br />
USING (department_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD')<br />
)<br />
AND UPPER(job_id) NOT LIKE '%PRES'<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, salary, job_id<br />
from employees<br />
where salary > (select max(salary)<br />
from employees join departments<br />
using (department_id)<br />
join locations<br />
using (location_id)<br />
where upper(city) in ('TORONTO','OXFORD'))<br />
and upper(job_id) not like '%PRES'<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
AND salary ><br />
(SELECT MAX(salary)<br />
FROM employees<br />
JOIN departments USING (department_id)<br />
JOIN locations USING (location_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
</pre><br />
<br />
===6.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, first_name, job_id, hire_date<br />
FROM employees<br />
WHERE hire_date ><br />
(SELECT MAX(hire_date)<br />
FROM employees<br />
WHERE department_id =<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'IT'))<br />
AND (department_id !=<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'EXECUTIVE')<br />
OR department_id IS NULL)<br />
ORDER BY 4 DESC;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, first_name, job_id, hire_date<br />
FROM employees e<br />
WHERE hire_date > (SELECT MAX(hire_date)<br />
FROM employees<br />
WHERE department_id = (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'IT'<br />
)<br />
)<br />
AND (department_id <> (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) ='EXECUTIVE')<br />
OR department_id IS NULL)<br />
ORDER BY hire_date DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, first_name, job_id, hire_date<br />
from employees<br />
where hire_date > (select max(hire_date)<br />
from employees<br />
where department_id = (select department_id<br />
from departments<br />
where upper(department_name) = 'IT'))<br />
and (department_id != (select department_id<br />
from departments<br />
where upper(department_name) = 'EXECUTIVE')<br />
or department_id IS NULL)<br />
order by hire_date desc;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT last_name, first_name, job_id, hire_date<br />
FROM employees<br />
WHERE hire_date ><br />
(SELECT MAX(hire_date)<br />
FROM employees<br />
WHERE department_id =<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'IT'))<br />
AND (department_id !=<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'EXECUTIVE')<br />
OR department_id IS NULL)<br />
ORDER BY hire_date DESC;<br />
</pre><br />
<br />
===7.===<br />
''YuJin''<br />
<pre><br />
SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay",<br />
MIN(salary) "Lowest Dept/Job Pay"<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%VP'<br />
AND department_id NOT IN<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) IN ('IT','SALES'))<br />
GROUP BY department_id, job_id<br />
HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
ORDER BY 1, 2;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay", MIN(salary) "Lowest Dept/Job Pay"<br />
FROM employees<br />
WHERE department_id <> ALL (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) IN ('IT','SALES')<br />
)<br />
AND job_id NOT LIKE '%VP'<br />
GROUP BY department_id, job_id<br />
HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
ORDER BY department_id, job_id<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select department_id, job_id, avg(salary) "Average Dept/Job Pay", min(salary) "Lowest Dept/Job Pay"<br />
from employees<br />
where upper(job_id) not like '%VP'<br />
and department_id != all(select department_id<br />
from departments<br />
where upper(department_name) in ('IT','SALES'))<br />
group by department_id, job_id<br />
having min(salary) between 5000 and 15000<br />
order by department_id, job_id<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay",<br />
MIN(salary) "Lowest Dept/Job Pay"<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%VP'<br />
AND department_id != ALL<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) IN ('IT','SALES'))<br />
GROUP BY department_id, job_id<br />
HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
ORDER BY department_id, job_id;<br />
</pre><br />
<br />
===8.===<br />
''YuJin''<br />
<pre><br />
SELECT department_id, department_name,<br />
RPAD(TRIM(NVL(city, 'Not Assinged Yet')), 25, ' ') "City",<br />
COUNT(DISTINCT job_id) "# of Jobs"<br />
FROM employees<br />
RIGHT OUTER JOIN departments USING (department_id)<br />
LEFT OUTER JOIN locations USING (location_id)<br />
GROUP BY department_id, department_name, city;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT department_id, department_name, SUBSTR(NVL(city,'Not Assigned Yet'),1,25) City,<br />
COUNT(DISTINCT job_id) "# of Jobs"<br />
FROM locations l RIGHT OUTER JOIN departments d<br />
USING (location_id)<br />
LEFT OUTER JOIN employees e<br />
USING (department_id)<br />
GROUP BY department_id, department_name, city<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select department_id, department_name, substr(nvl(city,'Not Assigned Yet'),1,25) City,<br />
count(distinct job_id) "# of Jobs"<br />
from employees right outer join departments<br />
using (department_id)<br />
left outer join locations<br />
using (location_id)<br />
group by department_id, department_name, city<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT department_id, department_name,<br />
SUBSTR(NVL(city, 'Not Assinged Yet'),1, 25) "City",<br />
COUNT(DISTINCT job_id) "# of Jobs"<br />
FROM employees<br />
RIGHT OUTER JOIN departments USING (department_id)<br />
LEFT OUTER JOIN locations USING (location_id)<br />
GROUP BY department_id, department_name, city;<br />
<br />
</pre></div>
Yujin.jeong
https://wiki.cdot.senecacollege.ca/w/index.php?title=J.Y.S&diff=50983
J.Y.S
2010-11-30T21:34:20Z
<p>Yujin.jeong: /* DDL Statements (CREATE TABLE) */</p>
<hr />
<div>This page is to efficiently manage our group assignments!<br />
== Member List == <br />
*[mailto:,,yjeong@learn.senecac.on.ca,?subject=dbs301 Email All]<br />
<br />
{| class="wikitable sortable" border="1" cellpadding="5"<br />
! First Name !! Last Name !! wiki id !! Learn e-mail !! Phone<br />
|-<br />
|[[User:Yujin.jeong | YuJin]]||Jeong||[[Special:Contributions/yujin.jeong | yujin.jeong]]||[mailto:yjeong@learn.senecac.on.ca?sujbect=dbs301 yjeong]|| 647 - 832 - 6771<br />
|-<br />
<br />
|-<br />
|Saad|| || || ||<br />
|-<br />
<br />
|-<br />
|James|| || || ||<br />
|-<br />
|}<br />
<br />
=Assignment 3 (worth 9%)=<br />
==Due Date==<br />
Thursday, December 2nd, 3:00pm<br />
Printout of all TIC charts and DDL / DML statements<br />
<br />
==Solution==<br />
==== DDL Statements (CREATE TABLE) ====<br />
1. AREA<br />
<pre><br />
CREATE TABLE AREA<br />
(<br />
AreaID NUMBER(4) CONSTRAINT area_areaid_pk PRIMARY KEY,<br />
AreaName VARCHAR2(15) NOT NULL CONSTRAINT area_areaname_uk UNIQUE,<br />
ElmSchool VARCHAR2(40),<br />
MidSchool VARCHAR2(40),<br />
HighSchool VARCHAR2(40),<br />
Comments VARCHAR2(100)<br />
);<br />
</pre><br />
2. AGENCY<br />
<pre><br />
CREATE TABLE AGENCY<br />
(<br />
AgencyID NUMBER(4) CONSTRAINT agency_agencyid_pk PRIMARY KEY,<br />
AgencyName VARCHAR2(30) NOT NULL CONSTRAINT agency_agencyname_uk UNIQUE,<br />
AgencyPhone VARCHAR2(15) NOT NULL CONSTRAINT agency_agencyphone_uk UNIQUE<br />
);<br />
</pre><br />
3. PROPERTY<br />
<pre><br />
CREATE TABLE PROPERTY<br />
(<br />
PropertyID NUMBER(6),<br />
Street VARCHAR2(40) NOT NULL,<br />
City VARCHAR2(15) NOT NULL,<br />
Province CHAR(2) NOT NULL,<br />
PostalCode CHAR(6) NOT NULL,<br />
Bedrooms NUMBER(1) NOT NULL,<br />
Bathrooms NUMBER(1) NOT NULL,<br />
ListingPrice NUMBER(7) NOT NULL,<br />
AreaID NUMBER(4) NOT NULL,<br />
AgencyID NUMBER(4),<br />
CONSTRAINT property_propertyid_pk PRIMARY KEY(PropertyID),<br />
CONSTRAINT property_bedrooms_ck CHECK(Bedrooms BETWEEN 1 AND 9),<br />
CONSTRAINT property_bathrooms_ck CHECK(Bathrooms BETWEEN 1 AND 9),<br />
CONSTRAINT property_listingprice_ck CHECK(ListingPrice BETWEEN 1 AND 4999999),<br />
CONSTRAINT property_areaid_fk FOREIGN KEY(AreaID) REFERENCES AREA(AreaID)<br />
);<br />
</pre><br />
4. SINGLE<br />
<pre><br />
CREATE TABLE SINGLE<br />
(<br />
PropertyID NUMBER(6), <br />
LotSize NUMBER(8,2) NOT NULL,<br />
CONSTRAINT single_propertyID_pk PRIMARY KEY(PropertyID), <br />
CONSTRAINT single_propertyID_fk FOREIGN KEY(PropertyID) REFERENCES PROPERTY(PropertyID),<br />
CONSTRAINT single_lotsize_ck CHECK(LotSize > 0)<br />
);<br />
<br />
</pre><br />
5. CONDO<br />
<pre><br />
CREATE TABLE CONDO<br />
(<br />
PropertyID NUMBER(6),<br />
Fee NUMBER(8,2) NOT NULL, <br />
CONSTRAINT condo_propertyID_pk PRIMARY KEY(PropertyID),<br />
CONSTRAINT condo_propertyID_fk FOREIGN KEY(PropertyID) REFERENCES PROPERTY(PropertyID),<br />
CONSTRAINT condo_fee_ck CHECK(Fee > 0)<br />
);<br />
<br />
</pre><br />
6. OUTLET<br />
<pre><br />
CREATE TABLE OUTLET<br />
(<br />
OutletID NUMBER(4), <br />
OutletName VARCHAR2(20) NOT NULL,<br />
OutletPhone VARCHAR2(15) NOT NULL,<br />
OutletType CHAR(1) NOT NULL,<br />
CONSTRAINT outlet_outletid_pk PRIMARY KEY(OutletID),<br />
CONSTRAINT outlet_outlettype_ck CHECK(OutletType IN('N','M','W','F')),<br />
CONSTRAINT outlet_outletname_type_uk UNIQUE(OutletName, OutletType)<br />
);<br />
<br />
</pre><br />
7. ADVERTISEMENT<br />
<pre><br />
CREATE TABLE ADVERTISEMENT<br />
(<br />
PropertyID NUMBER(6),<br />
OutletID NUMBER(4),<br />
AdvDate DATE,<br />
AdvCost NUMBER(6) NOT NULL,<br />
CONSTRAINT ad_adid_pk PRIMARY KEY(PropertyID, OutletID),<br />
CONSTRAINT ad_propertyid_fk FOREIGN KEY(PropertyID) REFERENCES PROPERTY(PropertyID),<br />
CONSTRAINT ad_outletid_fk FOREIGN KEY(OutletID) REFERENCES OUTLET(OutletID),<br />
CONSTRAINT ad_advcost_ck CHECK(AdvCost > 0)<br />
);<br />
</pre><br />
<br />
Before Creating CLIENT table, you should rename the existing CLIENT table so that<br />
we can use that name. Execute following:<br />
<pre><br />
ALTER TABLE CLIENT RENAME TO CLIENT_2;<br />
</pre><br />
<br />
8. CLIENT<br />
<pre><br />
CREATE TABLE CLIENT<br />
(<br />
ClientID NUMBER(6),<br />
Fname VARCHAR2(15) NOT NULL,<br />
Lname VARCHAR2(15) NOT NULL,<br />
Phone VARCHAR2(15) NOT NULL,<br />
Email VARCHAR2(30),<br />
RefID NUMBER(6),<br />
CONSTRAINT client_clientid_pk PRIMARY KEY(ClientID),<br />
CONSTRAINT client_phone_uk UNIQUE(Phone),<br />
CONSTRAINT client_email_uk UNIQUE(Email),<br />
CONSTRAINT client_refid_fk FOREIGN KEY(RefID) REFERENCES CLIENT(ClientID)<br />
);<br />
</pre><br />
9. DEED<br />
<pre><br />
CREATE TABLE DEED<br />
(<br />
PropertyID NUMBER(6),<br />
SellerID NUMBER(6),<br />
OwnPct NUMBER(5,2) NOT NULL,<br />
BuyerID NUMBER(6),<br />
BuyPrice NUMBER(7),<br />
CONSTRAINT deed_deedid_pk PRIMARY KEY(PropertyID, SellerID),<br />
CONSTRAINT deed_propertyid_fk FOREIGN KEY(PropertyID) REFERENCES PROPERTY(PropertyID),<br />
CONSTRAINT deed_sellerid_fk FOREIGN KEY(SellerID) REFERENCES CLIENT(ClientID),<br />
CONSTRAINT deed_buyerid_fk FOREIGN KEY(BuyerID) REFERENCES CLIENT(ClientID),<br />
CONSTRAINT deed_ownpct_ck CHECK(OwnPct > 0 AND OwnPct <= 100),<br />
CONSTRAINT deed_buyprice_ck CHECK(BuyPrice BETWEEN 1 AND 4999999)<br />
);<br />
<br />
</pre><br />
<br />
==== DML Statements (INSERT INTO) ====<br />
<br />
1. AREA<BR><br />
<pre><br />
INSERT ALL<br />
INTO AREA VALUES(1001, 'Bayview Village', 'Adrienne Clarkson Public School', 'Amesbury Middle School', 'Bayview Secondary School', 'Upper middle class to upper class neighborhood in Toronto.')<br />
INTO AREA VALUES(3001,'Laurelwood', 'Elizabeth Ziegler Primary School','Waterloo Middle School','Saint David Catholic Secondary School','Close to University of Waterloo and many popular amenities.')<br />
INTO AREA VALUES(4001,'Silver Heights','Alison Park Primary School','Eastwood Middle School','King Edward Secondary School',null)<br />
INTO AREA VALUES(5001,'Kitsilano','Henry Hudson Elementary School','St George School','Kitsilano Secondary School','Very well-off area.')<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
<br />
2. AGENCY<BR><br />
<pre><br />
INSERT ALL<br />
INTO AGENCY VALUES(1055,'Sutton Group Regal Realty','416.875.9873')<br />
INTO AGENCY VALUES(3079,'MacDonald Realty','604.986.0231')<br />
INTO AGENCY VALUES(7024,'Royal LePage Groupe Newton','514.234.9283')<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
<br />
3. PROPERTY<BR><br />
<pre><br />
INSERT ALL<br />
INTO PROPERTY VALUES(134982,'27 King"'"s College Circle','Toronto','ON','M5S1A1',2,2,380000,1001,1055)<br />
INTO PROPERTY VALUES(149800,'17 Pleasant View Dr.','Toronto','ON','M2J2H1',3,2,470000,1001, null)<br />
INTO PROPERTY VALUES(152932,'17 Barberry Pl. #1313','Toronto','ON','M8W7V4',1,1,259888,1001, null)<br />
INTO PROPERTY VALUES(495820,'776 Laurelwood Dr.','Waterloo','ON','H3A2T5',2,2,295000,3001,3079)<br />
INTO PROPERTY VALUES(500211,'409 Kelso Cr.','Cambridge','ON','H3Y7S3',3,2,485000,4001, null)<br />
INTO PROPERTY VALUES(139204,'3043 Crown St.','Vancouver','BC','U3J3M6',5,3,1398000,5001,7024)<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
4. SINGLE<BR><br />
<pre><br />
INSERT ALL<br />
INTO SINGLE VALUES(134982,3716)<br />
INTO SINGLE VALUES(149800,1005)<br />
INTO SINGLE VALUES(139204,5400)<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
5. CONDO<BR><br />
<pre><br />
INSERT ALL<br />
INTO CONDO VALUES(152932,250)<br />
INTO CONDO VALUES(495820,320)<br />
INTO CONDO VALUES(500211,550)<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
6. OUTLET<BR><br />
<pre><br />
INSERT ALL<br />
INTO OUTLET VALUES(1000,'Toronto Star','416.923.1782','N')<br />
INTO OUTLET VALUES(2001,'Waterloo Living','519.098.9283','M')<br />
INTO OUTLET VALUES(8001,'Canadian Life','416.982.0192','W')<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
7. ADVERTISEMENT<BR><br />
<pre><br />
INSERT ALL<br />
INTO ADVERTISEMENT VALUES(134982,1000,'25-NOV-10',350)<br />
INTO ADVERTISEMENT VALUES(149800,1000,'27-NOV-10',250)<br />
INTO ADVERTISEMENT VALUES(495820,2001,'27-NOV-10',300)<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
8. CLIENT<BR><br />
<pre><br />
INSERT ALL<br />
INTO CLIENT VALUES(1010,'Andrew','Lee','647.978.0192','andrew11@hotmail.com', null)<br />
INTO CLIENT VALUES(1011,'Daniel','Smith','416.895.9762','dsmith@gmail.com',5010)<br />
INTO CLIENT VALUES(1012,'Olivia','Wilson','647.915.2738','oliviaorange@gmail.com', null)<br />
INTO CLIENT VALUES(1013,'Jayden','Martin','519.225.1928','jmartin@rogers.com', null)<br />
INTO CLIENT VALUES(1014,'Maria','Brown','416.182.0021','maria.brown@hotmail.com', null)<br />
INTO CLIENT VALUES(2010,'Ethan','Roy','226.289.0394','ethanrockstar@bell.com', null)<br />
INTO CLIENT VALUES(2011,'Sophia','Tremblay','647.297.2918','stremblay@gmail.com',5010)<br />
INTO CLIENT VALUES(3010,'Ryan','Wilson','604.837.1029','wilsonryan@gmail.com', null)<br />
INTO CLIENT VALUES(3012,'Luis','Jones','416.832.6771','luis7787@rogers.com', null)<br />
INTO CLIENT VALUES(5010,'Mary','Anderson','647.234.5690','andersonpink@gmail.com', null)<br />
INTO CLIENT VALUES(7010,'James','White','647.298.9182','james.white@bell.com',1010)<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
9. DEED<BR><br />
<pre><br />
INSERT ALL<br />
INTO VALUES(149800,1010,75,5010,352300)<br />
INTO VALUES(139204,1012,100,3010,1394000)<br />
INTO VALUES(134982,2011,50,1014,200000)<br />
SELECT * FROM DUAL;<br />
</pre><br />
<br />
==== CREATE VIEW ====<br />
<pre><br />
CREATE VIEW PropAreaLocSeller_VU AS<br />
SELECT SUBSTR((ar.AreaName || ', ' || p.City || ', ' || p.Street || ', ' || p.PostalCode), 1, 60) "Property Location",<br />
TO_CHAR(p.ListingPrice,'$9,999,999') "Price", sgl.LotSize || ' sqft' "LotSize",<br />
s.Lname || ', ' || s.Fname "Full Name", s.phone "Phone", d.OwnPct "OwnPct", NVL(ag.AgencyName, 'No Agency') "Agency"<br />
FROM Property p<br />
JOIN Single sgl ON (p.PropertyID = sgl.PropertyID)<br />
JOIN Area ar ON (p.AreaID = ar.AreaID)<br />
LEFT OUTER JOIN Agency ag ON (p.AgencyID = ag.AgencyID)<br />
JOIN Deed d ON (p.PropertyID = d.PropertyID)<br />
JOIN Client s ON (d.SellerID = s.ClientID);<br />
</pre><br />
<br />
=Assignment 1=<br />
==Due Date==<br />
Thursday, October 21st, 4:00pm<br />
Printout submission only( SELECT Statements + ALL outputs)<br />
==Description==<br />
[https://cs.senecac.on.ca/~nconkic/assign1.doc Assignment1]<br />
==Solution==<br />
<pre><br />
SQL> SELECT employee_id, RPAD(CONCAT(CONCAT(last_name, ', '),first_name), 25) "Full Name",<br />
<br />
2 job_id,<br />
<br />
3 TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
<br />
4 "Start Date"<br />
<br />
5 FROM employees<br />
<br />
6 WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
<br />
7 ORDER BY 4 DESC;<br />
<br />
<br />
<br />
EMPLOYEE_ID Full Name JOB_ID Start Date <br />
<br />
----------- ------------------------- ---------- ----------------------------------------- <br />
<br />
124 Mourgos, Kevin ST_MAN November First in the year 1999 <br />
<br />
178 Grant, Kimberely SA_REP May First in the year 1999 <br />
<br />
174 Abel, Ellen SA_REP May First in the year 1996 <br />
<br />
104 Ernst, Bruce IT_PROG May First in the year 1991 <br />
<br />
<br />
<br />
SQL> SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
<br />
2 || job_id || ' will have a new salary of $' || salary * 1.15 "Happy Employees"<br />
<br />
3 FROM employees<br />
<br />
4 WHERE salary BETWEEN 5000 AND 12000<br />
<br />
5 AND job_id IN ('IT_PROG', 'ST_CLERK')<br />
<br />
6 ORDER BY employee_id;<br />
<br />
<br />
<br />
Happy Employees <br />
<br />
----------------------------------------------------------------------------------------------------<br />
<br />
Employee named Alexander Hunold who is IT_PROG will have a new salary of $10350 <br />
<br />
Employee named Bruce Ernst who is IT_PROG will have a new salary of $6900 <br />
<br />
<br />
<br />
SQL> SELECT last_name, salary, job_id,<br />
<br />
2 RPAD(NVL(TO_CHAR(manager_id), 'No Manager'), 10) "Manager #",<br />
<br />
3 LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
<br />
4 FROM employees<br />
<br />
5 WHERE (job_id LIKE 'MK%' OR manager_id IS NULL)<br />
<br />
6 AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
<br />
7 ORDER BY 2 DESC;<br />
<br />
<br />
<br />
LAST_NAME SALARY JOB_ID Manager # Total Income <br />
<br />
------------------------- ---------- ---------- ---------- ------------ <br />
<br />
King 24000 AD_PRES No Manager $288,000 <br />
<br />
Hartstein 13000 MK_MAN 100 $156,000 <br />
<br />
<br />
<br />
SQL> SELECT RPAD(CONCAT(CONCAT(first_name,' '),last_name), 25) "Employee", job_id,<br />
<br />
2 LPAD(TRIM(TO_CHAR(salary, '$999,999')), 12, '=') "Salary", department_name<br />
<br />
3 FROM employees e JOIN departments d<br />
<br />
4 ON (e.department_id = d.department_id)<br />
<br />
5 WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
<br />
6 AND salary <<br />
<br />
7 (SELECT MAX(salary)<br />
<br />
8 FROM employees<br />
<br />
9 WHERE SUBSTR(job_id, 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
<br />
10 ORDER BY 1;<br />
<br />
<br />
<br />
Employee JOB_ID Salary DEPARTMENT_NAME <br />
<br />
------------------------- ---------- ------------ ------------------------------ <br />
<br />
Eleni Zlotkey SA_MAN =====$10,500 Sales <br />
<br />
Jonathon Taylor SA_REP ======$8,600 Sales <br />
<br />
Pat Fay MK_REP ======$6,000 Marketing <br />
<br />
<br />
<br />
SQL><br />
<br />
SQL> SELECT last_name, salary, job_id<br />
<br />
2 FROM employees<br />
<br />
3 WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
<br />
4 AND salary ><br />
<br />
5 (SELECT MAX(salary)<br />
<br />
6 FROM employees<br />
<br />
7 JOIN departments USING (department_id)<br />
<br />
8 JOIN locations USING (location_id)<br />
<br />
9 WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
<br />
<br />
LAST_NAME SALARY JOB_ID <br />
<br />
------------------------- ---------- ---------- <br />
<br />
Kochhar 17000 AD_VP <br />
<br />
De Haan 17000 AD_VP <br />
<br />
<br />
<br />
SQL> SELECT last_name, first_name, job_id, hire_date<br />
<br />
2 FROM employees<br />
<br />
3 WHERE hire_date ><br />
<br />
4 (SELECT MAX(hire_date)<br />
<br />
5 FROM employees<br />
<br />
6 WHERE department_id =<br />
<br />
7 (SELECT department_id<br />
<br />
8 FROM departments<br />
<br />
9 WHERE UPPER(department_name) = 'IT'))<br />
<br />
10 AND (department_id !=<br />
<br />
11 (SELECT department_id<br />
<br />
12 FROM departments<br />
<br />
13 WHERE UPPER(department_name) = 'EXECUTIVE')<br />
<br />
14 OR department_id IS NULL)<br />
<br />
15 ORDER BY 4 DESC;<br />
<br />
<br />
<br />
LAST_NAME FIRST_NAME JOB_ID HIRE_DATE <br />
<br />
------------------------- -------------------- ---------- --------- <br />
<br />
Zlotkey Eleni SA_MAN 29-JAN-00 <br />
<br />
Mourgos Kevin ST_MAN 16-NOV-99 <br />
<br />
Grant Kimberely SA_REP 24-MAY-99 <br />
<br />
<br />
<br />
SQL> SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay",<br />
<br />
2 MIN(salary) "Lowest Dept/Job Pay"<br />
<br />
3 FROM employees<br />
<br />
4 WHERE UPPER(job_id) NOT LIKE '%VP'<br />
<br />
5 AND department_id NOT IN<br />
<br />
6 (SELECT department_id<br />
<br />
7 FROM departments<br />
<br />
8 WHERE UPPER(department_name) IN ('IT','SALES'))<br />
<br />
9 GROUP BY department_id, job_id<br />
<br />
10 HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
<br />
11 ORDER BY 1, 2;<br />
<br />
<br />
<br />
DEPARTMENT_ID JOB_ID Average Dept/Job Pay Lowest Dept/Job Pay <br />
<br />
------------- ---------- -------------------- ------------------- <br />
<br />
20 MK_MAN 13000 13000 <br />
<br />
20 MK_REP 6000 6000 <br />
<br />
50 ST_MAN 5800 5800 <br />
<br />
110 AC_ACCOUNT 8300 8300 <br />
<br />
110 AC_MGR 12000 12000 <br />
<br />
<br />
<br />
SQL> SELECT department_id, department_name,<br />
<br />
2 RPAD(TRIM(NVL(city, 'Not Assinged Yet')), 25, ' ') "City",<br />
<br />
3 COUNT(DISTINCT job_id) "# of Jobs"<br />
<br />
4 FROM employees<br />
<br />
5 RIGHT OUTER JOIN departments USING (department_id)<br />
<br />
6 LEFT OUTER JOIN locations USING (location_id)<br />
<br />
7 GROUP BY department_id, department_name, city;<br />
<br />
<br />
<br />
DEPARTMENT_ID DEPARTMENT_NAME City # of Jobs <br />
<br />
------------- ------------------------------ ------------------------- ---------- <br />
<br />
110 Accounting Seattle 2 <br />
<br />
50 Shipping South San Francisco 2 <br />
<br />
80 Sales Oxford 2 <br />
<br />
10 Administration Seattle 1 <br />
<br />
190 Contracting Seattle 0 <br />
<br />
90 Executive Seattle 2 <br />
<br />
20 Marketing Toronto 2 <br />
<br />
60 IT Southlake 1 <br />
<br />
<br />
<br />
8 rows selected.<br />
<br />
<br />
<br />
SQL> spool off<br />
</pre><br />
==SQL Statements==<br />
===1.===<br />
''YuJin''<br />
<pre><br />
SELECT employee_id, RPAD(CONCAT(CONCAT(last_name, ', '),first_name), 25) "Full Name",<br />
job_id,<br />
TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
"Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
ORDER BY 4 DESC;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT employee_id,<br />
SUBSTR(last_name ||' '|| first_name, 1, 25) "Full Name",<br />
job_id,<br />
TO_CHAR(hire_date,'fmMonth "First in the year" YYYY') "Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date,'fmMON') IN ('MAY','NOV')<br />
ORDER BY hire_date DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select employee_id "Emp#",<br />
(last_name ||', '|| first_name) "Full Name",<br />
job_id "Job",<br />
to_char(trunc(hire_date, 'MONTH'), 'FMMonth Ddspth "in the year"<br />
YYYY') "Start Date"<br />
from employees<br />
where to_char(hire_date, 'fmMonth') in ('May', 'November')<br />
order by hire_date desc;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT employee_id, SUBSTR(last_name ||' '|| first_name, 1, 25) "Full Name",<br />
job_id,<br />
TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
"Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
ORDER BY hire_date DESC;<br />
</pre><br />
<br />
===2.===<br />
''YuJin''<br />
<pre><br />
SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
|| job_id || ' will have a new salary of $' || salary * 1.15 "Happy Employees"<br />
FROM employees<br />
WHERE salary BETWEEN 5000 AND 12000<br />
AND job_id IN ('IT_PROG', 'ST_CLERK')<br />
ORDER BY employee_id;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT 'Employee named '||first_name||' '||last_name||' who is '||job_id||' will have a new salary of $'|| salary *1.15 "Happy Employees"<br />
FROM employees<br />
WHERE job_id IN ('IT_PROG','ST CLERK')<br />
AND (salary BETWEEN 5000 AND 12000)<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
Select ('Employee named ' || first_name ||' '|| last_name || ' who is ' || job_id || ' will have a new salary of ' || (salary*1.15)) "Happy Employees"<br />
From employees<br />
Where salary between 5000 and 12000<br />
And upper(job_id) in ('IT_PROG', 'ST_CLERK')<br />
order by employee_id;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
|| job_id || ' will have a new salary of ' || TO_CHAR(salary * 1.15, 'fm$999999') "Happy Employees"<br />
FROM employees<br />
WHERE salary BETWEEN 5000 AND 12000<br />
AND UPPER(job_id) IN ('IT_PROG', 'ST_CLERK')<br />
ORDER BY employee_id;<br />
</pre><br />
<br />
===3.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, salary, job_id,<br />
RPAD(NVL(TO_CHAR(manager_id), 'No Manager'), 10) "Manager #",<br />
LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
FROM employees<br />
WHERE (job_id LIKE 'MK%' OR manager_id IS NULL)<br />
AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
ORDER BY 2 DESC;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, salary, job_id, NVL(TO_CHAR(manager_id),'No Manager') Manager#,<br />
TO_CHAR(salary*12,'$999,999') "Total Income"<br />
FROM employees<br />
WHERE (manager_id IS NULL<br />
OR job_id LIKE 'MK%')<br />
AND ( salary* (NVL(commission_pct,0) + 1) + 1000 ) > 10000<br />
ORDER BY salary DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, salary, job_id, nvl(to_char(manager_id),'No Manager') Manager#,<br />
to_char(salary*12,'$999,999') "Total Income"<br />
from employees<br />
where (upper(job_id) like 'MK%' or manager_id IS NULL)<br />
and salary * (1 + nvl(commission_pct, 0)) + 1000 > 10000<br />
order by 2 desc;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT last_name, salary, job_id,<br />
SUBSTR(NVL(TO_CHAR(manager_id), 'No Manager'), 1, 10) "Manager #",<br />
LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
FROM employees<br />
WHERE (UPPER(job_id) LIKE 'MK%' OR manager_id IS NULL)<br />
AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
ORDER BY salary DESC;<br />
<br />
</pre><br />
<br />
===4.===<br />
''YuJin''<br />
<pre><br />
SELECT RPAD(CONCAT(CONCAT(first_name,' '),last_name), 25) "Employee", job_id,<br />
LPAD(TRIM(TO_CHAR(salary, '$999,999')), 12, '=') "Salary", department_name<br />
FROM employees e JOIN departments d<br />
ON (e.department_id = d.department_id)<br />
WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
AND salary <<br />
(SELECT MAX(salary)<br />
FROM employees<br />
WHERE SUBSTR(job_id, 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
ORDER BY 1;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT SUBSTR(first_name||' '||last_name, 25) Employee, job_id,<br />
LPAD(TO_CHAR(salary,'$99,999'), 12, '=') Salary, department_name<br />
FROM employees e JOIN departments d<br />
ON (d.department_id=e.department_id)<br />
WHERE salary < (SELECT MAX(salary)<br />
FROM employees<br />
WHERE UPPER(SUBSTR(job_id,4)) NOT IN ('VP', 'PRES', 'MAN', 'MGR')<br />
)<br />
AND UPPER(department_name) IN ('MARKETING','SALES')<br />
ORDER BY first_name, last_name<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select substr(first_name ||' '|| last_name) "Employee", job_id, to_char(salary, '$999,999', 12, '=') Salary, department_name<br />
from employees e join departments d<br />
on (e.department_id = d.department_id)<br />
where upper(department_name) in ('MARKETING', 'SALES')<br />
and salary < (select max(salary)<br />
from employees<br />
where substr(job_id,4) not in ('PRES','VP','MAN','MGR'))<br />
order by "Employee";<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT SUBSTR(first_name ||' '|| last_name, 1, 25) "Employee", job_id,<br />
LPAD(TO_CHAR(salary, 'fm$999,999'), 12, '=') "Salary", department_name<br />
FROM employees e JOIN departments d<br />
ON (e.department_id = d.department_id)<br />
WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
AND salary <<br />
(SELECT MAX(salary)<br />
FROM employees<br />
WHERE SUBSTR(UPPER(job_id), 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
ORDER BY 1;<br />
</pre><br />
<br />
===5.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
AND salary ><br />
(SELECT MAX(salary)<br />
FROM employees<br />
JOIN departments USING (department_id)<br />
JOIN locations USING (location_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE salary > (SELECT MAX(salary)<br />
FROM locations JOIN departments<br />
USING (location_id)<br />
JOIN employees<br />
USING (department_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD')<br />
)<br />
AND UPPER(job_id) NOT LIKE '%PRES'<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, salary, job_id<br />
from employees<br />
where salary > (select max(salary)<br />
from employees join departments<br />
using (department_id)<br />
join locations<br />
using (location_id)<br />
where upper(city) in ('TORONTO','OXFORD'))<br />
and upper(job_id) not like '%PRES'<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
AND salary ><br />
(SELECT MAX(salary)<br />
FROM employees<br />
JOIN departments USING (department_id)<br />
JOIN locations USING (location_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
</pre><br />
<br />
===6.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, first_name, job_id, hire_date<br />
FROM employees<br />
WHERE hire_date ><br />
(SELECT MAX(hire_date)<br />
FROM employees<br />
WHERE department_id =<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'IT'))<br />
AND (department_id !=<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'EXECUTIVE')<br />
OR department_id IS NULL)<br />
ORDER BY 4 DESC;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, first_name, job_id, hire_date<br />
FROM employees e<br />
WHERE hire_date > (SELECT MAX(hire_date)<br />
FROM employees<br />
WHERE department_id = (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'IT'<br />
)<br />
)<br />
AND (department_id <> (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) ='EXECUTIVE')<br />
OR department_id IS NULL)<br />
ORDER BY hire_date DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, first_name, job_id, hire_date<br />
from employees<br />
where hire_date > (select max(hire_date)<br />
from employees<br />
where department_id = (select department_id<br />
from departments<br />
where upper(department_name) = 'IT'))<br />
and (department_id != (select department_id<br />
from departments<br />
where upper(department_name) = 'EXECUTIVE')<br />
or department_id IS NULL)<br />
order by hire_date desc;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT last_name, first_name, job_id, hire_date<br />
FROM employees<br />
WHERE hire_date ><br />
(SELECT MAX(hire_date)<br />
FROM employees<br />
WHERE department_id =<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'IT'))<br />
AND (department_id !=<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'EXECUTIVE')<br />
OR department_id IS NULL)<br />
ORDER BY hire_date DESC;<br />
</pre><br />
<br />
===7.===<br />
''YuJin''<br />
<pre><br />
SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay",<br />
MIN(salary) "Lowest Dept/Job Pay"<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%VP'<br />
AND department_id NOT IN<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) IN ('IT','SALES'))<br />
GROUP BY department_id, job_id<br />
HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
ORDER BY 1, 2;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay", MIN(salary) "Lowest Dept/Job Pay"<br />
FROM employees<br />
WHERE department_id <> ALL (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) IN ('IT','SALES')<br />
)<br />
AND job_id NOT LIKE '%VP'<br />
GROUP BY department_id, job_id<br />
HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
ORDER BY department_id, job_id<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select department_id, job_id, avg(salary) "Average Dept/Job Pay", min(salary) "Lowest Dept/Job Pay"<br />
from employees<br />
where upper(job_id) not like '%VP'<br />
and department_id != all(select department_id<br />
from departments<br />
where upper(department_name) in ('IT','SALES'))<br />
group by department_id, job_id<br />
having min(salary) between 5000 and 15000<br />
order by department_id, job_id<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay",<br />
MIN(salary) "Lowest Dept/Job Pay"<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%VP'<br />
AND department_id != ALL<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) IN ('IT','SALES'))<br />
GROUP BY department_id, job_id<br />
HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
ORDER BY department_id, job_id;<br />
</pre><br />
<br />
===8.===<br />
''YuJin''<br />
<pre><br />
SELECT department_id, department_name,<br />
RPAD(TRIM(NVL(city, 'Not Assinged Yet')), 25, ' ') "City",<br />
COUNT(DISTINCT job_id) "# of Jobs"<br />
FROM employees<br />
RIGHT OUTER JOIN departments USING (department_id)<br />
LEFT OUTER JOIN locations USING (location_id)<br />
GROUP BY department_id, department_name, city;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT department_id, department_name, SUBSTR(NVL(city,'Not Assigned Yet'),1,25) City,<br />
COUNT(DISTINCT job_id) "# of Jobs"<br />
FROM locations l RIGHT OUTER JOIN departments d<br />
USING (location_id)<br />
LEFT OUTER JOIN employees e<br />
USING (department_id)<br />
GROUP BY department_id, department_name, city<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select department_id, department_name, substr(nvl(city,'Not Assigned Yet'),1,25) City,<br />
count(distinct job_id) "# of Jobs"<br />
from employees right outer join departments<br />
using (department_id)<br />
left outer join locations<br />
using (location_id)<br />
group by department_id, department_name, city<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT department_id, department_name,<br />
SUBSTR(NVL(city, 'Not Assinged Yet'),1, 25) "City",<br />
COUNT(DISTINCT job_id) "# of Jobs"<br />
FROM employees<br />
RIGHT OUTER JOIN departments USING (department_id)<br />
LEFT OUTER JOIN locations USING (location_id)<br />
GROUP BY department_id, department_name, city;<br />
<br />
</pre></div>
Yujin.jeong
https://wiki.cdot.senecacollege.ca/w/index.php?title=J.Y.S&diff=50982
J.Y.S
2010-11-30T21:30:52Z
<p>Yujin.jeong: /* DDL Statements (CREATE TABLE) */</p>
<hr />
<div>This page is to efficiently manage our group assignments!<br />
== Member List == <br />
*[mailto:,,yjeong@learn.senecac.on.ca,?subject=dbs301 Email All]<br />
<br />
{| class="wikitable sortable" border="1" cellpadding="5"<br />
! First Name !! Last Name !! wiki id !! Learn e-mail !! Phone<br />
|-<br />
|[[User:Yujin.jeong | YuJin]]||Jeong||[[Special:Contributions/yujin.jeong | yujin.jeong]]||[mailto:yjeong@learn.senecac.on.ca?sujbect=dbs301 yjeong]|| 647 - 832 - 6771<br />
|-<br />
<br />
|-<br />
|Saad|| || || ||<br />
|-<br />
<br />
|-<br />
|James|| || || ||<br />
|-<br />
|}<br />
<br />
=Assignment 3 (worth 9%)=<br />
==Due Date==<br />
Thursday, December 2nd, 3:00pm<br />
Printout of all TIC charts and DDL / DML statements<br />
<br />
==Solution==<br />
==== DDL Statements (CREATE TABLE) ====<br />
1. AREA<br />
<pre><br />
CREATE TABLE AREA<br />
(<br />
AreaID NUMBER(4) CONSTRAINT area_areaid_pk PRIMARY KEY,<br />
AreaName VARCHAR2(15) NOT NULL CONSTRAINT area_areaname_uk UNIQUE,<br />
ElmSchool VARCHAR2(40),<br />
MidSchool VARCHAR2(40),<br />
HighSchool VARCHAR2(40),<br />
Comments VARCHAR2(100)<br />
);<br />
</pre><br />
2. AGENCY<br />
<pre><br />
CREATE TABLE AGENCY<br />
(<br />
AgencyID NUMBER(4) CONSTRAINT agency_agencyid_pk PRIMARY KEY,<br />
AgencyName VARCHAR2(30) NOT NULL CONSTRAINT agency_agencyname_uk UNIQUE,<br />
AgencyPhone VARCHAR2(15) NOT NULL CONSTRAINT agency_agencyphone_uk UNIQUE<br />
);<br />
</pre><br />
3. PROPERTY<br />
<pre><br />
CREATE TABLE PROPERTY<br />
(<br />
PropertyID NUMBER(6),<br />
Street VARCHAR2(40) NOT NULL,<br />
City VARCHAR2(15) NOT NULL,<br />
Province CHAR(2) NOT NULL,<br />
PostalCode CHAR(6) NOT NULL,<br />
Bedrooms NUMBER(1) NOT NULL,<br />
Bathrooms NUMBER(1) NOT NULL,<br />
ListingPrice NUMBER(7) NOT NULL,<br />
AreaID NUMBER(4) NOT NULL,<br />
AgencyID NUMBER(4),<br />
CONSTRAINT property_propertyid_pk PRIMARY KEY(PropertyID),<br />
CONSTRAINT property_bedrooms_ck CHECK(Bedrooms BETWEEN 1 AND 9),<br />
CONSTRAINT property_bathrooms_ck CHECK(Bathrooms BETWEEN 1 AND 9),<br />
CONSTRAINT property_listingprice_ck CHECK(ListingPrice BETWEEN 1 AND 4999999),<br />
CONSTRAINT property_areaid_fk FOREIGN KEY(AreaID) REFERENCES AREA(AreaID)<br />
);<br />
</pre><br />
4. SINGLE<br />
<pre><br />
CREATE TABLE SINGLE<br />
(<br />
PropertyID NUMBER(6), <br />
LotSize NUMBER(8,2) NOT NULL,<br />
CONSTRAINT single_propertyID_pk PRIMARY KEY(PropertyID), <br />
CONSTRAINT single_propertyID_fk FOREIGN KEY(PropertyID) REFERENCES PROPERTY(PropertyID),<br />
CONSTRAINT single_lotsize_ck CHECK(LotSize > 0)<br />
);<br />
<br />
</pre><br />
5. CONDO<br />
<pre><br />
CREATE TABLE CONDO<br />
(<br />
PropertyID NUMBER(6),<br />
Fee NUMBER(8,2) NOT NULL, <br />
CONSTRAINT condo_propertyID_pk PRIMARY KEY(PropertyID),<br />
CONSTRAINT condo_propertyID_fk FOREIGN KEY(PropertyID) REFERENCES PROPERTY(PropertyID),<br />
CONSTRAINT condo_fee_ck CHECK(Fee > 0)<br />
);<br />
<br />
</pre><br />
6. OUTLET<br />
<pre><br />
CREATE TABLE OUTLET<br />
(<br />
OutletID NUMBER(4), <br />
OutletName VARCHAR2(20) NOT NULL,<br />
OutletPhone VARCHAR2(15) NOT NULL,<br />
OutletType CHAR(1) NOT NULL,<br />
CONSTRAINT outlet_outletid_pk PRIMARY KEY(OutletID),<br />
CONSTRAINT outlet_outlettype_ck CHECK(OutletType IN('N','M','W','F')),<br />
CONSTRAINT outlet_outletname_type_uk UNIQUE(OutletName, OutletType)<br />
);<br />
<br />
</pre><br />
7. ADVERTISEMENT<br />
<pre><br />
CREATE TABLE ADVERTISEMENT<br />
(<br />
PropertyID NUMBER(6),<br />
OutletID NUMBER(4),<br />
AdvDate DATE,<br />
AdvCost NUMBER(6) NOT NULL,<br />
CONSTRAINT ad_adid_pk PRIMARY KEY(PropertyID, OutletID),<br />
CONSTRAINT ad_propertyid_fk FOREIGN KEY(PropertyID) REFERENCES PROPERTY(PropertyID),<br />
CONSTRAINT ad_outletid_fk FOREIGN KEY(OutletID) REFERENCES OUTLET(OutletID),<br />
CONSTRAINT ad_advcost_ck CHECK(AdvCost > 0)<br />
);<br />
</pre><br />
8. CLIENT<br />
<pre><br />
CREATE TABLE CLIENT<br />
(<br />
ClientID NUMBER(6),<br />
Fname VARCHAR2(15) NOT NULL,<br />
Lname VARCHAR2(15) NOT NULL,<br />
Phone VARCHAR2(15) NOT NULL,<br />
Email VARCHAR2(30),<br />
RefID NUMBER(6),<br />
CONSTRAINT client_clientid_pk PRIMARY KEY(ClientID),<br />
CONSTRAINT client_phone_uk UNIQUE(Phone),<br />
CONSTRAINT client_email_uk UNIQUE(Email),<br />
CONSTRAINT client_refid_fk FOREIGN KEY(RefID) REFERENCES CLIENT(ClientID)<br />
);<br />
</pre><br />
9. DEED<br />
<pre><br />
CREATE TABLE DEED<br />
(<br />
PropertyID NUMBER(6),<br />
SellerID NUMBER(6),<br />
OwnPct NUMBER(5,2) NOT NULL,<br />
BuyerID NUMBER(6),<br />
BuyPrice NUMBER(7),<br />
CONSTRAINT deed_deedid_pk PRIMARY KEY(PropertyID, SellerID),<br />
CONSTRAINT deed_propertyid_fk FOREIGN KEY(PropertyID) REFERENCES PROPERTY(PropertyID),<br />
CONSTRAINT deed_sellerid_fk FOREIGN KEY(SellerID) REFERENCES CLIENT(ClientID),<br />
CONSTRAINT deed_buyerid_fk FOREIGN KEY(BuyerID) REFERENCES CLIENT(ClientID),<br />
CONSTRAINT deed_ownpct_ck CHECK(OwnPct > 0 AND OwnPct <= 100),<br />
CONSTRAINT deed_buyprice_ck CHECK(BuyPrice BETWEEN 1 AND 4999999)<br />
);<br />
<br />
</pre><br />
<br />
==== DML Statements (INSERT INTO) ====<br />
<br />
1. AREA<BR><br />
<pre><br />
INSERT ALL<br />
INTO AREA VALUES(1001, 'Bayview Village', 'Adrienne Clarkson Public School', 'Amesbury Middle School', 'Bayview Secondary School', 'Upper middle class to upper class neighborhood in Toronto.')<br />
INTO AREA VALUES(3001,'Laurelwood', 'Elizabeth Ziegler Primary School','Waterloo Middle School','Saint David Catholic Secondary School','Close to University of Waterloo and many popular amenities.')<br />
INTO AREA VALUES(4001,'Silver Heights','Alison Park Primary School','Eastwood Middle School','King Edward Secondary School',null)<br />
INTO AREA VALUES(5001,'Kitsilano','Henry Hudson Elementary School','St George School','Kitsilano Secondary School','Very well-off area.')<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
<br />
2. AGENCY<BR><br />
<pre><br />
INSERT ALL<br />
INTO AGENCY VALUES(1055,'Sutton Group Regal Realty','416.875.9873')<br />
INTO AGENCY VALUES(3079,'MacDonald Realty','604.986.0231')<br />
INTO AGENCY VALUES(7024,'Royal LePage Groupe Newton','514.234.9283')<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
<br />
3. PROPERTY<BR><br />
<pre><br />
INSERT ALL<br />
INTO PROPERTY VALUES(134982,'27 King"'"s College Circle','Toronto','ON','M5S1A1',2,2,380000,1001,1055)<br />
INTO PROPERTY VALUES(149800,'17 Pleasant View Dr.','Toronto','ON','M2J2H1',3,2,470000,1001, null)<br />
INTO PROPERTY VALUES(152932,'17 Barberry Pl. #1313','Toronto','ON','M8W7V4',1,1,259888,1001, null)<br />
INTO PROPERTY VALUES(495820,'776 Laurelwood Dr.','Waterloo','ON','H3A2T5',2,2,295000,3001,3079)<br />
INTO PROPERTY VALUES(500211,'409 Kelso Cr.','Cambridge','ON','H3Y7S3',3,2,485000,4001, null)<br />
INTO PROPERTY VALUES(139204,'3043 Crown St.','Vancouver','BC','U3J3M6',5,3,1398000,5001,7024)<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
4. SINGLE<BR><br />
<pre><br />
INSERT ALL<br />
INTO SINGLE VALUES(134982,3716)<br />
INTO SINGLE VALUES(149800,1005)<br />
INTO SINGLE VALUES(139204,5400)<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
5. CONDO<BR><br />
<pre><br />
INSERT ALL<br />
INTO CONDO VALUES(152932,250)<br />
INTO CONDO VALUES(495820,320)<br />
INTO CONDO VALUES(500211,550)<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
6. OUTLET<BR><br />
<pre><br />
INSERT ALL<br />
INTO OUTLET VALUES(1000,'Toronto Star','416.923.1782','N')<br />
INTO OUTLET VALUES(2001,'Waterloo Living','519.098.9283','M')<br />
INTO OUTLET VALUES(8001,'Canadian Life','416.982.0192','W')<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
7. ADVERTISEMENT<BR><br />
<pre><br />
INSERT ALL<br />
INTO ADVERTISEMENT VALUES(134982,1000,'25-NOV-10',350)<br />
INTO ADVERTISEMENT VALUES(149800,1000,'27-NOV-10',250)<br />
INTO ADVERTISEMENT VALUES(495820,2001,'27-NOV-10',300)<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
8. CLIENT<BR><br />
<pre><br />
INSERT ALL<br />
INTO CLIENT VALUES(1010,'Andrew','Lee','647.978.0192','andrew11@hotmail.com', null)<br />
INTO CLIENT VALUES(1011,'Daniel','Smith','416.895.9762','dsmith@gmail.com',5010)<br />
INTO CLIENT VALUES(1012,'Olivia','Wilson','647.915.2738','oliviaorange@gmail.com', null)<br />
INTO CLIENT VALUES(1013,'Jayden','Martin','519.225.1928','jmartin@rogers.com', null)<br />
INTO CLIENT VALUES(1014,'Maria','Brown','416.182.0021','maria.brown@hotmail.com', null)<br />
INTO CLIENT VALUES(2010,'Ethan','Roy','226.289.0394','ethanrockstar@bell.com', null)<br />
INTO CLIENT VALUES(2011,'Sophia','Tremblay','647.297.2918','stremblay@gmail.com',5010)<br />
INTO CLIENT VALUES(3010,'Ryan','Wilson','604.837.1029','wilsonryan@gmail.com', null)<br />
INTO CLIENT VALUES(3012,'Luis','Jones','416.832.6771','luis7787@rogers.com', null)<br />
INTO CLIENT VALUES(5010,'Mary','Anderson','647.234.5690','andersonpink@gmail.com', null)<br />
INTO CLIENT VALUES(7010,'James','White','647.298.9182','james.white@bell.com',1010)<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
9. DEED<BR><br />
<pre><br />
INSERT ALL<br />
INTO VALUES(149800,1010,75,5010,352300)<br />
INTO VALUES(139204,1012,100,3010,1394000)<br />
INTO VALUES(134982,2011,50,1014,200000)<br />
SELECT * FROM DUAL;<br />
</pre><br />
<br />
==== CREATE VIEW ====<br />
<pre><br />
CREATE VIEW PropAreaLocSeller_VU AS<br />
SELECT SUBSTR((ar.AreaName || ', ' || p.City || ', ' || p.Street || ', ' || p.PostalCode), 1, 60) "Property Location",<br />
TO_CHAR(p.ListingPrice,'$9,999,999') "Price", sgl.LotSize || ' sqft' "LotSize",<br />
s.Lname || ', ' || s.Fname "Full Name", s.phone "Phone", d.OwnPct "OwnPct", NVL(ag.AgencyName, 'No Agency') "Agency"<br />
FROM Property p<br />
JOIN Single sgl ON (p.PropertyID = sgl.PropertyID)<br />
JOIN Area ar ON (p.AreaID = ar.AreaID)<br />
LEFT OUTER JOIN Agency ag ON (p.AgencyID = ag.AgencyID)<br />
JOIN Deed d ON (p.PropertyID = d.PropertyID)<br />
JOIN Client s ON (d.SellerID = s.ClientID);<br />
</pre><br />
<br />
=Assignment 1=<br />
==Due Date==<br />
Thursday, October 21st, 4:00pm<br />
Printout submission only( SELECT Statements + ALL outputs)<br />
==Description==<br />
[https://cs.senecac.on.ca/~nconkic/assign1.doc Assignment1]<br />
==Solution==<br />
<pre><br />
SQL> SELECT employee_id, RPAD(CONCAT(CONCAT(last_name, ', '),first_name), 25) "Full Name",<br />
<br />
2 job_id,<br />
<br />
3 TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
<br />
4 "Start Date"<br />
<br />
5 FROM employees<br />
<br />
6 WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
<br />
7 ORDER BY 4 DESC;<br />
<br />
<br />
<br />
EMPLOYEE_ID Full Name JOB_ID Start Date <br />
<br />
----------- ------------------------- ---------- ----------------------------------------- <br />
<br />
124 Mourgos, Kevin ST_MAN November First in the year 1999 <br />
<br />
178 Grant, Kimberely SA_REP May First in the year 1999 <br />
<br />
174 Abel, Ellen SA_REP May First in the year 1996 <br />
<br />
104 Ernst, Bruce IT_PROG May First in the year 1991 <br />
<br />
<br />
<br />
SQL> SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
<br />
2 || job_id || ' will have a new salary of $' || salary * 1.15 "Happy Employees"<br />
<br />
3 FROM employees<br />
<br />
4 WHERE salary BETWEEN 5000 AND 12000<br />
<br />
5 AND job_id IN ('IT_PROG', 'ST_CLERK')<br />
<br />
6 ORDER BY employee_id;<br />
<br />
<br />
<br />
Happy Employees <br />
<br />
----------------------------------------------------------------------------------------------------<br />
<br />
Employee named Alexander Hunold who is IT_PROG will have a new salary of $10350 <br />
<br />
Employee named Bruce Ernst who is IT_PROG will have a new salary of $6900 <br />
<br />
<br />
<br />
SQL> SELECT last_name, salary, job_id,<br />
<br />
2 RPAD(NVL(TO_CHAR(manager_id), 'No Manager'), 10) "Manager #",<br />
<br />
3 LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
<br />
4 FROM employees<br />
<br />
5 WHERE (job_id LIKE 'MK%' OR manager_id IS NULL)<br />
<br />
6 AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
<br />
7 ORDER BY 2 DESC;<br />
<br />
<br />
<br />
LAST_NAME SALARY JOB_ID Manager # Total Income <br />
<br />
------------------------- ---------- ---------- ---------- ------------ <br />
<br />
King 24000 AD_PRES No Manager $288,000 <br />
<br />
Hartstein 13000 MK_MAN 100 $156,000 <br />
<br />
<br />
<br />
SQL> SELECT RPAD(CONCAT(CONCAT(first_name,' '),last_name), 25) "Employee", job_id,<br />
<br />
2 LPAD(TRIM(TO_CHAR(salary, '$999,999')), 12, '=') "Salary", department_name<br />
<br />
3 FROM employees e JOIN departments d<br />
<br />
4 ON (e.department_id = d.department_id)<br />
<br />
5 WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
<br />
6 AND salary <<br />
<br />
7 (SELECT MAX(salary)<br />
<br />
8 FROM employees<br />
<br />
9 WHERE SUBSTR(job_id, 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
<br />
10 ORDER BY 1;<br />
<br />
<br />
<br />
Employee JOB_ID Salary DEPARTMENT_NAME <br />
<br />
------------------------- ---------- ------------ ------------------------------ <br />
<br />
Eleni Zlotkey SA_MAN =====$10,500 Sales <br />
<br />
Jonathon Taylor SA_REP ======$8,600 Sales <br />
<br />
Pat Fay MK_REP ======$6,000 Marketing <br />
<br />
<br />
<br />
SQL><br />
<br />
SQL> SELECT last_name, salary, job_id<br />
<br />
2 FROM employees<br />
<br />
3 WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
<br />
4 AND salary ><br />
<br />
5 (SELECT MAX(salary)<br />
<br />
6 FROM employees<br />
<br />
7 JOIN departments USING (department_id)<br />
<br />
8 JOIN locations USING (location_id)<br />
<br />
9 WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
<br />
<br />
LAST_NAME SALARY JOB_ID <br />
<br />
------------------------- ---------- ---------- <br />
<br />
Kochhar 17000 AD_VP <br />
<br />
De Haan 17000 AD_VP <br />
<br />
<br />
<br />
SQL> SELECT last_name, first_name, job_id, hire_date<br />
<br />
2 FROM employees<br />
<br />
3 WHERE hire_date ><br />
<br />
4 (SELECT MAX(hire_date)<br />
<br />
5 FROM employees<br />
<br />
6 WHERE department_id =<br />
<br />
7 (SELECT department_id<br />
<br />
8 FROM departments<br />
<br />
9 WHERE UPPER(department_name) = 'IT'))<br />
<br />
10 AND (department_id !=<br />
<br />
11 (SELECT department_id<br />
<br />
12 FROM departments<br />
<br />
13 WHERE UPPER(department_name) = 'EXECUTIVE')<br />
<br />
14 OR department_id IS NULL)<br />
<br />
15 ORDER BY 4 DESC;<br />
<br />
<br />
<br />
LAST_NAME FIRST_NAME JOB_ID HIRE_DATE <br />
<br />
------------------------- -------------------- ---------- --------- <br />
<br />
Zlotkey Eleni SA_MAN 29-JAN-00 <br />
<br />
Mourgos Kevin ST_MAN 16-NOV-99 <br />
<br />
Grant Kimberely SA_REP 24-MAY-99 <br />
<br />
<br />
<br />
SQL> SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay",<br />
<br />
2 MIN(salary) "Lowest Dept/Job Pay"<br />
<br />
3 FROM employees<br />
<br />
4 WHERE UPPER(job_id) NOT LIKE '%VP'<br />
<br />
5 AND department_id NOT IN<br />
<br />
6 (SELECT department_id<br />
<br />
7 FROM departments<br />
<br />
8 WHERE UPPER(department_name) IN ('IT','SALES'))<br />
<br />
9 GROUP BY department_id, job_id<br />
<br />
10 HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
<br />
11 ORDER BY 1, 2;<br />
<br />
<br />
<br />
DEPARTMENT_ID JOB_ID Average Dept/Job Pay Lowest Dept/Job Pay <br />
<br />
------------- ---------- -------------------- ------------------- <br />
<br />
20 MK_MAN 13000 13000 <br />
<br />
20 MK_REP 6000 6000 <br />
<br />
50 ST_MAN 5800 5800 <br />
<br />
110 AC_ACCOUNT 8300 8300 <br />
<br />
110 AC_MGR 12000 12000 <br />
<br />
<br />
<br />
SQL> SELECT department_id, department_name,<br />
<br />
2 RPAD(TRIM(NVL(city, 'Not Assinged Yet')), 25, ' ') "City",<br />
<br />
3 COUNT(DISTINCT job_id) "# of Jobs"<br />
<br />
4 FROM employees<br />
<br />
5 RIGHT OUTER JOIN departments USING (department_id)<br />
<br />
6 LEFT OUTER JOIN locations USING (location_id)<br />
<br />
7 GROUP BY department_id, department_name, city;<br />
<br />
<br />
<br />
DEPARTMENT_ID DEPARTMENT_NAME City # of Jobs <br />
<br />
------------- ------------------------------ ------------------------- ---------- <br />
<br />
110 Accounting Seattle 2 <br />
<br />
50 Shipping South San Francisco 2 <br />
<br />
80 Sales Oxford 2 <br />
<br />
10 Administration Seattle 1 <br />
<br />
190 Contracting Seattle 0 <br />
<br />
90 Executive Seattle 2 <br />
<br />
20 Marketing Toronto 2 <br />
<br />
60 IT Southlake 1 <br />
<br />
<br />
<br />
8 rows selected.<br />
<br />
<br />
<br />
SQL> spool off<br />
</pre><br />
==SQL Statements==<br />
===1.===<br />
''YuJin''<br />
<pre><br />
SELECT employee_id, RPAD(CONCAT(CONCAT(last_name, ', '),first_name), 25) "Full Name",<br />
job_id,<br />
TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
"Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
ORDER BY 4 DESC;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT employee_id,<br />
SUBSTR(last_name ||' '|| first_name, 1, 25) "Full Name",<br />
job_id,<br />
TO_CHAR(hire_date,'fmMonth "First in the year" YYYY') "Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date,'fmMON') IN ('MAY','NOV')<br />
ORDER BY hire_date DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select employee_id "Emp#",<br />
(last_name ||', '|| first_name) "Full Name",<br />
job_id "Job",<br />
to_char(trunc(hire_date, 'MONTH'), 'FMMonth Ddspth "in the year"<br />
YYYY') "Start Date"<br />
from employees<br />
where to_char(hire_date, 'fmMonth') in ('May', 'November')<br />
order by hire_date desc;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT employee_id, SUBSTR(last_name ||' '|| first_name, 1, 25) "Full Name",<br />
job_id,<br />
TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
"Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
ORDER BY hire_date DESC;<br />
</pre><br />
<br />
===2.===<br />
''YuJin''<br />
<pre><br />
SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
|| job_id || ' will have a new salary of $' || salary * 1.15 "Happy Employees"<br />
FROM employees<br />
WHERE salary BETWEEN 5000 AND 12000<br />
AND job_id IN ('IT_PROG', 'ST_CLERK')<br />
ORDER BY employee_id;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT 'Employee named '||first_name||' '||last_name||' who is '||job_id||' will have a new salary of $'|| salary *1.15 "Happy Employees"<br />
FROM employees<br />
WHERE job_id IN ('IT_PROG','ST CLERK')<br />
AND (salary BETWEEN 5000 AND 12000)<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
Select ('Employee named ' || first_name ||' '|| last_name || ' who is ' || job_id || ' will have a new salary of ' || (salary*1.15)) "Happy Employees"<br />
From employees<br />
Where salary between 5000 and 12000<br />
And upper(job_id) in ('IT_PROG', 'ST_CLERK')<br />
order by employee_id;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
|| job_id || ' will have a new salary of ' || TO_CHAR(salary * 1.15, 'fm$999999') "Happy Employees"<br />
FROM employees<br />
WHERE salary BETWEEN 5000 AND 12000<br />
AND UPPER(job_id) IN ('IT_PROG', 'ST_CLERK')<br />
ORDER BY employee_id;<br />
</pre><br />
<br />
===3.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, salary, job_id,<br />
RPAD(NVL(TO_CHAR(manager_id), 'No Manager'), 10) "Manager #",<br />
LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
FROM employees<br />
WHERE (job_id LIKE 'MK%' OR manager_id IS NULL)<br />
AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
ORDER BY 2 DESC;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, salary, job_id, NVL(TO_CHAR(manager_id),'No Manager') Manager#,<br />
TO_CHAR(salary*12,'$999,999') "Total Income"<br />
FROM employees<br />
WHERE (manager_id IS NULL<br />
OR job_id LIKE 'MK%')<br />
AND ( salary* (NVL(commission_pct,0) + 1) + 1000 ) > 10000<br />
ORDER BY salary DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, salary, job_id, nvl(to_char(manager_id),'No Manager') Manager#,<br />
to_char(salary*12,'$999,999') "Total Income"<br />
from employees<br />
where (upper(job_id) like 'MK%' or manager_id IS NULL)<br />
and salary * (1 + nvl(commission_pct, 0)) + 1000 > 10000<br />
order by 2 desc;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT last_name, salary, job_id,<br />
SUBSTR(NVL(TO_CHAR(manager_id), 'No Manager'), 1, 10) "Manager #",<br />
LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
FROM employees<br />
WHERE (UPPER(job_id) LIKE 'MK%' OR manager_id IS NULL)<br />
AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
ORDER BY salary DESC;<br />
<br />
</pre><br />
<br />
===4.===<br />
''YuJin''<br />
<pre><br />
SELECT RPAD(CONCAT(CONCAT(first_name,' '),last_name), 25) "Employee", job_id,<br />
LPAD(TRIM(TO_CHAR(salary, '$999,999')), 12, '=') "Salary", department_name<br />
FROM employees e JOIN departments d<br />
ON (e.department_id = d.department_id)<br />
WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
AND salary <<br />
(SELECT MAX(salary)<br />
FROM employees<br />
WHERE SUBSTR(job_id, 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
ORDER BY 1;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT SUBSTR(first_name||' '||last_name, 25) Employee, job_id,<br />
LPAD(TO_CHAR(salary,'$99,999'), 12, '=') Salary, department_name<br />
FROM employees e JOIN departments d<br />
ON (d.department_id=e.department_id)<br />
WHERE salary < (SELECT MAX(salary)<br />
FROM employees<br />
WHERE UPPER(SUBSTR(job_id,4)) NOT IN ('VP', 'PRES', 'MAN', 'MGR')<br />
)<br />
AND UPPER(department_name) IN ('MARKETING','SALES')<br />
ORDER BY first_name, last_name<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select substr(first_name ||' '|| last_name) "Employee", job_id, to_char(salary, '$999,999', 12, '=') Salary, department_name<br />
from employees e join departments d<br />
on (e.department_id = d.department_id)<br />
where upper(department_name) in ('MARKETING', 'SALES')<br />
and salary < (select max(salary)<br />
from employees<br />
where substr(job_id,4) not in ('PRES','VP','MAN','MGR'))<br />
order by "Employee";<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT SUBSTR(first_name ||' '|| last_name, 1, 25) "Employee", job_id,<br />
LPAD(TO_CHAR(salary, 'fm$999,999'), 12, '=') "Salary", department_name<br />
FROM employees e JOIN departments d<br />
ON (e.department_id = d.department_id)<br />
WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
AND salary <<br />
(SELECT MAX(salary)<br />
FROM employees<br />
WHERE SUBSTR(UPPER(job_id), 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
ORDER BY 1;<br />
</pre><br />
<br />
===5.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
AND salary ><br />
(SELECT MAX(salary)<br />
FROM employees<br />
JOIN departments USING (department_id)<br />
JOIN locations USING (location_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE salary > (SELECT MAX(salary)<br />
FROM locations JOIN departments<br />
USING (location_id)<br />
JOIN employees<br />
USING (department_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD')<br />
)<br />
AND UPPER(job_id) NOT LIKE '%PRES'<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, salary, job_id<br />
from employees<br />
where salary > (select max(salary)<br />
from employees join departments<br />
using (department_id)<br />
join locations<br />
using (location_id)<br />
where upper(city) in ('TORONTO','OXFORD'))<br />
and upper(job_id) not like '%PRES'<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
AND salary ><br />
(SELECT MAX(salary)<br />
FROM employees<br />
JOIN departments USING (department_id)<br />
JOIN locations USING (location_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
</pre><br />
<br />
===6.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, first_name, job_id, hire_date<br />
FROM employees<br />
WHERE hire_date ><br />
(SELECT MAX(hire_date)<br />
FROM employees<br />
WHERE department_id =<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'IT'))<br />
AND (department_id !=<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'EXECUTIVE')<br />
OR department_id IS NULL)<br />
ORDER BY 4 DESC;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, first_name, job_id, hire_date<br />
FROM employees e<br />
WHERE hire_date > (SELECT MAX(hire_date)<br />
FROM employees<br />
WHERE department_id = (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'IT'<br />
)<br />
)<br />
AND (department_id <> (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) ='EXECUTIVE')<br />
OR department_id IS NULL)<br />
ORDER BY hire_date DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, first_name, job_id, hire_date<br />
from employees<br />
where hire_date > (select max(hire_date)<br />
from employees<br />
where department_id = (select department_id<br />
from departments<br />
where upper(department_name) = 'IT'))<br />
and (department_id != (select department_id<br />
from departments<br />
where upper(department_name) = 'EXECUTIVE')<br />
or department_id IS NULL)<br />
order by hire_date desc;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT last_name, first_name, job_id, hire_date<br />
FROM employees<br />
WHERE hire_date ><br />
(SELECT MAX(hire_date)<br />
FROM employees<br />
WHERE department_id =<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'IT'))<br />
AND (department_id !=<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'EXECUTIVE')<br />
OR department_id IS NULL)<br />
ORDER BY hire_date DESC;<br />
</pre><br />
<br />
===7.===<br />
''YuJin''<br />
<pre><br />
SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay",<br />
MIN(salary) "Lowest Dept/Job Pay"<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%VP'<br />
AND department_id NOT IN<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) IN ('IT','SALES'))<br />
GROUP BY department_id, job_id<br />
HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
ORDER BY 1, 2;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay", MIN(salary) "Lowest Dept/Job Pay"<br />
FROM employees<br />
WHERE department_id <> ALL (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) IN ('IT','SALES')<br />
)<br />
AND job_id NOT LIKE '%VP'<br />
GROUP BY department_id, job_id<br />
HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
ORDER BY department_id, job_id<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select department_id, job_id, avg(salary) "Average Dept/Job Pay", min(salary) "Lowest Dept/Job Pay"<br />
from employees<br />
where upper(job_id) not like '%VP'<br />
and department_id != all(select department_id<br />
from departments<br />
where upper(department_name) in ('IT','SALES'))<br />
group by department_id, job_id<br />
having min(salary) between 5000 and 15000<br />
order by department_id, job_id<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay",<br />
MIN(salary) "Lowest Dept/Job Pay"<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%VP'<br />
AND department_id != ALL<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) IN ('IT','SALES'))<br />
GROUP BY department_id, job_id<br />
HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
ORDER BY department_id, job_id;<br />
</pre><br />
<br />
===8.===<br />
''YuJin''<br />
<pre><br />
SELECT department_id, department_name,<br />
RPAD(TRIM(NVL(city, 'Not Assinged Yet')), 25, ' ') "City",<br />
COUNT(DISTINCT job_id) "# of Jobs"<br />
FROM employees<br />
RIGHT OUTER JOIN departments USING (department_id)<br />
LEFT OUTER JOIN locations USING (location_id)<br />
GROUP BY department_id, department_name, city;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT department_id, department_name, SUBSTR(NVL(city,'Not Assigned Yet'),1,25) City,<br />
COUNT(DISTINCT job_id) "# of Jobs"<br />
FROM locations l RIGHT OUTER JOIN departments d<br />
USING (location_id)<br />
LEFT OUTER JOIN employees e<br />
USING (department_id)<br />
GROUP BY department_id, department_name, city<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select department_id, department_name, substr(nvl(city,'Not Assigned Yet'),1,25) City,<br />
count(distinct job_id) "# of Jobs"<br />
from employees right outer join departments<br />
using (department_id)<br />
left outer join locations<br />
using (location_id)<br />
group by department_id, department_name, city<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT department_id, department_name,<br />
SUBSTR(NVL(city, 'Not Assinged Yet'),1, 25) "City",<br />
COUNT(DISTINCT job_id) "# of Jobs"<br />
FROM employees<br />
RIGHT OUTER JOIN departments USING (department_id)<br />
LEFT OUTER JOIN locations USING (location_id)<br />
GROUP BY department_id, department_name, city;<br />
<br />
</pre></div>
Yujin.jeong
https://wiki.cdot.senecacollege.ca/w/index.php?title=J.Y.S&diff=50981
J.Y.S
2010-11-30T21:18:09Z
<p>Yujin.jeong: /* CREATE VIEW */</p>
<hr />
<div>This page is to efficiently manage our group assignments!<br />
== Member List == <br />
*[mailto:,,yjeong@learn.senecac.on.ca,?subject=dbs301 Email All]<br />
<br />
{| class="wikitable sortable" border="1" cellpadding="5"<br />
! First Name !! Last Name !! wiki id !! Learn e-mail !! Phone<br />
|-<br />
|[[User:Yujin.jeong | YuJin]]||Jeong||[[Special:Contributions/yujin.jeong | yujin.jeong]]||[mailto:yjeong@learn.senecac.on.ca?sujbect=dbs301 yjeong]|| 647 - 832 - 6771<br />
|-<br />
<br />
|-<br />
|Saad|| || || ||<br />
|-<br />
<br />
|-<br />
|James|| || || ||<br />
|-<br />
|}<br />
<br />
=Assignment 3 (worth 9%)=<br />
==Due Date==<br />
Thursday, December 2nd, 3:00pm<br />
Printout of all TIC charts and DDL / DML statements<br />
<br />
==Solution==<br />
==== DDL Statements (CREATE TABLE) ====<br />
1. AREA<br />
<pre><br />
CREATE TABLE AREA<br />
(<br />
AreaID NUMBER(4) CONSTRAINT area_areaid_pk PRIMARY KEY,<br />
AreaName VARCHAR2(15) NOT NULL CONSTRAINT area_areaname_uk UNIQUE,<br />
ElmSchool VARCHAR2(40),<br />
MidSchool VARCHAR2(40),<br />
HighSchool VARCHAR2(40),<br />
Comments VARCHAR2(100)<br />
);<br />
</pre><br />
2. AGENCY<br />
<pre><br />
CREATE TABLE AGENCY<br />
(<br />
AgencyID NUMBER(4) CONSTRAINT agency_agencyid_pk PRIMARY KEY,<br />
AgencyName VARCHAR2(30) NOT NULL CONSTRAINT agency_agencyname_uk UNIQUE,<br />
AgencyPhone VARCHAR2(15) NOT NULL CONSTRAINT agency_agencyphone_uk UNIQUE<br />
);<br />
</pre><br />
3. PROPERTY<br />
<pre><br />
CREATE TABLE PROPERTY<br />
(<br />
PropertyID NUMBER(6),<br />
Street VARCHAR2(40) NOT NULL,<br />
City VARCHAR2(15) NOT NULL,<br />
Province CHAR(2) NOT NULL,<br />
PostalCode CHAR(6) NOT NULL,<br />
Bedrooms NUMBER(1) NOT NULL,<br />
Bathrooms NUMBER(1) NOT NULL,<br />
ListingPrice NUMBER(7) NOT NULL,<br />
AreaID NUMBER(4) NOT NULL,<br />
CONSTRAINT property_propertyid_pk PRIMARY KEY(PropertyID),<br />
CONSTRAINT property_bedrooms_ck CHECK(Bedrooms BETWEEN 1 AND 9),<br />
CONSTRAINT property_bathrooms_ck CHECK(Bathrooms BETWEEN 1 AND 9),<br />
CONSTRAINT property_listingprice_ck CHECK(ListingPrice BETWEEN 1 AND 4999999),<br />
CONSTRAINT property_areaid_fk FOREIGN KEY(AreaID) REFERENCES AREA(AreaID)<br />
);<br />
</pre><br />
4. SINGLE<br />
<pre><br />
CREATE TABLE SINGLE<br />
(<br />
PropertyID NUMBER(6), <br />
LotSize NUMBER(8,2) NOT NULL,<br />
CONSTRAINT single_propertyID_pk PRIMARY KEY(PropertyID), <br />
CONSTRAINT single_propertyID_fk FOREIGN KEY(PropertyID) REFERENCES PROPERTY(PropertyID),<br />
CONSTRAINT single_lotsize_ck CHECK(LotSize > 0)<br />
);<br />
<br />
</pre><br />
5. CONDO<br />
<pre><br />
CREATE TABLE CONDO<br />
(<br />
PropertyID NUMBER(6),<br />
Fee NUMBER(8,2) NOT NULL, <br />
CONSTRAINT condo_propertyID_pk PRIMARY KEY(PropertyID),<br />
CONSTRAINT condo_propertyID_fk FOREIGN KEY(PropertyID) REFERENCES PROPERTY(PropertyID),<br />
CONSTRAINT condo_fee_ck CHECK(Fee > 0)<br />
);<br />
<br />
</pre><br />
6. OUTLET<br />
<pre><br />
CREATE TABLE OUTLET<br />
(<br />
OutletID NUMBER(4), <br />
OutletName VARCHAR2(20) NOT NULL,<br />
OutletPhone VARCHAR2(15) NOT NULL,<br />
OutletType CHAR(1) NOT NULL,<br />
CONSTRAINT outlet_outletid_pk PRIMARY KEY(OutletID),<br />
CONSTRAINT outlet_outlettype_ck CHECK(OutletType IN('N','M','W','F')),<br />
CONSTRAINT outlet_outletname_type_uk UNIQUE(OutletName, OutletType)<br />
);<br />
<br />
</pre><br />
7. ADVERTISEMENT<br />
<pre><br />
CREATE TABLE ADVERTISEMENT<br />
(<br />
PropertyID NUMBER(6),<br />
OutletID NUMBER(4),<br />
AdvDate DATE,<br />
AdvCost NUMBER(6) NOT NULL,<br />
CONSTRAINT ad_adid_pk PRIMARY KEY(PropertyID, OutletID),<br />
CONSTRAINT ad_propertyid_fk FOREIGN KEY(PropertyID) REFERENCES PROPERTY(PropertyID),<br />
CONSTRAINT ad_outletid_fk FOREIGN KEY(OutletID) REFERENCES OUTLET(OutletID),<br />
CONSTRAINT ad_advcost_ck CHECK(AdvCost > 0)<br />
);<br />
</pre><br />
8. CLIENT<br />
<pre><br />
CREATE TABLE CLIENT<br />
(<br />
ClientID NUMBER(6),<br />
Fname VARCHAR2(15) NOT NULL,<br />
Lname VARCHAR2(15) NOT NULL,<br />
Phone VARCHAR2(15) NOT NULL,<br />
Email VARCHAR2(30),<br />
RefID NUMBER(6),<br />
CONSTRAINT client_clientid_pk PRIMARY KEY(ClientID),<br />
CONSTRAINT client_phone_uk UNIQUE(Phone),<br />
CONSTRAINT client_email_uk UNIQUE(Email),<br />
CONSTRAINT client_refid_fk FOREIGN KEY(RefID) REFERENCES CLIENT(ClientID)<br />
);<br />
</pre><br />
9. DEED<br />
<pre><br />
CREATE TABLE DEED<br />
(<br />
PropertyID NUMBER(6),<br />
SellerID NUMBER(6),<br />
OwnPct NUMBER(5,2) NOT NULL,<br />
BuyerID NUMBER(6),<br />
BuyPrice NUMBER(7),<br />
CONSTRAINT deed_deedid_pk PRIMARY KEY(PropertyID, SellerID),<br />
CONSTRAINT deed_propertyid_fk FOREIGN KEY(PropertyID) REFERENCES PROPERTY(PropertyID),<br />
CONSTRAINT deed_sellerid_fk FOREIGN KEY(SellerID) REFERENCES CLIENT(ClientID),<br />
CONSTRAINT deed_buyerid_fk FOREIGN KEY(BuyerID) REFERENCES CLIENT(ClientID),<br />
CONSTRAINT deed_ownpct_ck CHECK(OwnPct > 0 AND OwnPct <= 100),<br />
CONSTRAINT deed_buyprice_ck CHECK(BuyPrice BETWEEN 1 AND 4999999)<br />
);<br />
<br />
</pre><br />
<br />
==== DML Statements (INSERT INTO) ====<br />
<br />
1. AREA<BR><br />
<pre><br />
INSERT ALL<br />
INTO AREA VALUES(1001, 'Bayview Village', 'Adrienne Clarkson Public School', 'Amesbury Middle School', 'Bayview Secondary School', 'Upper middle class to upper class neighborhood in Toronto.')<br />
INTO AREA VALUES(3001,'Laurelwood', 'Elizabeth Ziegler Primary School','Waterloo Middle School','Saint David Catholic Secondary School','Close to University of Waterloo and many popular amenities.')<br />
INTO AREA VALUES(4001,'Silver Heights','Alison Park Primary School','Eastwood Middle School','King Edward Secondary School',null)<br />
INTO AREA VALUES(5001,'Kitsilano','Henry Hudson Elementary School','St George School','Kitsilano Secondary School','Very well-off area.')<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
<br />
2. AGENCY<BR><br />
<pre><br />
INSERT ALL<br />
INTO AGENCY VALUES(1055,'Sutton Group Regal Realty','416.875.9873')<br />
INTO AGENCY VALUES(3079,'MacDonald Realty','604.986.0231')<br />
INTO AGENCY VALUES(7024,'Royal LePage Groupe Newton','514.234.9283')<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
<br />
3. PROPERTY<BR><br />
<pre><br />
INSERT ALL<br />
INTO PROPERTY VALUES(134982,'27 King"'"s College Circle','Toronto','ON','M5S1A1',2,2,380000,1001,1055)<br />
INTO PROPERTY VALUES(149800,'17 Pleasant View Dr.','Toronto','ON','M2J2H1',3,2,470000,1001, null)<br />
INTO PROPERTY VALUES(152932,'17 Barberry Pl. #1313','Toronto','ON','M8W7V4',1,1,259888,1001, null)<br />
INTO PROPERTY VALUES(495820,'776 Laurelwood Dr.','Waterloo','ON','H3A2T5',2,2,295000,3001,3079)<br />
INTO PROPERTY VALUES(500211,'409 Kelso Cr.','Cambridge','ON','H3Y7S3',3,2,485000,4001, null)<br />
INTO PROPERTY VALUES(139204,'3043 Crown St.','Vancouver','BC','U3J3M6',5,3,1398000,5001,7024)<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
4. SINGLE<BR><br />
<pre><br />
INSERT ALL<br />
INTO SINGLE VALUES(134982,3716)<br />
INTO SINGLE VALUES(149800,1005)<br />
INTO SINGLE VALUES(139204,5400)<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
5. CONDO<BR><br />
<pre><br />
INSERT ALL<br />
INTO CONDO VALUES(152932,250)<br />
INTO CONDO VALUES(495820,320)<br />
INTO CONDO VALUES(500211,550)<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
6. OUTLET<BR><br />
<pre><br />
INSERT ALL<br />
INTO OUTLET VALUES(1000,'Toronto Star','416.923.1782','N')<br />
INTO OUTLET VALUES(2001,'Waterloo Living','519.098.9283','M')<br />
INTO OUTLET VALUES(8001,'Canadian Life','416.982.0192','W')<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
7. ADVERTISEMENT<BR><br />
<pre><br />
INSERT ALL<br />
INTO ADVERTISEMENT VALUES(134982,1000,'25-NOV-10',350)<br />
INTO ADVERTISEMENT VALUES(149800,1000,'27-NOV-10',250)<br />
INTO ADVERTISEMENT VALUES(495820,2001,'27-NOV-10',300)<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
8. CLIENT<BR><br />
<pre><br />
INSERT ALL<br />
INTO CLIENT VALUES(1010,'Andrew','Lee','647.978.0192','andrew11@hotmail.com', null)<br />
INTO CLIENT VALUES(1011,'Daniel','Smith','416.895.9762','dsmith@gmail.com',5010)<br />
INTO CLIENT VALUES(1012,'Olivia','Wilson','647.915.2738','oliviaorange@gmail.com', null)<br />
INTO CLIENT VALUES(1013,'Jayden','Martin','519.225.1928','jmartin@rogers.com', null)<br />
INTO CLIENT VALUES(1014,'Maria','Brown','416.182.0021','maria.brown@hotmail.com', null)<br />
INTO CLIENT VALUES(2010,'Ethan','Roy','226.289.0394','ethanrockstar@bell.com', null)<br />
INTO CLIENT VALUES(2011,'Sophia','Tremblay','647.297.2918','stremblay@gmail.com',5010)<br />
INTO CLIENT VALUES(3010,'Ryan','Wilson','604.837.1029','wilsonryan@gmail.com', null)<br />
INTO CLIENT VALUES(3012,'Luis','Jones','416.832.6771','luis7787@rogers.com', null)<br />
INTO CLIENT VALUES(5010,'Mary','Anderson','647.234.5690','andersonpink@gmail.com', null)<br />
INTO CLIENT VALUES(7010,'James','White','647.298.9182','james.white@bell.com',1010)<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
9. DEED<BR><br />
<pre><br />
INSERT ALL<br />
INTO VALUES(149800,1010,75,5010,352300)<br />
INTO VALUES(139204,1012,100,3010,1394000)<br />
INTO VALUES(134982,2011,50,1014,200000)<br />
SELECT * FROM DUAL;<br />
</pre><br />
<br />
==== CREATE VIEW ====<br />
<pre><br />
CREATE VIEW PropAreaLocSeller_VU AS<br />
SELECT SUBSTR((ar.AreaName || ', ' || p.City || ', ' || p.Street || ', ' || p.PostalCode), 1, 60) "Property Location",<br />
TO_CHAR(p.ListingPrice,'$9,999,999') "Price", sgl.LotSize || ' sqft' "LotSize",<br />
s.Lname || ', ' || s.Fname "Full Name", s.phone "Phone", d.OwnPct "OwnPct", NVL(ag.AgencyName, 'No Agency') "Agency"<br />
FROM Property p<br />
JOIN Single sgl ON (p.PropertyID = sgl.PropertyID)<br />
JOIN Area ar ON (p.AreaID = ar.AreaID)<br />
LEFT OUTER JOIN Agency ag ON (p.AgencyID = ag.AgencyID)<br />
JOIN Deed d ON (p.PropertyID = d.PropertyID)<br />
JOIN Client s ON (d.SellerID = s.ClientID);<br />
</pre><br />
<br />
=Assignment 1=<br />
==Due Date==<br />
Thursday, October 21st, 4:00pm<br />
Printout submission only( SELECT Statements + ALL outputs)<br />
==Description==<br />
[https://cs.senecac.on.ca/~nconkic/assign1.doc Assignment1]<br />
==Solution==<br />
<pre><br />
SQL> SELECT employee_id, RPAD(CONCAT(CONCAT(last_name, ', '),first_name), 25) "Full Name",<br />
<br />
2 job_id,<br />
<br />
3 TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
<br />
4 "Start Date"<br />
<br />
5 FROM employees<br />
<br />
6 WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
<br />
7 ORDER BY 4 DESC;<br />
<br />
<br />
<br />
EMPLOYEE_ID Full Name JOB_ID Start Date <br />
<br />
----------- ------------------------- ---------- ----------------------------------------- <br />
<br />
124 Mourgos, Kevin ST_MAN November First in the year 1999 <br />
<br />
178 Grant, Kimberely SA_REP May First in the year 1999 <br />
<br />
174 Abel, Ellen SA_REP May First in the year 1996 <br />
<br />
104 Ernst, Bruce IT_PROG May First in the year 1991 <br />
<br />
<br />
<br />
SQL> SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
<br />
2 || job_id || ' will have a new salary of $' || salary * 1.15 "Happy Employees"<br />
<br />
3 FROM employees<br />
<br />
4 WHERE salary BETWEEN 5000 AND 12000<br />
<br />
5 AND job_id IN ('IT_PROG', 'ST_CLERK')<br />
<br />
6 ORDER BY employee_id;<br />
<br />
<br />
<br />
Happy Employees <br />
<br />
----------------------------------------------------------------------------------------------------<br />
<br />
Employee named Alexander Hunold who is IT_PROG will have a new salary of $10350 <br />
<br />
Employee named Bruce Ernst who is IT_PROG will have a new salary of $6900 <br />
<br />
<br />
<br />
SQL> SELECT last_name, salary, job_id,<br />
<br />
2 RPAD(NVL(TO_CHAR(manager_id), 'No Manager'), 10) "Manager #",<br />
<br />
3 LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
<br />
4 FROM employees<br />
<br />
5 WHERE (job_id LIKE 'MK%' OR manager_id IS NULL)<br />
<br />
6 AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
<br />
7 ORDER BY 2 DESC;<br />
<br />
<br />
<br />
LAST_NAME SALARY JOB_ID Manager # Total Income <br />
<br />
------------------------- ---------- ---------- ---------- ------------ <br />
<br />
King 24000 AD_PRES No Manager $288,000 <br />
<br />
Hartstein 13000 MK_MAN 100 $156,000 <br />
<br />
<br />
<br />
SQL> SELECT RPAD(CONCAT(CONCAT(first_name,' '),last_name), 25) "Employee", job_id,<br />
<br />
2 LPAD(TRIM(TO_CHAR(salary, '$999,999')), 12, '=') "Salary", department_name<br />
<br />
3 FROM employees e JOIN departments d<br />
<br />
4 ON (e.department_id = d.department_id)<br />
<br />
5 WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
<br />
6 AND salary <<br />
<br />
7 (SELECT MAX(salary)<br />
<br />
8 FROM employees<br />
<br />
9 WHERE SUBSTR(job_id, 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
<br />
10 ORDER BY 1;<br />
<br />
<br />
<br />
Employee JOB_ID Salary DEPARTMENT_NAME <br />
<br />
------------------------- ---------- ------------ ------------------------------ <br />
<br />
Eleni Zlotkey SA_MAN =====$10,500 Sales <br />
<br />
Jonathon Taylor SA_REP ======$8,600 Sales <br />
<br />
Pat Fay MK_REP ======$6,000 Marketing <br />
<br />
<br />
<br />
SQL><br />
<br />
SQL> SELECT last_name, salary, job_id<br />
<br />
2 FROM employees<br />
<br />
3 WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
<br />
4 AND salary ><br />
<br />
5 (SELECT MAX(salary)<br />
<br />
6 FROM employees<br />
<br />
7 JOIN departments USING (department_id)<br />
<br />
8 JOIN locations USING (location_id)<br />
<br />
9 WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
<br />
<br />
LAST_NAME SALARY JOB_ID <br />
<br />
------------------------- ---------- ---------- <br />
<br />
Kochhar 17000 AD_VP <br />
<br />
De Haan 17000 AD_VP <br />
<br />
<br />
<br />
SQL> SELECT last_name, first_name, job_id, hire_date<br />
<br />
2 FROM employees<br />
<br />
3 WHERE hire_date ><br />
<br />
4 (SELECT MAX(hire_date)<br />
<br />
5 FROM employees<br />
<br />
6 WHERE department_id =<br />
<br />
7 (SELECT department_id<br />
<br />
8 FROM departments<br />
<br />
9 WHERE UPPER(department_name) = 'IT'))<br />
<br />
10 AND (department_id !=<br />
<br />
11 (SELECT department_id<br />
<br />
12 FROM departments<br />
<br />
13 WHERE UPPER(department_name) = 'EXECUTIVE')<br />
<br />
14 OR department_id IS NULL)<br />
<br />
15 ORDER BY 4 DESC;<br />
<br />
<br />
<br />
LAST_NAME FIRST_NAME JOB_ID HIRE_DATE <br />
<br />
------------------------- -------------------- ---------- --------- <br />
<br />
Zlotkey Eleni SA_MAN 29-JAN-00 <br />
<br />
Mourgos Kevin ST_MAN 16-NOV-99 <br />
<br />
Grant Kimberely SA_REP 24-MAY-99 <br />
<br />
<br />
<br />
SQL> SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay",<br />
<br />
2 MIN(salary) "Lowest Dept/Job Pay"<br />
<br />
3 FROM employees<br />
<br />
4 WHERE UPPER(job_id) NOT LIKE '%VP'<br />
<br />
5 AND department_id NOT IN<br />
<br />
6 (SELECT department_id<br />
<br />
7 FROM departments<br />
<br />
8 WHERE UPPER(department_name) IN ('IT','SALES'))<br />
<br />
9 GROUP BY department_id, job_id<br />
<br />
10 HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
<br />
11 ORDER BY 1, 2;<br />
<br />
<br />
<br />
DEPARTMENT_ID JOB_ID Average Dept/Job Pay Lowest Dept/Job Pay <br />
<br />
------------- ---------- -------------------- ------------------- <br />
<br />
20 MK_MAN 13000 13000 <br />
<br />
20 MK_REP 6000 6000 <br />
<br />
50 ST_MAN 5800 5800 <br />
<br />
110 AC_ACCOUNT 8300 8300 <br />
<br />
110 AC_MGR 12000 12000 <br />
<br />
<br />
<br />
SQL> SELECT department_id, department_name,<br />
<br />
2 RPAD(TRIM(NVL(city, 'Not Assinged Yet')), 25, ' ') "City",<br />
<br />
3 COUNT(DISTINCT job_id) "# of Jobs"<br />
<br />
4 FROM employees<br />
<br />
5 RIGHT OUTER JOIN departments USING (department_id)<br />
<br />
6 LEFT OUTER JOIN locations USING (location_id)<br />
<br />
7 GROUP BY department_id, department_name, city;<br />
<br />
<br />
<br />
DEPARTMENT_ID DEPARTMENT_NAME City # of Jobs <br />
<br />
------------- ------------------------------ ------------------------- ---------- <br />
<br />
110 Accounting Seattle 2 <br />
<br />
50 Shipping South San Francisco 2 <br />
<br />
80 Sales Oxford 2 <br />
<br />
10 Administration Seattle 1 <br />
<br />
190 Contracting Seattle 0 <br />
<br />
90 Executive Seattle 2 <br />
<br />
20 Marketing Toronto 2 <br />
<br />
60 IT Southlake 1 <br />
<br />
<br />
<br />
8 rows selected.<br />
<br />
<br />
<br />
SQL> spool off<br />
</pre><br />
==SQL Statements==<br />
===1.===<br />
''YuJin''<br />
<pre><br />
SELECT employee_id, RPAD(CONCAT(CONCAT(last_name, ', '),first_name), 25) "Full Name",<br />
job_id,<br />
TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
"Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
ORDER BY 4 DESC;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT employee_id,<br />
SUBSTR(last_name ||' '|| first_name, 1, 25) "Full Name",<br />
job_id,<br />
TO_CHAR(hire_date,'fmMonth "First in the year" YYYY') "Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date,'fmMON') IN ('MAY','NOV')<br />
ORDER BY hire_date DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select employee_id "Emp#",<br />
(last_name ||', '|| first_name) "Full Name",<br />
job_id "Job",<br />
to_char(trunc(hire_date, 'MONTH'), 'FMMonth Ddspth "in the year"<br />
YYYY') "Start Date"<br />
from employees<br />
where to_char(hire_date, 'fmMonth') in ('May', 'November')<br />
order by hire_date desc;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT employee_id, SUBSTR(last_name ||' '|| first_name, 1, 25) "Full Name",<br />
job_id,<br />
TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
"Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
ORDER BY hire_date DESC;<br />
</pre><br />
<br />
===2.===<br />
''YuJin''<br />
<pre><br />
SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
|| job_id || ' will have a new salary of $' || salary * 1.15 "Happy Employees"<br />
FROM employees<br />
WHERE salary BETWEEN 5000 AND 12000<br />
AND job_id IN ('IT_PROG', 'ST_CLERK')<br />
ORDER BY employee_id;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT 'Employee named '||first_name||' '||last_name||' who is '||job_id||' will have a new salary of $'|| salary *1.15 "Happy Employees"<br />
FROM employees<br />
WHERE job_id IN ('IT_PROG','ST CLERK')<br />
AND (salary BETWEEN 5000 AND 12000)<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
Select ('Employee named ' || first_name ||' '|| last_name || ' who is ' || job_id || ' will have a new salary of ' || (salary*1.15)) "Happy Employees"<br />
From employees<br />
Where salary between 5000 and 12000<br />
And upper(job_id) in ('IT_PROG', 'ST_CLERK')<br />
order by employee_id;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
|| job_id || ' will have a new salary of ' || TO_CHAR(salary * 1.15, 'fm$999999') "Happy Employees"<br />
FROM employees<br />
WHERE salary BETWEEN 5000 AND 12000<br />
AND UPPER(job_id) IN ('IT_PROG', 'ST_CLERK')<br />
ORDER BY employee_id;<br />
</pre><br />
<br />
===3.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, salary, job_id,<br />
RPAD(NVL(TO_CHAR(manager_id), 'No Manager'), 10) "Manager #",<br />
LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
FROM employees<br />
WHERE (job_id LIKE 'MK%' OR manager_id IS NULL)<br />
AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
ORDER BY 2 DESC;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, salary, job_id, NVL(TO_CHAR(manager_id),'No Manager') Manager#,<br />
TO_CHAR(salary*12,'$999,999') "Total Income"<br />
FROM employees<br />
WHERE (manager_id IS NULL<br />
OR job_id LIKE 'MK%')<br />
AND ( salary* (NVL(commission_pct,0) + 1) + 1000 ) > 10000<br />
ORDER BY salary DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, salary, job_id, nvl(to_char(manager_id),'No Manager') Manager#,<br />
to_char(salary*12,'$999,999') "Total Income"<br />
from employees<br />
where (upper(job_id) like 'MK%' or manager_id IS NULL)<br />
and salary * (1 + nvl(commission_pct, 0)) + 1000 > 10000<br />
order by 2 desc;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT last_name, salary, job_id,<br />
SUBSTR(NVL(TO_CHAR(manager_id), 'No Manager'), 1, 10) "Manager #",<br />
LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
FROM employees<br />
WHERE (UPPER(job_id) LIKE 'MK%' OR manager_id IS NULL)<br />
AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
ORDER BY salary DESC;<br />
<br />
</pre><br />
<br />
===4.===<br />
''YuJin''<br />
<pre><br />
SELECT RPAD(CONCAT(CONCAT(first_name,' '),last_name), 25) "Employee", job_id,<br />
LPAD(TRIM(TO_CHAR(salary, '$999,999')), 12, '=') "Salary", department_name<br />
FROM employees e JOIN departments d<br />
ON (e.department_id = d.department_id)<br />
WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
AND salary <<br />
(SELECT MAX(salary)<br />
FROM employees<br />
WHERE SUBSTR(job_id, 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
ORDER BY 1;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT SUBSTR(first_name||' '||last_name, 25) Employee, job_id,<br />
LPAD(TO_CHAR(salary,'$99,999'), 12, '=') Salary, department_name<br />
FROM employees e JOIN departments d<br />
ON (d.department_id=e.department_id)<br />
WHERE salary < (SELECT MAX(salary)<br />
FROM employees<br />
WHERE UPPER(SUBSTR(job_id,4)) NOT IN ('VP', 'PRES', 'MAN', 'MGR')<br />
)<br />
AND UPPER(department_name) IN ('MARKETING','SALES')<br />
ORDER BY first_name, last_name<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select substr(first_name ||' '|| last_name) "Employee", job_id, to_char(salary, '$999,999', 12, '=') Salary, department_name<br />
from employees e join departments d<br />
on (e.department_id = d.department_id)<br />
where upper(department_name) in ('MARKETING', 'SALES')<br />
and salary < (select max(salary)<br />
from employees<br />
where substr(job_id,4) not in ('PRES','VP','MAN','MGR'))<br />
order by "Employee";<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT SUBSTR(first_name ||' '|| last_name, 1, 25) "Employee", job_id,<br />
LPAD(TO_CHAR(salary, 'fm$999,999'), 12, '=') "Salary", department_name<br />
FROM employees e JOIN departments d<br />
ON (e.department_id = d.department_id)<br />
WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
AND salary <<br />
(SELECT MAX(salary)<br />
FROM employees<br />
WHERE SUBSTR(UPPER(job_id), 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
ORDER BY 1;<br />
</pre><br />
<br />
===5.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
AND salary ><br />
(SELECT MAX(salary)<br />
FROM employees<br />
JOIN departments USING (department_id)<br />
JOIN locations USING (location_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE salary > (SELECT MAX(salary)<br />
FROM locations JOIN departments<br />
USING (location_id)<br />
JOIN employees<br />
USING (department_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD')<br />
)<br />
AND UPPER(job_id) NOT LIKE '%PRES'<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, salary, job_id<br />
from employees<br />
where salary > (select max(salary)<br />
from employees join departments<br />
using (department_id)<br />
join locations<br />
using (location_id)<br />
where upper(city) in ('TORONTO','OXFORD'))<br />
and upper(job_id) not like '%PRES'<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
AND salary ><br />
(SELECT MAX(salary)<br />
FROM employees<br />
JOIN departments USING (department_id)<br />
JOIN locations USING (location_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
</pre><br />
<br />
===6.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, first_name, job_id, hire_date<br />
FROM employees<br />
WHERE hire_date ><br />
(SELECT MAX(hire_date)<br />
FROM employees<br />
WHERE department_id =<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'IT'))<br />
AND (department_id !=<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'EXECUTIVE')<br />
OR department_id IS NULL)<br />
ORDER BY 4 DESC;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, first_name, job_id, hire_date<br />
FROM employees e<br />
WHERE hire_date > (SELECT MAX(hire_date)<br />
FROM employees<br />
WHERE department_id = (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'IT'<br />
)<br />
)<br />
AND (department_id <> (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) ='EXECUTIVE')<br />
OR department_id IS NULL)<br />
ORDER BY hire_date DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, first_name, job_id, hire_date<br />
from employees<br />
where hire_date > (select max(hire_date)<br />
from employees<br />
where department_id = (select department_id<br />
from departments<br />
where upper(department_name) = 'IT'))<br />
and (department_id != (select department_id<br />
from departments<br />
where upper(department_name) = 'EXECUTIVE')<br />
or department_id IS NULL)<br />
order by hire_date desc;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT last_name, first_name, job_id, hire_date<br />
FROM employees<br />
WHERE hire_date ><br />
(SELECT MAX(hire_date)<br />
FROM employees<br />
WHERE department_id =<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'IT'))<br />
AND (department_id !=<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'EXECUTIVE')<br />
OR department_id IS NULL)<br />
ORDER BY hire_date DESC;<br />
</pre><br />
<br />
===7.===<br />
''YuJin''<br />
<pre><br />
SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay",<br />
MIN(salary) "Lowest Dept/Job Pay"<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%VP'<br />
AND department_id NOT IN<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) IN ('IT','SALES'))<br />
GROUP BY department_id, job_id<br />
HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
ORDER BY 1, 2;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay", MIN(salary) "Lowest Dept/Job Pay"<br />
FROM employees<br />
WHERE department_id <> ALL (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) IN ('IT','SALES')<br />
)<br />
AND job_id NOT LIKE '%VP'<br />
GROUP BY department_id, job_id<br />
HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
ORDER BY department_id, job_id<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select department_id, job_id, avg(salary) "Average Dept/Job Pay", min(salary) "Lowest Dept/Job Pay"<br />
from employees<br />
where upper(job_id) not like '%VP'<br />
and department_id != all(select department_id<br />
from departments<br />
where upper(department_name) in ('IT','SALES'))<br />
group by department_id, job_id<br />
having min(salary) between 5000 and 15000<br />
order by department_id, job_id<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay",<br />
MIN(salary) "Lowest Dept/Job Pay"<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%VP'<br />
AND department_id != ALL<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) IN ('IT','SALES'))<br />
GROUP BY department_id, job_id<br />
HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
ORDER BY department_id, job_id;<br />
</pre><br />
<br />
===8.===<br />
''YuJin''<br />
<pre><br />
SELECT department_id, department_name,<br />
RPAD(TRIM(NVL(city, 'Not Assinged Yet')), 25, ' ') "City",<br />
COUNT(DISTINCT job_id) "# of Jobs"<br />
FROM employees<br />
RIGHT OUTER JOIN departments USING (department_id)<br />
LEFT OUTER JOIN locations USING (location_id)<br />
GROUP BY department_id, department_name, city;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT department_id, department_name, SUBSTR(NVL(city,'Not Assigned Yet'),1,25) City,<br />
COUNT(DISTINCT job_id) "# of Jobs"<br />
FROM locations l RIGHT OUTER JOIN departments d<br />
USING (location_id)<br />
LEFT OUTER JOIN employees e<br />
USING (department_id)<br />
GROUP BY department_id, department_name, city<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select department_id, department_name, substr(nvl(city,'Not Assigned Yet'),1,25) City,<br />
count(distinct job_id) "# of Jobs"<br />
from employees right outer join departments<br />
using (department_id)<br />
left outer join locations<br />
using (location_id)<br />
group by department_id, department_name, city<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT department_id, department_name,<br />
SUBSTR(NVL(city, 'Not Assinged Yet'),1, 25) "City",<br />
COUNT(DISTINCT job_id) "# of Jobs"<br />
FROM employees<br />
RIGHT OUTER JOIN departments USING (department_id)<br />
LEFT OUTER JOIN locations USING (location_id)<br />
GROUP BY department_id, department_name, city;<br />
<br />
</pre></div>
Yujin.jeong
https://wiki.cdot.senecacollege.ca/w/index.php?title=J.Y.S&diff=50980
J.Y.S
2010-11-30T21:07:23Z
<p>Yujin.jeong: /* CREATE VIEW */</p>
<hr />
<div>This page is to efficiently manage our group assignments!<br />
== Member List == <br />
*[mailto:,,yjeong@learn.senecac.on.ca,?subject=dbs301 Email All]<br />
<br />
{| class="wikitable sortable" border="1" cellpadding="5"<br />
! First Name !! Last Name !! wiki id !! Learn e-mail !! Phone<br />
|-<br />
|[[User:Yujin.jeong | YuJin]]||Jeong||[[Special:Contributions/yujin.jeong | yujin.jeong]]||[mailto:yjeong@learn.senecac.on.ca?sujbect=dbs301 yjeong]|| 647 - 832 - 6771<br />
|-<br />
<br />
|-<br />
|Saad|| || || ||<br />
|-<br />
<br />
|-<br />
|James|| || || ||<br />
|-<br />
|}<br />
<br />
=Assignment 3 (worth 9%)=<br />
==Due Date==<br />
Thursday, December 2nd, 3:00pm<br />
Printout of all TIC charts and DDL / DML statements<br />
<br />
==Solution==<br />
==== DDL Statements (CREATE TABLE) ====<br />
1. AREA<br />
<pre><br />
CREATE TABLE AREA<br />
(<br />
AreaID NUMBER(4) CONSTRAINT area_areaid_pk PRIMARY KEY,<br />
AreaName VARCHAR2(15) NOT NULL CONSTRAINT area_areaname_uk UNIQUE,<br />
ElmSchool VARCHAR2(40),<br />
MidSchool VARCHAR2(40),<br />
HighSchool VARCHAR2(40),<br />
Comments VARCHAR2(100)<br />
);<br />
</pre><br />
2. AGENCY<br />
<pre><br />
CREATE TABLE AGENCY<br />
(<br />
AgencyID NUMBER(4) CONSTRAINT agency_agencyid_pk PRIMARY KEY,<br />
AgencyName VARCHAR2(30) NOT NULL CONSTRAINT agency_agencyname_uk UNIQUE,<br />
AgencyPhone VARCHAR2(15) NOT NULL CONSTRAINT agency_agencyphone_uk UNIQUE<br />
);<br />
</pre><br />
3. PROPERTY<br />
<pre><br />
CREATE TABLE PROPERTY<br />
(<br />
PropertyID NUMBER(6),<br />
Street VARCHAR2(40) NOT NULL,<br />
City VARCHAR2(15) NOT NULL,<br />
Province CHAR(2) NOT NULL,<br />
PostalCode CHAR(6) NOT NULL,<br />
Bedrooms NUMBER(1) NOT NULL,<br />
Bathrooms NUMBER(1) NOT NULL,<br />
ListingPrice NUMBER(7) NOT NULL,<br />
AreaID NUMBER(4) NOT NULL,<br />
CONSTRAINT property_propertyid_pk PRIMARY KEY(PropertyID),<br />
CONSTRAINT property_bedrooms_ck CHECK(Bedrooms BETWEEN 1 AND 9),<br />
CONSTRAINT property_bathrooms_ck CHECK(Bathrooms BETWEEN 1 AND 9),<br />
CONSTRAINT property_listingprice_ck CHECK(ListingPrice BETWEEN 1 AND 4999999),<br />
CONSTRAINT property_areaid_fk FOREIGN KEY(AreaID) REFERENCES AREA(AreaID)<br />
);<br />
</pre><br />
4. SINGLE<br />
<pre><br />
CREATE TABLE SINGLE<br />
(<br />
PropertyID NUMBER(6), <br />
LotSize NUMBER(8,2) NOT NULL,<br />
CONSTRAINT single_propertyID_pk PRIMARY KEY(PropertyID), <br />
CONSTRAINT single_propertyID_fk FOREIGN KEY(PropertyID) REFERENCES PROPERTY(PropertyID),<br />
CONSTRAINT single_lotsize_ck CHECK(LotSize > 0)<br />
);<br />
<br />
</pre><br />
5. CONDO<br />
<pre><br />
CREATE TABLE CONDO<br />
(<br />
PropertyID NUMBER(6),<br />
Fee NUMBER(8,2) NOT NULL, <br />
CONSTRAINT condo_propertyID_pk PRIMARY KEY(PropertyID),<br />
CONSTRAINT condo_propertyID_fk FOREIGN KEY(PropertyID) REFERENCES PROPERTY(PropertyID),<br />
CONSTRAINT condo_fee_ck CHECK(Fee > 0)<br />
);<br />
<br />
</pre><br />
6. OUTLET<br />
<pre><br />
CREATE TABLE OUTLET<br />
(<br />
OutletID NUMBER(4), <br />
OutletName VARCHAR2(20) NOT NULL,<br />
OutletPhone VARCHAR2(15) NOT NULL,<br />
OutletType CHAR(1) NOT NULL,<br />
CONSTRAINT outlet_outletid_pk PRIMARY KEY(OutletID),<br />
CONSTRAINT outlet_outlettype_ck CHECK(OutletType IN('N','M','W','F')),<br />
CONSTRAINT outlet_outletname_type_uk UNIQUE(OutletName, OutletType)<br />
);<br />
<br />
</pre><br />
7. ADVERTISEMENT<br />
<pre><br />
CREATE TABLE ADVERTISEMENT<br />
(<br />
PropertyID NUMBER(6),<br />
OutletID NUMBER(4),<br />
AdvDate DATE,<br />
AdvCost NUMBER(6) NOT NULL,<br />
CONSTRAINT ad_adid_pk PRIMARY KEY(PropertyID, OutletID),<br />
CONSTRAINT ad_propertyid_fk FOREIGN KEY(PropertyID) REFERENCES PROPERTY(PropertyID),<br />
CONSTRAINT ad_outletid_fk FOREIGN KEY(OutletID) REFERENCES OUTLET(OutletID),<br />
CONSTRAINT ad_advcost_ck CHECK(AdvCost > 0)<br />
);<br />
</pre><br />
8. CLIENT<br />
<pre><br />
CREATE TABLE CLIENT<br />
(<br />
ClientID NUMBER(6),<br />
Fname VARCHAR2(15) NOT NULL,<br />
Lname VARCHAR2(15) NOT NULL,<br />
Phone VARCHAR2(15) NOT NULL,<br />
Email VARCHAR2(30),<br />
RefID NUMBER(6),<br />
CONSTRAINT client_clientid_pk PRIMARY KEY(ClientID),<br />
CONSTRAINT client_phone_uk UNIQUE(Phone),<br />
CONSTRAINT client_email_uk UNIQUE(Email),<br />
CONSTRAINT client_refid_fk FOREIGN KEY(RefID) REFERENCES CLIENT(ClientID)<br />
);<br />
</pre><br />
9. DEED<br />
<pre><br />
CREATE TABLE DEED<br />
(<br />
PropertyID NUMBER(6),<br />
SellerID NUMBER(6),<br />
OwnPct NUMBER(5,2) NOT NULL,<br />
BuyerID NUMBER(6),<br />
BuyPrice NUMBER(7),<br />
CONSTRAINT deed_deedid_pk PRIMARY KEY(PropertyID, SellerID),<br />
CONSTRAINT deed_propertyid_fk FOREIGN KEY(PropertyID) REFERENCES PROPERTY(PropertyID),<br />
CONSTRAINT deed_sellerid_fk FOREIGN KEY(SellerID) REFERENCES CLIENT(ClientID),<br />
CONSTRAINT deed_buyerid_fk FOREIGN KEY(BuyerID) REFERENCES CLIENT(ClientID),<br />
CONSTRAINT deed_ownpct_ck CHECK(OwnPct > 0 AND OwnPct <= 100),<br />
CONSTRAINT deed_buyprice_ck CHECK(BuyPrice BETWEEN 1 AND 4999999)<br />
);<br />
<br />
</pre><br />
<br />
==== DML Statements (INSERT INTO) ====<br />
<br />
1. AREA<BR><br />
<pre><br />
INSERT ALL<br />
INTO AREA VALUES(1001, 'Bayview Village', 'Adrienne Clarkson Public School', 'Amesbury Middle School', 'Bayview Secondary School', 'Upper middle class to upper class neighborhood in Toronto.')<br />
INTO AREA VALUES(3001,'Laurelwood', 'Elizabeth Ziegler Primary School','Waterloo Middle School','Saint David Catholic Secondary School','Close to University of Waterloo and many popular amenities.')<br />
INTO AREA VALUES(4001,'Silver Heights','Alison Park Primary School','Eastwood Middle School','King Edward Secondary School',null)<br />
INTO AREA VALUES(5001,'Kitsilano','Henry Hudson Elementary School','St George School','Kitsilano Secondary School','Very well-off area.')<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
<br />
2. AGENCY<BR><br />
<pre><br />
INSERT ALL<br />
INTO AGENCY VALUES(1055,'Sutton Group Regal Realty','416.875.9873')<br />
INTO AGENCY VALUES(3079,'MacDonald Realty','604.986.0231')<br />
INTO AGENCY VALUES(7024,'Royal LePage Groupe Newton','514.234.9283')<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
<br />
3. PROPERTY<BR><br />
<pre><br />
INSERT ALL<br />
INTO PROPERTY VALUES(134982,'27 King"'"s College Circle','Toronto','ON','M5S1A1',2,2,380000,1001,1055)<br />
INTO PROPERTY VALUES(149800,'17 Pleasant View Dr.','Toronto','ON','M2J2H1',3,2,470000,1001, null)<br />
INTO PROPERTY VALUES(152932,'17 Barberry Pl. #1313','Toronto','ON','M8W7V4',1,1,259888,1001, null)<br />
INTO PROPERTY VALUES(495820,'776 Laurelwood Dr.','Waterloo','ON','H3A2T5',2,2,295000,3001,3079)<br />
INTO PROPERTY VALUES(500211,'409 Kelso Cr.','Cambridge','ON','H3Y7S3',3,2,485000,4001, null)<br />
INTO PROPERTY VALUES(139204,'3043 Crown St.','Vancouver','BC','U3J3M6',5,3,1398000,5001,7024)<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
4. SINGLE<BR><br />
<pre><br />
INSERT ALL<br />
INTO SINGLE VALUES(134982,3716)<br />
INTO SINGLE VALUES(149800,1005)<br />
INTO SINGLE VALUES(139204,5400)<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
5. CONDO<BR><br />
<pre><br />
INSERT ALL<br />
INTO CONDO VALUES(152932,250)<br />
INTO CONDO VALUES(495820,320)<br />
INTO CONDO VALUES(500211,550)<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
6. OUTLET<BR><br />
<pre><br />
INSERT ALL<br />
INTO OUTLET VALUES(1000,'Toronto Star','416.923.1782','N')<br />
INTO OUTLET VALUES(2001,'Waterloo Living','519.098.9283','M')<br />
INTO OUTLET VALUES(8001,'Canadian Life','416.982.0192','W')<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
7. ADVERTISEMENT<BR><br />
<pre><br />
INSERT ALL<br />
INTO ADVERTISEMENT VALUES(134982,1000,'25-NOV-10',350)<br />
INTO ADVERTISEMENT VALUES(149800,1000,'27-NOV-10',250)<br />
INTO ADVERTISEMENT VALUES(495820,2001,'27-NOV-10',300)<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
8. CLIENT<BR><br />
<pre><br />
INSERT ALL<br />
INTO CLIENT VALUES(1010,'Andrew','Lee','647.978.0192','andrew11@hotmail.com', null)<br />
INTO CLIENT VALUES(1011,'Daniel','Smith','416.895.9762','dsmith@gmail.com',5010)<br />
INTO CLIENT VALUES(1012,'Olivia','Wilson','647.915.2738','oliviaorange@gmail.com', null)<br />
INTO CLIENT VALUES(1013,'Jayden','Martin','519.225.1928','jmartin@rogers.com', null)<br />
INTO CLIENT VALUES(1014,'Maria','Brown','416.182.0021','maria.brown@hotmail.com', null)<br />
INTO CLIENT VALUES(2010,'Ethan','Roy','226.289.0394','ethanrockstar@bell.com', null)<br />
INTO CLIENT VALUES(2011,'Sophia','Tremblay','647.297.2918','stremblay@gmail.com',5010)<br />
INTO CLIENT VALUES(3010,'Ryan','Wilson','604.837.1029','wilsonryan@gmail.com', null)<br />
INTO CLIENT VALUES(3012,'Luis','Jones','416.832.6771','luis7787@rogers.com', null)<br />
INTO CLIENT VALUES(5010,'Mary','Anderson','647.234.5690','andersonpink@gmail.com', null)<br />
INTO CLIENT VALUES(7010,'James','White','647.298.9182','james.white@bell.com',1010)<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
9. DEED<BR><br />
<pre><br />
INSERT ALL<br />
INTO VALUES(149800,1010,75,5010,352300)<br />
INTO VALUES(139204,1012,100,3010,1394000)<br />
INTO VALUES(134982,2011,50,1014,200000)<br />
SELECT * FROM DUAL;<br />
</pre><br />
<br />
==== CREATE VIEW ====<br />
<pre><br />
CREATE VIEW PropAreaLocSeller_VU AS<br />
SELECT SUBSTR((ar.AreaName || ', ' || p.City || ', ' || p.Street || ', ' || p.PostalCode), 1, 60) "Property Location",<br />
TO_CHAR(p.ListingPrice,'$9,999,999') "Listing Price", sgl.LotSize || ' sqft' "LotSize",<br />
s.Lname || ', ' || s.Fname "Full Name", s.phone "Phone", d.OwnPct, NVL(ag.AgencyName, 'No Agency') "Agency"<br />
FROM Property p<br />
JOIN Single sgl ON (p.PropertyID = sgl.PropertyID)<br />
JOIN Area ar ON (p.AreaID = ar.AreaID)<br />
LEFT OUTER JOIN Agency ag ON (p.AgencyID = ag.AgencyID)<br />
JOIN Deed d ON (p.PropertyID = d.PropertyID)<br />
JOIN Client s ON (d.SellerID = s.ClientID);<br />
</pre><br />
<br />
=Assignment 1=<br />
==Due Date==<br />
Thursday, October 21st, 4:00pm<br />
Printout submission only( SELECT Statements + ALL outputs)<br />
==Description==<br />
[https://cs.senecac.on.ca/~nconkic/assign1.doc Assignment1]<br />
==Solution==<br />
<pre><br />
SQL> SELECT employee_id, RPAD(CONCAT(CONCAT(last_name, ', '),first_name), 25) "Full Name",<br />
<br />
2 job_id,<br />
<br />
3 TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
<br />
4 "Start Date"<br />
<br />
5 FROM employees<br />
<br />
6 WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
<br />
7 ORDER BY 4 DESC;<br />
<br />
<br />
<br />
EMPLOYEE_ID Full Name JOB_ID Start Date <br />
<br />
----------- ------------------------- ---------- ----------------------------------------- <br />
<br />
124 Mourgos, Kevin ST_MAN November First in the year 1999 <br />
<br />
178 Grant, Kimberely SA_REP May First in the year 1999 <br />
<br />
174 Abel, Ellen SA_REP May First in the year 1996 <br />
<br />
104 Ernst, Bruce IT_PROG May First in the year 1991 <br />
<br />
<br />
<br />
SQL> SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
<br />
2 || job_id || ' will have a new salary of $' || salary * 1.15 "Happy Employees"<br />
<br />
3 FROM employees<br />
<br />
4 WHERE salary BETWEEN 5000 AND 12000<br />
<br />
5 AND job_id IN ('IT_PROG', 'ST_CLERK')<br />
<br />
6 ORDER BY employee_id;<br />
<br />
<br />
<br />
Happy Employees <br />
<br />
----------------------------------------------------------------------------------------------------<br />
<br />
Employee named Alexander Hunold who is IT_PROG will have a new salary of $10350 <br />
<br />
Employee named Bruce Ernst who is IT_PROG will have a new salary of $6900 <br />
<br />
<br />
<br />
SQL> SELECT last_name, salary, job_id,<br />
<br />
2 RPAD(NVL(TO_CHAR(manager_id), 'No Manager'), 10) "Manager #",<br />
<br />
3 LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
<br />
4 FROM employees<br />
<br />
5 WHERE (job_id LIKE 'MK%' OR manager_id IS NULL)<br />
<br />
6 AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
<br />
7 ORDER BY 2 DESC;<br />
<br />
<br />
<br />
LAST_NAME SALARY JOB_ID Manager # Total Income <br />
<br />
------------------------- ---------- ---------- ---------- ------------ <br />
<br />
King 24000 AD_PRES No Manager $288,000 <br />
<br />
Hartstein 13000 MK_MAN 100 $156,000 <br />
<br />
<br />
<br />
SQL> SELECT RPAD(CONCAT(CONCAT(first_name,' '),last_name), 25) "Employee", job_id,<br />
<br />
2 LPAD(TRIM(TO_CHAR(salary, '$999,999')), 12, '=') "Salary", department_name<br />
<br />
3 FROM employees e JOIN departments d<br />
<br />
4 ON (e.department_id = d.department_id)<br />
<br />
5 WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
<br />
6 AND salary <<br />
<br />
7 (SELECT MAX(salary)<br />
<br />
8 FROM employees<br />
<br />
9 WHERE SUBSTR(job_id, 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
<br />
10 ORDER BY 1;<br />
<br />
<br />
<br />
Employee JOB_ID Salary DEPARTMENT_NAME <br />
<br />
------------------------- ---------- ------------ ------------------------------ <br />
<br />
Eleni Zlotkey SA_MAN =====$10,500 Sales <br />
<br />
Jonathon Taylor SA_REP ======$8,600 Sales <br />
<br />
Pat Fay MK_REP ======$6,000 Marketing <br />
<br />
<br />
<br />
SQL><br />
<br />
SQL> SELECT last_name, salary, job_id<br />
<br />
2 FROM employees<br />
<br />
3 WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
<br />
4 AND salary ><br />
<br />
5 (SELECT MAX(salary)<br />
<br />
6 FROM employees<br />
<br />
7 JOIN departments USING (department_id)<br />
<br />
8 JOIN locations USING (location_id)<br />
<br />
9 WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
<br />
<br />
LAST_NAME SALARY JOB_ID <br />
<br />
------------------------- ---------- ---------- <br />
<br />
Kochhar 17000 AD_VP <br />
<br />
De Haan 17000 AD_VP <br />
<br />
<br />
<br />
SQL> SELECT last_name, first_name, job_id, hire_date<br />
<br />
2 FROM employees<br />
<br />
3 WHERE hire_date ><br />
<br />
4 (SELECT MAX(hire_date)<br />
<br />
5 FROM employees<br />
<br />
6 WHERE department_id =<br />
<br />
7 (SELECT department_id<br />
<br />
8 FROM departments<br />
<br />
9 WHERE UPPER(department_name) = 'IT'))<br />
<br />
10 AND (department_id !=<br />
<br />
11 (SELECT department_id<br />
<br />
12 FROM departments<br />
<br />
13 WHERE UPPER(department_name) = 'EXECUTIVE')<br />
<br />
14 OR department_id IS NULL)<br />
<br />
15 ORDER BY 4 DESC;<br />
<br />
<br />
<br />
LAST_NAME FIRST_NAME JOB_ID HIRE_DATE <br />
<br />
------------------------- -------------------- ---------- --------- <br />
<br />
Zlotkey Eleni SA_MAN 29-JAN-00 <br />
<br />
Mourgos Kevin ST_MAN 16-NOV-99 <br />
<br />
Grant Kimberely SA_REP 24-MAY-99 <br />
<br />
<br />
<br />
SQL> SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay",<br />
<br />
2 MIN(salary) "Lowest Dept/Job Pay"<br />
<br />
3 FROM employees<br />
<br />
4 WHERE UPPER(job_id) NOT LIKE '%VP'<br />
<br />
5 AND department_id NOT IN<br />
<br />
6 (SELECT department_id<br />
<br />
7 FROM departments<br />
<br />
8 WHERE UPPER(department_name) IN ('IT','SALES'))<br />
<br />
9 GROUP BY department_id, job_id<br />
<br />
10 HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
<br />
11 ORDER BY 1, 2;<br />
<br />
<br />
<br />
DEPARTMENT_ID JOB_ID Average Dept/Job Pay Lowest Dept/Job Pay <br />
<br />
------------- ---------- -------------------- ------------------- <br />
<br />
20 MK_MAN 13000 13000 <br />
<br />
20 MK_REP 6000 6000 <br />
<br />
50 ST_MAN 5800 5800 <br />
<br />
110 AC_ACCOUNT 8300 8300 <br />
<br />
110 AC_MGR 12000 12000 <br />
<br />
<br />
<br />
SQL> SELECT department_id, department_name,<br />
<br />
2 RPAD(TRIM(NVL(city, 'Not Assinged Yet')), 25, ' ') "City",<br />
<br />
3 COUNT(DISTINCT job_id) "# of Jobs"<br />
<br />
4 FROM employees<br />
<br />
5 RIGHT OUTER JOIN departments USING (department_id)<br />
<br />
6 LEFT OUTER JOIN locations USING (location_id)<br />
<br />
7 GROUP BY department_id, department_name, city;<br />
<br />
<br />
<br />
DEPARTMENT_ID DEPARTMENT_NAME City # of Jobs <br />
<br />
------------- ------------------------------ ------------------------- ---------- <br />
<br />
110 Accounting Seattle 2 <br />
<br />
50 Shipping South San Francisco 2 <br />
<br />
80 Sales Oxford 2 <br />
<br />
10 Administration Seattle 1 <br />
<br />
190 Contracting Seattle 0 <br />
<br />
90 Executive Seattle 2 <br />
<br />
20 Marketing Toronto 2 <br />
<br />
60 IT Southlake 1 <br />
<br />
<br />
<br />
8 rows selected.<br />
<br />
<br />
<br />
SQL> spool off<br />
</pre><br />
==SQL Statements==<br />
===1.===<br />
''YuJin''<br />
<pre><br />
SELECT employee_id, RPAD(CONCAT(CONCAT(last_name, ', '),first_name), 25) "Full Name",<br />
job_id,<br />
TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
"Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
ORDER BY 4 DESC;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT employee_id,<br />
SUBSTR(last_name ||' '|| first_name, 1, 25) "Full Name",<br />
job_id,<br />
TO_CHAR(hire_date,'fmMonth "First in the year" YYYY') "Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date,'fmMON') IN ('MAY','NOV')<br />
ORDER BY hire_date DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select employee_id "Emp#",<br />
(last_name ||', '|| first_name) "Full Name",<br />
job_id "Job",<br />
to_char(trunc(hire_date, 'MONTH'), 'FMMonth Ddspth "in the year"<br />
YYYY') "Start Date"<br />
from employees<br />
where to_char(hire_date, 'fmMonth') in ('May', 'November')<br />
order by hire_date desc;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT employee_id, SUBSTR(last_name ||' '|| first_name, 1, 25) "Full Name",<br />
job_id,<br />
TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
"Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
ORDER BY hire_date DESC;<br />
</pre><br />
<br />
===2.===<br />
''YuJin''<br />
<pre><br />
SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
|| job_id || ' will have a new salary of $' || salary * 1.15 "Happy Employees"<br />
FROM employees<br />
WHERE salary BETWEEN 5000 AND 12000<br />
AND job_id IN ('IT_PROG', 'ST_CLERK')<br />
ORDER BY employee_id;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT 'Employee named '||first_name||' '||last_name||' who is '||job_id||' will have a new salary of $'|| salary *1.15 "Happy Employees"<br />
FROM employees<br />
WHERE job_id IN ('IT_PROG','ST CLERK')<br />
AND (salary BETWEEN 5000 AND 12000)<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
Select ('Employee named ' || first_name ||' '|| last_name || ' who is ' || job_id || ' will have a new salary of ' || (salary*1.15)) "Happy Employees"<br />
From employees<br />
Where salary between 5000 and 12000<br />
And upper(job_id) in ('IT_PROG', 'ST_CLERK')<br />
order by employee_id;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
|| job_id || ' will have a new salary of ' || TO_CHAR(salary * 1.15, 'fm$999999') "Happy Employees"<br />
FROM employees<br />
WHERE salary BETWEEN 5000 AND 12000<br />
AND UPPER(job_id) IN ('IT_PROG', 'ST_CLERK')<br />
ORDER BY employee_id;<br />
</pre><br />
<br />
===3.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, salary, job_id,<br />
RPAD(NVL(TO_CHAR(manager_id), 'No Manager'), 10) "Manager #",<br />
LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
FROM employees<br />
WHERE (job_id LIKE 'MK%' OR manager_id IS NULL)<br />
AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
ORDER BY 2 DESC;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, salary, job_id, NVL(TO_CHAR(manager_id),'No Manager') Manager#,<br />
TO_CHAR(salary*12,'$999,999') "Total Income"<br />
FROM employees<br />
WHERE (manager_id IS NULL<br />
OR job_id LIKE 'MK%')<br />
AND ( salary* (NVL(commission_pct,0) + 1) + 1000 ) > 10000<br />
ORDER BY salary DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, salary, job_id, nvl(to_char(manager_id),'No Manager') Manager#,<br />
to_char(salary*12,'$999,999') "Total Income"<br />
from employees<br />
where (upper(job_id) like 'MK%' or manager_id IS NULL)<br />
and salary * (1 + nvl(commission_pct, 0)) + 1000 > 10000<br />
order by 2 desc;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT last_name, salary, job_id,<br />
SUBSTR(NVL(TO_CHAR(manager_id), 'No Manager'), 1, 10) "Manager #",<br />
LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
FROM employees<br />
WHERE (UPPER(job_id) LIKE 'MK%' OR manager_id IS NULL)<br />
AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
ORDER BY salary DESC;<br />
<br />
</pre><br />
<br />
===4.===<br />
''YuJin''<br />
<pre><br />
SELECT RPAD(CONCAT(CONCAT(first_name,' '),last_name), 25) "Employee", job_id,<br />
LPAD(TRIM(TO_CHAR(salary, '$999,999')), 12, '=') "Salary", department_name<br />
FROM employees e JOIN departments d<br />
ON (e.department_id = d.department_id)<br />
WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
AND salary <<br />
(SELECT MAX(salary)<br />
FROM employees<br />
WHERE SUBSTR(job_id, 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
ORDER BY 1;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT SUBSTR(first_name||' '||last_name, 25) Employee, job_id,<br />
LPAD(TO_CHAR(salary,'$99,999'), 12, '=') Salary, department_name<br />
FROM employees e JOIN departments d<br />
ON (d.department_id=e.department_id)<br />
WHERE salary < (SELECT MAX(salary)<br />
FROM employees<br />
WHERE UPPER(SUBSTR(job_id,4)) NOT IN ('VP', 'PRES', 'MAN', 'MGR')<br />
)<br />
AND UPPER(department_name) IN ('MARKETING','SALES')<br />
ORDER BY first_name, last_name<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select substr(first_name ||' '|| last_name) "Employee", job_id, to_char(salary, '$999,999', 12, '=') Salary, department_name<br />
from employees e join departments d<br />
on (e.department_id = d.department_id)<br />
where upper(department_name) in ('MARKETING', 'SALES')<br />
and salary < (select max(salary)<br />
from employees<br />
where substr(job_id,4) not in ('PRES','VP','MAN','MGR'))<br />
order by "Employee";<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT SUBSTR(first_name ||' '|| last_name, 1, 25) "Employee", job_id,<br />
LPAD(TO_CHAR(salary, 'fm$999,999'), 12, '=') "Salary", department_name<br />
FROM employees e JOIN departments d<br />
ON (e.department_id = d.department_id)<br />
WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
AND salary <<br />
(SELECT MAX(salary)<br />
FROM employees<br />
WHERE SUBSTR(UPPER(job_id), 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
ORDER BY 1;<br />
</pre><br />
<br />
===5.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
AND salary ><br />
(SELECT MAX(salary)<br />
FROM employees<br />
JOIN departments USING (department_id)<br />
JOIN locations USING (location_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE salary > (SELECT MAX(salary)<br />
FROM locations JOIN departments<br />
USING (location_id)<br />
JOIN employees<br />
USING (department_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD')<br />
)<br />
AND UPPER(job_id) NOT LIKE '%PRES'<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, salary, job_id<br />
from employees<br />
where salary > (select max(salary)<br />
from employees join departments<br />
using (department_id)<br />
join locations<br />
using (location_id)<br />
where upper(city) in ('TORONTO','OXFORD'))<br />
and upper(job_id) not like '%PRES'<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
AND salary ><br />
(SELECT MAX(salary)<br />
FROM employees<br />
JOIN departments USING (department_id)<br />
JOIN locations USING (location_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
</pre><br />
<br />
===6.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, first_name, job_id, hire_date<br />
FROM employees<br />
WHERE hire_date ><br />
(SELECT MAX(hire_date)<br />
FROM employees<br />
WHERE department_id =<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'IT'))<br />
AND (department_id !=<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'EXECUTIVE')<br />
OR department_id IS NULL)<br />
ORDER BY 4 DESC;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, first_name, job_id, hire_date<br />
FROM employees e<br />
WHERE hire_date > (SELECT MAX(hire_date)<br />
FROM employees<br />
WHERE department_id = (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'IT'<br />
)<br />
)<br />
AND (department_id <> (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) ='EXECUTIVE')<br />
OR department_id IS NULL)<br />
ORDER BY hire_date DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, first_name, job_id, hire_date<br />
from employees<br />
where hire_date > (select max(hire_date)<br />
from employees<br />
where department_id = (select department_id<br />
from departments<br />
where upper(department_name) = 'IT'))<br />
and (department_id != (select department_id<br />
from departments<br />
where upper(department_name) = 'EXECUTIVE')<br />
or department_id IS NULL)<br />
order by hire_date desc;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT last_name, first_name, job_id, hire_date<br />
FROM employees<br />
WHERE hire_date ><br />
(SELECT MAX(hire_date)<br />
FROM employees<br />
WHERE department_id =<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'IT'))<br />
AND (department_id !=<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'EXECUTIVE')<br />
OR department_id IS NULL)<br />
ORDER BY hire_date DESC;<br />
</pre><br />
<br />
===7.===<br />
''YuJin''<br />
<pre><br />
SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay",<br />
MIN(salary) "Lowest Dept/Job Pay"<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%VP'<br />
AND department_id NOT IN<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) IN ('IT','SALES'))<br />
GROUP BY department_id, job_id<br />
HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
ORDER BY 1, 2;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay", MIN(salary) "Lowest Dept/Job Pay"<br />
FROM employees<br />
WHERE department_id <> ALL (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) IN ('IT','SALES')<br />
)<br />
AND job_id NOT LIKE '%VP'<br />
GROUP BY department_id, job_id<br />
HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
ORDER BY department_id, job_id<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select department_id, job_id, avg(salary) "Average Dept/Job Pay", min(salary) "Lowest Dept/Job Pay"<br />
from employees<br />
where upper(job_id) not like '%VP'<br />
and department_id != all(select department_id<br />
from departments<br />
where upper(department_name) in ('IT','SALES'))<br />
group by department_id, job_id<br />
having min(salary) between 5000 and 15000<br />
order by department_id, job_id<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay",<br />
MIN(salary) "Lowest Dept/Job Pay"<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%VP'<br />
AND department_id != ALL<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) IN ('IT','SALES'))<br />
GROUP BY department_id, job_id<br />
HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
ORDER BY department_id, job_id;<br />
</pre><br />
<br />
===8.===<br />
''YuJin''<br />
<pre><br />
SELECT department_id, department_name,<br />
RPAD(TRIM(NVL(city, 'Not Assinged Yet')), 25, ' ') "City",<br />
COUNT(DISTINCT job_id) "# of Jobs"<br />
FROM employees<br />
RIGHT OUTER JOIN departments USING (department_id)<br />
LEFT OUTER JOIN locations USING (location_id)<br />
GROUP BY department_id, department_name, city;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT department_id, department_name, SUBSTR(NVL(city,'Not Assigned Yet'),1,25) City,<br />
COUNT(DISTINCT job_id) "# of Jobs"<br />
FROM locations l RIGHT OUTER JOIN departments d<br />
USING (location_id)<br />
LEFT OUTER JOIN employees e<br />
USING (department_id)<br />
GROUP BY department_id, department_name, city<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select department_id, department_name, substr(nvl(city,'Not Assigned Yet'),1,25) City,<br />
count(distinct job_id) "# of Jobs"<br />
from employees right outer join departments<br />
using (department_id)<br />
left outer join locations<br />
using (location_id)<br />
group by department_id, department_name, city<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT department_id, department_name,<br />
SUBSTR(NVL(city, 'Not Assinged Yet'),1, 25) "City",<br />
COUNT(DISTINCT job_id) "# of Jobs"<br />
FROM employees<br />
RIGHT OUTER JOIN departments USING (department_id)<br />
LEFT OUTER JOIN locations USING (location_id)<br />
GROUP BY department_id, department_name, city;<br />
<br />
</pre></div>
Yujin.jeong
https://wiki.cdot.senecacollege.ca/w/index.php?title=J.Y.S&diff=50977
J.Y.S
2010-11-30T20:56:06Z
<p>Yujin.jeong: /* DDL Statements (CREATE TABLE) */</p>
<hr />
<div>This page is to efficiently manage our group assignments!<br />
== Member List == <br />
*[mailto:,,yjeong@learn.senecac.on.ca,?subject=dbs301 Email All]<br />
<br />
{| class="wikitable sortable" border="1" cellpadding="5"<br />
! First Name !! Last Name !! wiki id !! Learn e-mail !! Phone<br />
|-<br />
|[[User:Yujin.jeong | YuJin]]||Jeong||[[Special:Contributions/yujin.jeong | yujin.jeong]]||[mailto:yjeong@learn.senecac.on.ca?sujbect=dbs301 yjeong]|| 647 - 832 - 6771<br />
|-<br />
<br />
|-<br />
|Saad|| || || ||<br />
|-<br />
<br />
|-<br />
|James|| || || ||<br />
|-<br />
|}<br />
<br />
=Assignment 3 (worth 9%)=<br />
==Due Date==<br />
Thursday, December 2nd, 3:00pm<br />
Printout of all TIC charts and DDL / DML statements<br />
<br />
==Solution==<br />
==== DDL Statements (CREATE TABLE) ====<br />
1. AREA<br />
<pre><br />
CREATE TABLE AREA<br />
(<br />
AreaID NUMBER(4) CONSTRAINT area_areaid_pk PRIMARY KEY,<br />
AreaName VARCHAR2(15) NOT NULL CONSTRAINT area_areaname_uk UNIQUE,<br />
ElmSchool VARCHAR2(40),<br />
MidSchool VARCHAR2(40),<br />
HighSchool VARCHAR2(40),<br />
Comments VARCHAR2(100)<br />
);<br />
</pre><br />
2. AGENCY<br />
<pre><br />
CREATE TABLE AGENCY<br />
(<br />
AgencyID NUMBER(4) CONSTRAINT agency_agencyid_pk PRIMARY KEY,<br />
AgencyName VARCHAR2(30) NOT NULL CONSTRAINT agency_agencyname_uk UNIQUE,<br />
AgencyPhone VARCHAR2(15) NOT NULL CONSTRAINT agency_agencyphone_uk UNIQUE<br />
);<br />
</pre><br />
3. PROPERTY<br />
<pre><br />
CREATE TABLE PROPERTY<br />
(<br />
PropertyID NUMBER(6),<br />
Street VARCHAR2(40) NOT NULL,<br />
City VARCHAR2(15) NOT NULL,<br />
Province CHAR(2) NOT NULL,<br />
PostalCode CHAR(6) NOT NULL,<br />
Bedrooms NUMBER(1) NOT NULL,<br />
Bathrooms NUMBER(1) NOT NULL,<br />
ListingPrice NUMBER(7) NOT NULL,<br />
AreaID NUMBER(4) NOT NULL,<br />
CONSTRAINT property_propertyid_pk PRIMARY KEY(PropertyID),<br />
CONSTRAINT property_bedrooms_ck CHECK(Bedrooms BETWEEN 1 AND 9),<br />
CONSTRAINT property_bathrooms_ck CHECK(Bathrooms BETWEEN 1 AND 9),<br />
CONSTRAINT property_listingprice_ck CHECK(ListingPrice BETWEEN 1 AND 4999999),<br />
CONSTRAINT property_areaid_fk FOREIGN KEY(AreaID) REFERENCES AREA(AreaID)<br />
);<br />
</pre><br />
4. SINGLE<br />
<pre><br />
CREATE TABLE SINGLE<br />
(<br />
PropertyID NUMBER(6), <br />
LotSize NUMBER(8,2) NOT NULL,<br />
CONSTRAINT single_propertyID_pk PRIMARY KEY(PropertyID), <br />
CONSTRAINT single_propertyID_fk FOREIGN KEY(PropertyID) REFERENCES PROPERTY(PropertyID),<br />
CONSTRAINT single_lotsize_ck CHECK(LotSize > 0)<br />
);<br />
<br />
</pre><br />
5. CONDO<br />
<pre><br />
CREATE TABLE CONDO<br />
(<br />
PropertyID NUMBER(6),<br />
Fee NUMBER(8,2) NOT NULL, <br />
CONSTRAINT condo_propertyID_pk PRIMARY KEY(PropertyID),<br />
CONSTRAINT condo_propertyID_fk FOREIGN KEY(PropertyID) REFERENCES PROPERTY(PropertyID),<br />
CONSTRAINT condo_fee_ck CHECK(Fee > 0)<br />
);<br />
<br />
</pre><br />
6. OUTLET<br />
<pre><br />
CREATE TABLE OUTLET<br />
(<br />
OutletID NUMBER(4), <br />
OutletName VARCHAR2(20) NOT NULL,<br />
OutletPhone VARCHAR2(15) NOT NULL,<br />
OutletType CHAR(1) NOT NULL,<br />
CONSTRAINT outlet_outletid_pk PRIMARY KEY(OutletID),<br />
CONSTRAINT outlet_outlettype_ck CHECK(OutletType IN('N','M','W','F')),<br />
CONSTRAINT outlet_outletname_type_uk UNIQUE(OutletName, OutletType)<br />
);<br />
<br />
</pre><br />
7. ADVERTISEMENT<br />
<pre><br />
CREATE TABLE ADVERTISEMENT<br />
(<br />
PropertyID NUMBER(6),<br />
OutletID NUMBER(4),<br />
AdvDate DATE,<br />
AdvCost NUMBER(6) NOT NULL,<br />
CONSTRAINT ad_adid_pk PRIMARY KEY(PropertyID, OutletID),<br />
CONSTRAINT ad_propertyid_fk FOREIGN KEY(PropertyID) REFERENCES PROPERTY(PropertyID),<br />
CONSTRAINT ad_outletid_fk FOREIGN KEY(OutletID) REFERENCES OUTLET(OutletID),<br />
CONSTRAINT ad_advcost_ck CHECK(AdvCost > 0)<br />
);<br />
</pre><br />
8. CLIENT<br />
<pre><br />
CREATE TABLE CLIENT<br />
(<br />
ClientID NUMBER(6),<br />
Fname VARCHAR2(15) NOT NULL,<br />
Lname VARCHAR2(15) NOT NULL,<br />
Phone VARCHAR2(15) NOT NULL,<br />
Email VARCHAR2(30),<br />
RefID NUMBER(6),<br />
CONSTRAINT client_clientid_pk PRIMARY KEY(ClientID),<br />
CONSTRAINT client_phone_uk UNIQUE(Phone),<br />
CONSTRAINT client_email_uk UNIQUE(Email),<br />
CONSTRAINT client_refid_fk FOREIGN KEY(RefID) REFERENCES CLIENT(ClientID)<br />
);<br />
</pre><br />
9. DEED<br />
<pre><br />
CREATE TABLE DEED<br />
(<br />
PropertyID NUMBER(6),<br />
SellerID NUMBER(6),<br />
OwnPct NUMBER(5,2) NOT NULL,<br />
BuyerID NUMBER(6),<br />
BuyPrice NUMBER(7),<br />
CONSTRAINT deed_deedid_pk PRIMARY KEY(PropertyID, SellerID),<br />
CONSTRAINT deed_propertyid_fk FOREIGN KEY(PropertyID) REFERENCES PROPERTY(PropertyID),<br />
CONSTRAINT deed_sellerid_fk FOREIGN KEY(SellerID) REFERENCES CLIENT(ClientID),<br />
CONSTRAINT deed_buyerid_fk FOREIGN KEY(BuyerID) REFERENCES CLIENT(ClientID),<br />
CONSTRAINT deed_ownpct_ck CHECK(OwnPct > 0 AND OwnPct <= 100),<br />
CONSTRAINT deed_buyprice_ck CHECK(BuyPrice BETWEEN 1 AND 4999999)<br />
);<br />
<br />
</pre><br />
<br />
==== DML Statements (INSERT INTO) ====<br />
<br />
1. AREA<BR><br />
<pre><br />
INSERT ALL<br />
INTO AREA VALUES(1001, 'Bayview Village', 'Adrienne Clarkson Public School', 'Amesbury Middle School', 'Bayview Secondary School', 'Upper middle class to upper class neighborhood in Toronto.')<br />
INTO AREA VALUES(3001,'Laurelwood', 'Elizabeth Ziegler Primary School','Waterloo Middle School','Saint David Catholic Secondary School','Close to University of Waterloo and many popular amenities.')<br />
INTO AREA VALUES(4001,'Silver Heights','Alison Park Primary School','Eastwood Middle School','King Edward Secondary School',null)<br />
INTO AREA VALUES(5001,'Kitsilano','Henry Hudson Elementary School','St George School','Kitsilano Secondary School','Very well-off area.')<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
<br />
2. AGENCY<BR><br />
<pre><br />
INSERT ALL<br />
INTO AGENCY VALUES(1055,'Sutton Group Regal Realty','416.875.9873')<br />
INTO AGENCY VALUES(3079,'MacDonald Realty','604.986.0231')<br />
INTO AGENCY VALUES(7024,'Royal LePage Groupe Newton','514.234.9283')<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
<br />
3. PROPERTY<BR><br />
<pre><br />
INSERT ALL<br />
INTO PROPERTY VALUES(134982,'27 King"'"s College Circle','Toronto','ON','M5S1A1',2,2,380000,1001,1055)<br />
INTO PROPERTY VALUES(149800,'17 Pleasant View Dr.','Toronto','ON','M2J2H1',3,2,470000,1001, null)<br />
INTO PROPERTY VALUES(152932,'17 Barberry Pl. #1313','Toronto','ON','M8W7V4',1,1,259888,1001, null)<br />
INTO PROPERTY VALUES(495820,'776 Laurelwood Dr.','Waterloo','ON','H3A2T5',2,2,295000,3001,3079)<br />
INTO PROPERTY VALUES(500211,'409 Kelso Cr.','Cambridge','ON','H3Y7S3',3,2,485000,4001, null)<br />
INTO PROPERTY VALUES(139204,'3043 Crown St.','Vancouver','BC','U3J3M6',5,3,1398000,5001,7024)<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
4. SINGLE<BR><br />
<pre><br />
INSERT ALL<br />
INTO SINGLE VALUES(134982,3716)<br />
INTO SINGLE VALUES(149800,1005)<br />
INTO SINGLE VALUES(139204,5400)<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
5. CONDO<BR><br />
<pre><br />
INSERT ALL<br />
INTO CONDO VALUES(152932,250)<br />
INTO CONDO VALUES(495820,320)<br />
INTO CONDO VALUES(500211,550)<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
6. OUTLET<BR><br />
<pre><br />
INSERT ALL<br />
INTO OUTLET VALUES(1000,'Toronto Star','416.923.1782','N')<br />
INTO OUTLET VALUES(2001,'Waterloo Living','519.098.9283','M')<br />
INTO OUTLET VALUES(8001,'Canadian Life','416.982.0192','W')<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
7. ADVERTISEMENT<BR><br />
<pre><br />
INSERT ALL<br />
INTO ADVERTISEMENT VALUES(134982,1000,'25-NOV-10',350)<br />
INTO ADVERTISEMENT VALUES(149800,1000,'27-NOV-10',250)<br />
INTO ADVERTISEMENT VALUES(495820,2001,'27-NOV-10',300)<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
8. CLIENT<BR><br />
<pre><br />
INSERT ALL<br />
INTO CLIENT VALUES(1010,'Andrew','Lee','647.978.0192','andrew11@hotmail.com', null)<br />
INTO CLIENT VALUES(1011,'Daniel','Smith','416.895.9762','dsmith@gmail.com',5010)<br />
INTO CLIENT VALUES(1012,'Olivia','Wilson','647.915.2738','oliviaorange@gmail.com', null)<br />
INTO CLIENT VALUES(1013,'Jayden','Martin','519.225.1928','jmartin@rogers.com', null)<br />
INTO CLIENT VALUES(1014,'Maria','Brown','416.182.0021','maria.brown@hotmail.com', null)<br />
INTO CLIENT VALUES(2010,'Ethan','Roy','226.289.0394','ethanrockstar@bell.com', null)<br />
INTO CLIENT VALUES(2011,'Sophia','Tremblay','647.297.2918','stremblay@gmail.com',5010)<br />
INTO CLIENT VALUES(3010,'Ryan','Wilson','604.837.1029','wilsonryan@gmail.com', null)<br />
INTO CLIENT VALUES(3012,'Luis','Jones','416.832.6771','luis7787@rogers.com', null)<br />
INTO CLIENT VALUES(5010,'Mary','Anderson','647.234.5690','andersonpink@gmail.com', null)<br />
INTO CLIENT VALUES(7010,'James','White','647.298.9182','james.white@bell.com',1010)<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
9. DEED<BR><br />
<pre><br />
INSERT ALL<br />
INTO VALUES(149800,1010,75,5010,352300)<br />
INTO VALUES(139204,1012,100,3010,1394000)<br />
INTO VALUES(134982,2011,50,1014,200000)<br />
SELECT * FROM DUAL;<br />
</pre><br />
<br />
==== CREATE VIEW ====<br />
<pre><br />
CREATE VIEW PropAreaLocSeller_VU AS<br />
SELECT (a.AreaName || ', ' || p.City || ', ' || p.Street || ', ' || p.PostalCode) "Property Location",<br />
TO_CHAR(p.ListingPrice,'$9,999,999'), sgl.LotSize || ' sqft' LotSize, s.Lname || ', ' || s.Fname, s.phone, d.OwnPct, NVL(ag.AgencyName, 'No Agency')<br />
FROM Property p<br />
JOIN Single sgl ON (p.PropertyID = sgl.PropertyID)<br />
JOIN Area ar ON (p.AreaID = a.AreaID)<br />
JOIN Agency ag ON (p.AgencyID = ag.AgencyID)<br />
JOIN Deed d ON (p.PropertyID = d.PropertyID)<br />
JOIN Client s ON (d.SellerID = s.ClientID)<br />
</pre><br />
<br />
Not Too sure if this will work out<br />
<br />
=Assignment 1=<br />
==Due Date==<br />
Thursday, October 21st, 4:00pm<br />
Printout submission only( SELECT Statements + ALL outputs)<br />
==Description==<br />
[https://cs.senecac.on.ca/~nconkic/assign1.doc Assignment1]<br />
==Solution==<br />
<pre><br />
SQL> SELECT employee_id, RPAD(CONCAT(CONCAT(last_name, ', '),first_name), 25) "Full Name",<br />
<br />
2 job_id,<br />
<br />
3 TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
<br />
4 "Start Date"<br />
<br />
5 FROM employees<br />
<br />
6 WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
<br />
7 ORDER BY 4 DESC;<br />
<br />
<br />
<br />
EMPLOYEE_ID Full Name JOB_ID Start Date <br />
<br />
----------- ------------------------- ---------- ----------------------------------------- <br />
<br />
124 Mourgos, Kevin ST_MAN November First in the year 1999 <br />
<br />
178 Grant, Kimberely SA_REP May First in the year 1999 <br />
<br />
174 Abel, Ellen SA_REP May First in the year 1996 <br />
<br />
104 Ernst, Bruce IT_PROG May First in the year 1991 <br />
<br />
<br />
<br />
SQL> SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
<br />
2 || job_id || ' will have a new salary of $' || salary * 1.15 "Happy Employees"<br />
<br />
3 FROM employees<br />
<br />
4 WHERE salary BETWEEN 5000 AND 12000<br />
<br />
5 AND job_id IN ('IT_PROG', 'ST_CLERK')<br />
<br />
6 ORDER BY employee_id;<br />
<br />
<br />
<br />
Happy Employees <br />
<br />
----------------------------------------------------------------------------------------------------<br />
<br />
Employee named Alexander Hunold who is IT_PROG will have a new salary of $10350 <br />
<br />
Employee named Bruce Ernst who is IT_PROG will have a new salary of $6900 <br />
<br />
<br />
<br />
SQL> SELECT last_name, salary, job_id,<br />
<br />
2 RPAD(NVL(TO_CHAR(manager_id), 'No Manager'), 10) "Manager #",<br />
<br />
3 LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
<br />
4 FROM employees<br />
<br />
5 WHERE (job_id LIKE 'MK%' OR manager_id IS NULL)<br />
<br />
6 AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
<br />
7 ORDER BY 2 DESC;<br />
<br />
<br />
<br />
LAST_NAME SALARY JOB_ID Manager # Total Income <br />
<br />
------------------------- ---------- ---------- ---------- ------------ <br />
<br />
King 24000 AD_PRES No Manager $288,000 <br />
<br />
Hartstein 13000 MK_MAN 100 $156,000 <br />
<br />
<br />
<br />
SQL> SELECT RPAD(CONCAT(CONCAT(first_name,' '),last_name), 25) "Employee", job_id,<br />
<br />
2 LPAD(TRIM(TO_CHAR(salary, '$999,999')), 12, '=') "Salary", department_name<br />
<br />
3 FROM employees e JOIN departments d<br />
<br />
4 ON (e.department_id = d.department_id)<br />
<br />
5 WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
<br />
6 AND salary <<br />
<br />
7 (SELECT MAX(salary)<br />
<br />
8 FROM employees<br />
<br />
9 WHERE SUBSTR(job_id, 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
<br />
10 ORDER BY 1;<br />
<br />
<br />
<br />
Employee JOB_ID Salary DEPARTMENT_NAME <br />
<br />
------------------------- ---------- ------------ ------------------------------ <br />
<br />
Eleni Zlotkey SA_MAN =====$10,500 Sales <br />
<br />
Jonathon Taylor SA_REP ======$8,600 Sales <br />
<br />
Pat Fay MK_REP ======$6,000 Marketing <br />
<br />
<br />
<br />
SQL><br />
<br />
SQL> SELECT last_name, salary, job_id<br />
<br />
2 FROM employees<br />
<br />
3 WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
<br />
4 AND salary ><br />
<br />
5 (SELECT MAX(salary)<br />
<br />
6 FROM employees<br />
<br />
7 JOIN departments USING (department_id)<br />
<br />
8 JOIN locations USING (location_id)<br />
<br />
9 WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
<br />
<br />
LAST_NAME SALARY JOB_ID <br />
<br />
------------------------- ---------- ---------- <br />
<br />
Kochhar 17000 AD_VP <br />
<br />
De Haan 17000 AD_VP <br />
<br />
<br />
<br />
SQL> SELECT last_name, first_name, job_id, hire_date<br />
<br />
2 FROM employees<br />
<br />
3 WHERE hire_date ><br />
<br />
4 (SELECT MAX(hire_date)<br />
<br />
5 FROM employees<br />
<br />
6 WHERE department_id =<br />
<br />
7 (SELECT department_id<br />
<br />
8 FROM departments<br />
<br />
9 WHERE UPPER(department_name) = 'IT'))<br />
<br />
10 AND (department_id !=<br />
<br />
11 (SELECT department_id<br />
<br />
12 FROM departments<br />
<br />
13 WHERE UPPER(department_name) = 'EXECUTIVE')<br />
<br />
14 OR department_id IS NULL)<br />
<br />
15 ORDER BY 4 DESC;<br />
<br />
<br />
<br />
LAST_NAME FIRST_NAME JOB_ID HIRE_DATE <br />
<br />
------------------------- -------------------- ---------- --------- <br />
<br />
Zlotkey Eleni SA_MAN 29-JAN-00 <br />
<br />
Mourgos Kevin ST_MAN 16-NOV-99 <br />
<br />
Grant Kimberely SA_REP 24-MAY-99 <br />
<br />
<br />
<br />
SQL> SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay",<br />
<br />
2 MIN(salary) "Lowest Dept/Job Pay"<br />
<br />
3 FROM employees<br />
<br />
4 WHERE UPPER(job_id) NOT LIKE '%VP'<br />
<br />
5 AND department_id NOT IN<br />
<br />
6 (SELECT department_id<br />
<br />
7 FROM departments<br />
<br />
8 WHERE UPPER(department_name) IN ('IT','SALES'))<br />
<br />
9 GROUP BY department_id, job_id<br />
<br />
10 HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
<br />
11 ORDER BY 1, 2;<br />
<br />
<br />
<br />
DEPARTMENT_ID JOB_ID Average Dept/Job Pay Lowest Dept/Job Pay <br />
<br />
------------- ---------- -------------------- ------------------- <br />
<br />
20 MK_MAN 13000 13000 <br />
<br />
20 MK_REP 6000 6000 <br />
<br />
50 ST_MAN 5800 5800 <br />
<br />
110 AC_ACCOUNT 8300 8300 <br />
<br />
110 AC_MGR 12000 12000 <br />
<br />
<br />
<br />
SQL> SELECT department_id, department_name,<br />
<br />
2 RPAD(TRIM(NVL(city, 'Not Assinged Yet')), 25, ' ') "City",<br />
<br />
3 COUNT(DISTINCT job_id) "# of Jobs"<br />
<br />
4 FROM employees<br />
<br />
5 RIGHT OUTER JOIN departments USING (department_id)<br />
<br />
6 LEFT OUTER JOIN locations USING (location_id)<br />
<br />
7 GROUP BY department_id, department_name, city;<br />
<br />
<br />
<br />
DEPARTMENT_ID DEPARTMENT_NAME City # of Jobs <br />
<br />
------------- ------------------------------ ------------------------- ---------- <br />
<br />
110 Accounting Seattle 2 <br />
<br />
50 Shipping South San Francisco 2 <br />
<br />
80 Sales Oxford 2 <br />
<br />
10 Administration Seattle 1 <br />
<br />
190 Contracting Seattle 0 <br />
<br />
90 Executive Seattle 2 <br />
<br />
20 Marketing Toronto 2 <br />
<br />
60 IT Southlake 1 <br />
<br />
<br />
<br />
8 rows selected.<br />
<br />
<br />
<br />
SQL> spool off<br />
</pre><br />
==SQL Statements==<br />
===1.===<br />
''YuJin''<br />
<pre><br />
SELECT employee_id, RPAD(CONCAT(CONCAT(last_name, ', '),first_name), 25) "Full Name",<br />
job_id,<br />
TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
"Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
ORDER BY 4 DESC;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT employee_id,<br />
SUBSTR(last_name ||' '|| first_name, 1, 25) "Full Name",<br />
job_id,<br />
TO_CHAR(hire_date,'fmMonth "First in the year" YYYY') "Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date,'fmMON') IN ('MAY','NOV')<br />
ORDER BY hire_date DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select employee_id "Emp#",<br />
(last_name ||', '|| first_name) "Full Name",<br />
job_id "Job",<br />
to_char(trunc(hire_date, 'MONTH'), 'FMMonth Ddspth "in the year"<br />
YYYY') "Start Date"<br />
from employees<br />
where to_char(hire_date, 'fmMonth') in ('May', 'November')<br />
order by hire_date desc;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT employee_id, SUBSTR(last_name ||' '|| first_name, 1, 25) "Full Name",<br />
job_id,<br />
TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
"Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
ORDER BY hire_date DESC;<br />
</pre><br />
<br />
===2.===<br />
''YuJin''<br />
<pre><br />
SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
|| job_id || ' will have a new salary of $' || salary * 1.15 "Happy Employees"<br />
FROM employees<br />
WHERE salary BETWEEN 5000 AND 12000<br />
AND job_id IN ('IT_PROG', 'ST_CLERK')<br />
ORDER BY employee_id;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT 'Employee named '||first_name||' '||last_name||' who is '||job_id||' will have a new salary of $'|| salary *1.15 "Happy Employees"<br />
FROM employees<br />
WHERE job_id IN ('IT_PROG','ST CLERK')<br />
AND (salary BETWEEN 5000 AND 12000)<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
Select ('Employee named ' || first_name ||' '|| last_name || ' who is ' || job_id || ' will have a new salary of ' || (salary*1.15)) "Happy Employees"<br />
From employees<br />
Where salary between 5000 and 12000<br />
And upper(job_id) in ('IT_PROG', 'ST_CLERK')<br />
order by employee_id;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
|| job_id || ' will have a new salary of ' || TO_CHAR(salary * 1.15, 'fm$999999') "Happy Employees"<br />
FROM employees<br />
WHERE salary BETWEEN 5000 AND 12000<br />
AND UPPER(job_id) IN ('IT_PROG', 'ST_CLERK')<br />
ORDER BY employee_id;<br />
</pre><br />
<br />
===3.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, salary, job_id,<br />
RPAD(NVL(TO_CHAR(manager_id), 'No Manager'), 10) "Manager #",<br />
LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
FROM employees<br />
WHERE (job_id LIKE 'MK%' OR manager_id IS NULL)<br />
AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
ORDER BY 2 DESC;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, salary, job_id, NVL(TO_CHAR(manager_id),'No Manager') Manager#,<br />
TO_CHAR(salary*12,'$999,999') "Total Income"<br />
FROM employees<br />
WHERE (manager_id IS NULL<br />
OR job_id LIKE 'MK%')<br />
AND ( salary* (NVL(commission_pct,0) + 1) + 1000 ) > 10000<br />
ORDER BY salary DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, salary, job_id, nvl(to_char(manager_id),'No Manager') Manager#,<br />
to_char(salary*12,'$999,999') "Total Income"<br />
from employees<br />
where (upper(job_id) like 'MK%' or manager_id IS NULL)<br />
and salary * (1 + nvl(commission_pct, 0)) + 1000 > 10000<br />
order by 2 desc;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT last_name, salary, job_id,<br />
SUBSTR(NVL(TO_CHAR(manager_id), 'No Manager'), 1, 10) "Manager #",<br />
LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
FROM employees<br />
WHERE (UPPER(job_id) LIKE 'MK%' OR manager_id IS NULL)<br />
AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
ORDER BY salary DESC;<br />
<br />
</pre><br />
<br />
===4.===<br />
''YuJin''<br />
<pre><br />
SELECT RPAD(CONCAT(CONCAT(first_name,' '),last_name), 25) "Employee", job_id,<br />
LPAD(TRIM(TO_CHAR(salary, '$999,999')), 12, '=') "Salary", department_name<br />
FROM employees e JOIN departments d<br />
ON (e.department_id = d.department_id)<br />
WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
AND salary <<br />
(SELECT MAX(salary)<br />
FROM employees<br />
WHERE SUBSTR(job_id, 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
ORDER BY 1;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT SUBSTR(first_name||' '||last_name, 25) Employee, job_id,<br />
LPAD(TO_CHAR(salary,'$99,999'), 12, '=') Salary, department_name<br />
FROM employees e JOIN departments d<br />
ON (d.department_id=e.department_id)<br />
WHERE salary < (SELECT MAX(salary)<br />
FROM employees<br />
WHERE UPPER(SUBSTR(job_id,4)) NOT IN ('VP', 'PRES', 'MAN', 'MGR')<br />
)<br />
AND UPPER(department_name) IN ('MARKETING','SALES')<br />
ORDER BY first_name, last_name<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select substr(first_name ||' '|| last_name) "Employee", job_id, to_char(salary, '$999,999', 12, '=') Salary, department_name<br />
from employees e join departments d<br />
on (e.department_id = d.department_id)<br />
where upper(department_name) in ('MARKETING', 'SALES')<br />
and salary < (select max(salary)<br />
from employees<br />
where substr(job_id,4) not in ('PRES','VP','MAN','MGR'))<br />
order by "Employee";<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT SUBSTR(first_name ||' '|| last_name, 1, 25) "Employee", job_id,<br />
LPAD(TO_CHAR(salary, 'fm$999,999'), 12, '=') "Salary", department_name<br />
FROM employees e JOIN departments d<br />
ON (e.department_id = d.department_id)<br />
WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
AND salary <<br />
(SELECT MAX(salary)<br />
FROM employees<br />
WHERE SUBSTR(UPPER(job_id), 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
ORDER BY 1;<br />
</pre><br />
<br />
===5.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
AND salary ><br />
(SELECT MAX(salary)<br />
FROM employees<br />
JOIN departments USING (department_id)<br />
JOIN locations USING (location_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE salary > (SELECT MAX(salary)<br />
FROM locations JOIN departments<br />
USING (location_id)<br />
JOIN employees<br />
USING (department_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD')<br />
)<br />
AND UPPER(job_id) NOT LIKE '%PRES'<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, salary, job_id<br />
from employees<br />
where salary > (select max(salary)<br />
from employees join departments<br />
using (department_id)<br />
join locations<br />
using (location_id)<br />
where upper(city) in ('TORONTO','OXFORD'))<br />
and upper(job_id) not like '%PRES'<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
AND salary ><br />
(SELECT MAX(salary)<br />
FROM employees<br />
JOIN departments USING (department_id)<br />
JOIN locations USING (location_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
</pre><br />
<br />
===6.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, first_name, job_id, hire_date<br />
FROM employees<br />
WHERE hire_date ><br />
(SELECT MAX(hire_date)<br />
FROM employees<br />
WHERE department_id =<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'IT'))<br />
AND (department_id !=<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'EXECUTIVE')<br />
OR department_id IS NULL)<br />
ORDER BY 4 DESC;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, first_name, job_id, hire_date<br />
FROM employees e<br />
WHERE hire_date > (SELECT MAX(hire_date)<br />
FROM employees<br />
WHERE department_id = (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'IT'<br />
)<br />
)<br />
AND (department_id <> (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) ='EXECUTIVE')<br />
OR department_id IS NULL)<br />
ORDER BY hire_date DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, first_name, job_id, hire_date<br />
from employees<br />
where hire_date > (select max(hire_date)<br />
from employees<br />
where department_id = (select department_id<br />
from departments<br />
where upper(department_name) = 'IT'))<br />
and (department_id != (select department_id<br />
from departments<br />
where upper(department_name) = 'EXECUTIVE')<br />
or department_id IS NULL)<br />
order by hire_date desc;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT last_name, first_name, job_id, hire_date<br />
FROM employees<br />
WHERE hire_date ><br />
(SELECT MAX(hire_date)<br />
FROM employees<br />
WHERE department_id =<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'IT'))<br />
AND (department_id !=<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'EXECUTIVE')<br />
OR department_id IS NULL)<br />
ORDER BY hire_date DESC;<br />
</pre><br />
<br />
===7.===<br />
''YuJin''<br />
<pre><br />
SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay",<br />
MIN(salary) "Lowest Dept/Job Pay"<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%VP'<br />
AND department_id NOT IN<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) IN ('IT','SALES'))<br />
GROUP BY department_id, job_id<br />
HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
ORDER BY 1, 2;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay", MIN(salary) "Lowest Dept/Job Pay"<br />
FROM employees<br />
WHERE department_id <> ALL (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) IN ('IT','SALES')<br />
)<br />
AND job_id NOT LIKE '%VP'<br />
GROUP BY department_id, job_id<br />
HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
ORDER BY department_id, job_id<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select department_id, job_id, avg(salary) "Average Dept/Job Pay", min(salary) "Lowest Dept/Job Pay"<br />
from employees<br />
where upper(job_id) not like '%VP'<br />
and department_id != all(select department_id<br />
from departments<br />
where upper(department_name) in ('IT','SALES'))<br />
group by department_id, job_id<br />
having min(salary) between 5000 and 15000<br />
order by department_id, job_id<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay",<br />
MIN(salary) "Lowest Dept/Job Pay"<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%VP'<br />
AND department_id != ALL<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) IN ('IT','SALES'))<br />
GROUP BY department_id, job_id<br />
HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
ORDER BY department_id, job_id;<br />
</pre><br />
<br />
===8.===<br />
''YuJin''<br />
<pre><br />
SELECT department_id, department_name,<br />
RPAD(TRIM(NVL(city, 'Not Assinged Yet')), 25, ' ') "City",<br />
COUNT(DISTINCT job_id) "# of Jobs"<br />
FROM employees<br />
RIGHT OUTER JOIN departments USING (department_id)<br />
LEFT OUTER JOIN locations USING (location_id)<br />
GROUP BY department_id, department_name, city;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT department_id, department_name, SUBSTR(NVL(city,'Not Assigned Yet'),1,25) City,<br />
COUNT(DISTINCT job_id) "# of Jobs"<br />
FROM locations l RIGHT OUTER JOIN departments d<br />
USING (location_id)<br />
LEFT OUTER JOIN employees e<br />
USING (department_id)<br />
GROUP BY department_id, department_name, city<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select department_id, department_name, substr(nvl(city,'Not Assigned Yet'),1,25) City,<br />
count(distinct job_id) "# of Jobs"<br />
from employees right outer join departments<br />
using (department_id)<br />
left outer join locations<br />
using (location_id)<br />
group by department_id, department_name, city<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT department_id, department_name,<br />
SUBSTR(NVL(city, 'Not Assinged Yet'),1, 25) "City",<br />
COUNT(DISTINCT job_id) "# of Jobs"<br />
FROM employees<br />
RIGHT OUTER JOIN departments USING (department_id)<br />
LEFT OUTER JOIN locations USING (location_id)<br />
GROUP BY department_id, department_name, city;<br />
<br />
</pre></div>
Yujin.jeong
https://wiki.cdot.senecacollege.ca/w/index.php?title=J.Y.S&diff=50976
J.Y.S
2010-11-30T20:53:10Z
<p>Yujin.jeong: /* DML Statements (INSERT INTO) */</p>
<hr />
<div>This page is to efficiently manage our group assignments!<br />
== Member List == <br />
*[mailto:,,yjeong@learn.senecac.on.ca,?subject=dbs301 Email All]<br />
<br />
{| class="wikitable sortable" border="1" cellpadding="5"<br />
! First Name !! Last Name !! wiki id !! Learn e-mail !! Phone<br />
|-<br />
|[[User:Yujin.jeong | YuJin]]||Jeong||[[Special:Contributions/yujin.jeong | yujin.jeong]]||[mailto:yjeong@learn.senecac.on.ca?sujbect=dbs301 yjeong]|| 647 - 832 - 6771<br />
|-<br />
<br />
|-<br />
|Saad|| || || ||<br />
|-<br />
<br />
|-<br />
|James|| || || ||<br />
|-<br />
|}<br />
<br />
=Assignment 3 (worth 9%)=<br />
==Due Date==<br />
Thursday, December 2nd, 3:00pm<br />
Printout of all TIC charts and DDL / DML statements<br />
<br />
==Solution==<br />
==== DDL Statements (CREATE TABLE) ====<br />
1. AREA<br />
<pre><br />
CREATE TABLE AREA<br />
(<br />
AreaID NUMBER(4) CONSTRAINT area_areaid_pk PRIMARY KEY,<br />
AreaName VARCHAR2(15) NOT NULL CONSTRAINT area_areaname_uk UNIQUE,<br />
ElmSchool VARCHAR2(40),<br />
MidSchool VARCHAR2(40),<br />
HighSchool VARCHAR2(40),<br />
Comments VARCHAR2(100)<br />
);<br />
</pre><br />
2. AGENCY<br />
<pre><br />
CREATE TABLE AGENCY<br />
(<br />
AgencyID NUMBER(4) CONSTRAINT agency_agencyid_pk PRIMARY KEY,<br />
AgencyName VARCHAR2(30) NOT NULL CONSTRAINT agency_agencyname_uk UNIQUE,<br />
AgencyPhone VARCHAR2(15) NOT NULL CONSTRAINT agency_agencyphone_uk UNIQUE<br />
);<br />
</pre><br />
3. PROPERTY<br />
<pre><br />
CREATE TABLE PROPERTY<br />
(<br />
PropertyID NUMBER(6),<br />
Street VARCHAR2(40) NOT NULL,<br />
City VARCHAR2(15) NOT NULL,<br />
Province CHAR(2) NOT NULL,<br />
PostalCode CHAR(6) NOT NULL,<br />
Bedrooms NUMBER(1) NOT NULL,<br />
Bathrooms NUMBER(1) NOT NULL,<br />
ListingPrice NUMBER(7) NOT NULL,<br />
AreaID NUMBER(4) NOT NULL,<br />
CONSTRAINT property_propertyid_pk PRIMARY KEY(PropertyID),<br />
CONSTRAINT property_bedrooms_ck CHECK(Bedrooms BETWEEN 1 AND 9),<br />
CONSTRAINT property_bathrooms_ck CHECK(Bathrooms BETWEEN 1 AND 9),<br />
CONSTRAINT property_listingprice_ck CHECK(ListingPrice BETWEEN 1 AND 4999999),<br />
CONSTRAINT property_areaid_fk FOREIGN KEY(AreaID) REFERENCES AREA(AreaID)<br />
);<br />
</pre><br />
4. SINGLE<br />
<pre><br />
CREATE TABLE SINGLE<br />
(<br />
PropertyID NUMBER(6), <br />
LotSize NUMBER(8,2) NOT NULL,<br />
CONSTRAINT single_propertyID_pk PRIMARY KEY(PropertyID), <br />
CONSTRAINT single_propertyID_fk FOREIGN KEY(PropertyID) REFERENCES PROPERTY(PropertyID),<br />
CONSTRAINT single_lotsize_ck CHECK(LotSize > 0)<br />
);<br />
<br />
</pre><br />
5. CONDO<br />
<pre><br />
CREATE TABLE CONDO<br />
(<br />
PropertyID NUMBER(6),<br />
Fee NUMBER(8,2) NOT NULL, <br />
CONSTRAINT condo_propertyID_pk PRIMARY KEY(PropertyID),<br />
CONSTRAINT condo_propertyID_fk FOREIGN KEY(PropertyID) REFERENCES PROPERTY(PropertyID),<br />
CONSTRAINT condo_fee_ck CHECK(Fee > 0)<br />
);<br />
<br />
</pre><br />
6. OUTLET<br />
<pre><br />
CREATE TABLE OUTLET<br />
(<br />
OutletID NUMBER(4), <br />
OutletName VARCHAR2(20) NOT NULL,<br />
OutletPhone VARCHAR2(15) NOT NULL,<br />
OutletType CHAR(1) NOT NULL,<br />
CONSTRAINT outlet_outletid_pk PRIMARY KEY(OutletID),<br />
CONSTRAINT outlet_outlettype_ck CHECK(OutletType IN('N','M','W','F')),<br />
CONSTRAINT outlet_outletname_type_uk UNIQUE(OutletName, OutletType)<br />
);<br />
<br />
</pre><br />
7. ADVERTISEMENT<br />
<pre><br />
CREATE TABLE ADVERTISEMENT<br />
(<br />
PropertyID NUMBER(6),<br />
OutletID NUMBER(4),<br />
AdvDate DATE,<br />
AdvCost NUMBER(6) NOT NULL,<br />
CONSTRAINT ad_adid_pk PRIMARY KEY(PropertyID, OutletID),<br />
CONSTRAINT ad_propertyid_fk FOREIGN KEY(PropertyID) REFERENCES PROPERTY(PropertyID),<br />
CONSTRAINT ad_outletid_fk FOREIGN KEY(OutletID) REFERENCES OUTLET(OutletID),<br />
CONSTRAINT ad_advcost_ck CHECK(AdvCost > 0)<br />
);<br />
</pre><br />
8. CLIENT<br />
<pre><br />
CREATE TABLE CLIENT<br />
(<br />
ClientID NUMBER(6),<br />
Fname VARCHAR2(30) NOT NULL,<br />
Lname VARCHAR2(30) NOT NULL,<br />
Phone VARCHAR2(15) NOT NULL,<br />
Email VARCHAR2(40),<br />
RefID NUMBER(6),<br />
CONSTRAINT client_clientid_pk PRIMARY KEY(ClientID),<br />
CONSTRAINT client_phone_uk UNIQUE(Phone),<br />
CONSTRAINT client_email_uk UNIQUE(Email),<br />
CONSTRAINT client_refid_fk FOREIGN KEY(RefID) REFERENCES CLIENT(ClientID)<br />
);<br />
</pre><br />
9. DEED<br />
<pre><br />
CREATE TABLE DEED<br />
(<br />
PropertyID NUMBER(6),<br />
SellerID NUMBER(6),<br />
OwnPct NUMBER(5,2) NOT NULL,<br />
BuyerID NUMBER(6),<br />
BuyPrice NUMBER(7),<br />
CONSTRAINT deed_deedid_pk PRIMARY KEY(PropertyID, SellerID),<br />
CONSTRAINT deed_propertyid_fk FOREIGN KEY(PropertyID) REFERENCES PROPERTY(PropertyID),<br />
CONSTRAINT deed_sellerid_fk FOREIGN KEY(SellerID) REFERENCES CLIENT(ClientID),<br />
CONSTRAINT deed_buyerid_fk FOREIGN KEY(BuyerID) REFERENCES CLIENT(ClientID),<br />
CONSTRAINT deed_ownpct_ck CHECK(OwnPct > 0 AND OwnPct <= 100),<br />
CONSTRAINT deed_buyprice_ck CHECK(BuyPrice BETWEEN 1 AND 4999999)<br />
);<br />
<br />
</pre><br />
<br />
==== DML Statements (INSERT INTO) ====<br />
<br />
1. AREA<BR><br />
<pre><br />
INSERT ALL<br />
INTO AREA VALUES(1001, 'Bayview Village', 'Adrienne Clarkson Public School', 'Amesbury Middle School', 'Bayview Secondary School', 'Upper middle class to upper class neighborhood in Toronto.')<br />
INTO AREA VALUES(3001,'Laurelwood', 'Elizabeth Ziegler Primary School','Waterloo Middle School','Saint David Catholic Secondary School','Close to University of Waterloo and many popular amenities.')<br />
INTO AREA VALUES(4001,'Silver Heights','Alison Park Primary School','Eastwood Middle School','King Edward Secondary School',null)<br />
INTO AREA VALUES(5001,'Kitsilano','Henry Hudson Elementary School','St George School','Kitsilano Secondary School','Very well-off area.')<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
<br />
2. AGENCY<BR><br />
<pre><br />
INSERT ALL<br />
INTO AGENCY VALUES(1055,'Sutton Group Regal Realty','416.875.9873')<br />
INTO AGENCY VALUES(3079,'MacDonald Realty','604.986.0231')<br />
INTO AGENCY VALUES(7024,'Royal LePage Groupe Newton','514.234.9283')<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
<br />
3. PROPERTY<BR><br />
<pre><br />
INSERT ALL<br />
INTO PROPERTY VALUES(134982,'27 King"'"s College Circle','Toronto','ON','M5S1A1',2,2,380000,1001,1055)<br />
INTO PROPERTY VALUES(149800,'17 Pleasant View Dr.','Toronto','ON','M2J2H1',3,2,470000,1001, null)<br />
INTO PROPERTY VALUES(152932,'17 Barberry Pl. #1313','Toronto','ON','M8W7V4',1,1,259888,1001, null)<br />
INTO PROPERTY VALUES(495820,'776 Laurelwood Dr.','Waterloo','ON','H3A2T5',2,2,295000,3001,3079)<br />
INTO PROPERTY VALUES(500211,'409 Kelso Cr.','Cambridge','ON','H3Y7S3',3,2,485000,4001, null)<br />
INTO PROPERTY VALUES(139204,'3043 Crown St.','Vancouver','BC','U3J3M6',5,3,1398000,5001,7024)<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
4. SINGLE<BR><br />
<pre><br />
INSERT ALL<br />
INTO SINGLE VALUES(134982,3716)<br />
INTO SINGLE VALUES(149800,1005)<br />
INTO SINGLE VALUES(139204,5400)<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
5. CONDO<BR><br />
<pre><br />
INSERT ALL<br />
INTO CONDO VALUES(152932,250)<br />
INTO CONDO VALUES(495820,320)<br />
INTO CONDO VALUES(500211,550)<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
6. OUTLET<BR><br />
<pre><br />
INSERT ALL<br />
INTO OUTLET VALUES(1000,'Toronto Star','416.923.1782','N')<br />
INTO OUTLET VALUES(2001,'Waterloo Living','519.098.9283','M')<br />
INTO OUTLET VALUES(8001,'Canadian Life','416.982.0192','W')<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
7. ADVERTISEMENT<BR><br />
<pre><br />
INSERT ALL<br />
INTO ADVERTISEMENT VALUES(134982,1000,'25-NOV-10',350)<br />
INTO ADVERTISEMENT VALUES(149800,1000,'27-NOV-10',250)<br />
INTO ADVERTISEMENT VALUES(495820,2001,'27-NOV-10',300)<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
8. CLIENT<BR><br />
<pre><br />
INSERT ALL<br />
INTO CLIENT VALUES(1010,'Andrew','Lee','647.978.0192','andrew11@hotmail.com', null)<br />
INTO CLIENT VALUES(1011,'Daniel','Smith','416.895.9762','dsmith@gmail.com',5010)<br />
INTO CLIENT VALUES(1012,'Olivia','Wilson','647.915.2738','oliviaorange@gmail.com', null)<br />
INTO CLIENT VALUES(1013,'Jayden','Martin','519.225.1928','jmartin@rogers.com', null)<br />
INTO CLIENT VALUES(1014,'Maria','Brown','416.182.0021','maria.brown@hotmail.com', null)<br />
INTO CLIENT VALUES(2010,'Ethan','Roy','226.289.0394','ethanrockstar@bell.com', null)<br />
INTO CLIENT VALUES(2011,'Sophia','Tremblay','647.297.2918','stremblay@gmail.com',5010)<br />
INTO CLIENT VALUES(3010,'Ryan','Wilson','604.837.1029','wilsonryan@gmail.com', null)<br />
INTO CLIENT VALUES(3012,'Luis','Jones','416.832.6771','luis7787@rogers.com', null)<br />
INTO CLIENT VALUES(5010,'Mary','Anderson','647.234.5690','andersonpink@gmail.com', null)<br />
INTO CLIENT VALUES(7010,'James','White','647.298.9182','james.white@bell.com',1010)<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
9. DEED<BR><br />
<pre><br />
INSERT ALL<br />
INTO VALUES(149800,1010,75,5010,352300)<br />
INTO VALUES(139204,1012,100,3010,1394000)<br />
INTO VALUES(134982,2011,50,1014,200000)<br />
SELECT * FROM DUAL;<br />
</pre><br />
<br />
==== CREATE VIEW ====<br />
<pre><br />
CREATE VIEW PropAreaLocSeller_VU AS<br />
SELECT (a.AreaName || ', ' || p.City || ', ' || p.Street || ', ' || p.PostalCode) "Property Location",<br />
TO_CHAR(p.ListingPrice,'$9,999,999'), sgl.LotSize || ' sqft' LotSize, s.Lname || ', ' || s.Fname, s.phone, d.OwnPct, NVL(ag.AgencyName, 'No Agency')<br />
FROM Property p<br />
JOIN Single sgl ON (p.PropertyID = sgl.PropertyID)<br />
JOIN Area ar ON (p.AreaID = a.AreaID)<br />
JOIN Agency ag ON (p.AgencyID = ag.AgencyID)<br />
JOIN Deed d ON (p.PropertyID = d.PropertyID)<br />
JOIN Client s ON (d.SellerID = s.ClientID)<br />
</pre><br />
<br />
Not Too sure if this will work out<br />
<br />
=Assignment 1=<br />
==Due Date==<br />
Thursday, October 21st, 4:00pm<br />
Printout submission only( SELECT Statements + ALL outputs)<br />
==Description==<br />
[https://cs.senecac.on.ca/~nconkic/assign1.doc Assignment1]<br />
==Solution==<br />
<pre><br />
SQL> SELECT employee_id, RPAD(CONCAT(CONCAT(last_name, ', '),first_name), 25) "Full Name",<br />
<br />
2 job_id,<br />
<br />
3 TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
<br />
4 "Start Date"<br />
<br />
5 FROM employees<br />
<br />
6 WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
<br />
7 ORDER BY 4 DESC;<br />
<br />
<br />
<br />
EMPLOYEE_ID Full Name JOB_ID Start Date <br />
<br />
----------- ------------------------- ---------- ----------------------------------------- <br />
<br />
124 Mourgos, Kevin ST_MAN November First in the year 1999 <br />
<br />
178 Grant, Kimberely SA_REP May First in the year 1999 <br />
<br />
174 Abel, Ellen SA_REP May First in the year 1996 <br />
<br />
104 Ernst, Bruce IT_PROG May First in the year 1991 <br />
<br />
<br />
<br />
SQL> SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
<br />
2 || job_id || ' will have a new salary of $' || salary * 1.15 "Happy Employees"<br />
<br />
3 FROM employees<br />
<br />
4 WHERE salary BETWEEN 5000 AND 12000<br />
<br />
5 AND job_id IN ('IT_PROG', 'ST_CLERK')<br />
<br />
6 ORDER BY employee_id;<br />
<br />
<br />
<br />
Happy Employees <br />
<br />
----------------------------------------------------------------------------------------------------<br />
<br />
Employee named Alexander Hunold who is IT_PROG will have a new salary of $10350 <br />
<br />
Employee named Bruce Ernst who is IT_PROG will have a new salary of $6900 <br />
<br />
<br />
<br />
SQL> SELECT last_name, salary, job_id,<br />
<br />
2 RPAD(NVL(TO_CHAR(manager_id), 'No Manager'), 10) "Manager #",<br />
<br />
3 LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
<br />
4 FROM employees<br />
<br />
5 WHERE (job_id LIKE 'MK%' OR manager_id IS NULL)<br />
<br />
6 AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
<br />
7 ORDER BY 2 DESC;<br />
<br />
<br />
<br />
LAST_NAME SALARY JOB_ID Manager # Total Income <br />
<br />
------------------------- ---------- ---------- ---------- ------------ <br />
<br />
King 24000 AD_PRES No Manager $288,000 <br />
<br />
Hartstein 13000 MK_MAN 100 $156,000 <br />
<br />
<br />
<br />
SQL> SELECT RPAD(CONCAT(CONCAT(first_name,' '),last_name), 25) "Employee", job_id,<br />
<br />
2 LPAD(TRIM(TO_CHAR(salary, '$999,999')), 12, '=') "Salary", department_name<br />
<br />
3 FROM employees e JOIN departments d<br />
<br />
4 ON (e.department_id = d.department_id)<br />
<br />
5 WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
<br />
6 AND salary <<br />
<br />
7 (SELECT MAX(salary)<br />
<br />
8 FROM employees<br />
<br />
9 WHERE SUBSTR(job_id, 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
<br />
10 ORDER BY 1;<br />
<br />
<br />
<br />
Employee JOB_ID Salary DEPARTMENT_NAME <br />
<br />
------------------------- ---------- ------------ ------------------------------ <br />
<br />
Eleni Zlotkey SA_MAN =====$10,500 Sales <br />
<br />
Jonathon Taylor SA_REP ======$8,600 Sales <br />
<br />
Pat Fay MK_REP ======$6,000 Marketing <br />
<br />
<br />
<br />
SQL><br />
<br />
SQL> SELECT last_name, salary, job_id<br />
<br />
2 FROM employees<br />
<br />
3 WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
<br />
4 AND salary ><br />
<br />
5 (SELECT MAX(salary)<br />
<br />
6 FROM employees<br />
<br />
7 JOIN departments USING (department_id)<br />
<br />
8 JOIN locations USING (location_id)<br />
<br />
9 WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
<br />
<br />
LAST_NAME SALARY JOB_ID <br />
<br />
------------------------- ---------- ---------- <br />
<br />
Kochhar 17000 AD_VP <br />
<br />
De Haan 17000 AD_VP <br />
<br />
<br />
<br />
SQL> SELECT last_name, first_name, job_id, hire_date<br />
<br />
2 FROM employees<br />
<br />
3 WHERE hire_date ><br />
<br />
4 (SELECT MAX(hire_date)<br />
<br />
5 FROM employees<br />
<br />
6 WHERE department_id =<br />
<br />
7 (SELECT department_id<br />
<br />
8 FROM departments<br />
<br />
9 WHERE UPPER(department_name) = 'IT'))<br />
<br />
10 AND (department_id !=<br />
<br />
11 (SELECT department_id<br />
<br />
12 FROM departments<br />
<br />
13 WHERE UPPER(department_name) = 'EXECUTIVE')<br />
<br />
14 OR department_id IS NULL)<br />
<br />
15 ORDER BY 4 DESC;<br />
<br />
<br />
<br />
LAST_NAME FIRST_NAME JOB_ID HIRE_DATE <br />
<br />
------------------------- -------------------- ---------- --------- <br />
<br />
Zlotkey Eleni SA_MAN 29-JAN-00 <br />
<br />
Mourgos Kevin ST_MAN 16-NOV-99 <br />
<br />
Grant Kimberely SA_REP 24-MAY-99 <br />
<br />
<br />
<br />
SQL> SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay",<br />
<br />
2 MIN(salary) "Lowest Dept/Job Pay"<br />
<br />
3 FROM employees<br />
<br />
4 WHERE UPPER(job_id) NOT LIKE '%VP'<br />
<br />
5 AND department_id NOT IN<br />
<br />
6 (SELECT department_id<br />
<br />
7 FROM departments<br />
<br />
8 WHERE UPPER(department_name) IN ('IT','SALES'))<br />
<br />
9 GROUP BY department_id, job_id<br />
<br />
10 HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
<br />
11 ORDER BY 1, 2;<br />
<br />
<br />
<br />
DEPARTMENT_ID JOB_ID Average Dept/Job Pay Lowest Dept/Job Pay <br />
<br />
------------- ---------- -------------------- ------------------- <br />
<br />
20 MK_MAN 13000 13000 <br />
<br />
20 MK_REP 6000 6000 <br />
<br />
50 ST_MAN 5800 5800 <br />
<br />
110 AC_ACCOUNT 8300 8300 <br />
<br />
110 AC_MGR 12000 12000 <br />
<br />
<br />
<br />
SQL> SELECT department_id, department_name,<br />
<br />
2 RPAD(TRIM(NVL(city, 'Not Assinged Yet')), 25, ' ') "City",<br />
<br />
3 COUNT(DISTINCT job_id) "# of Jobs"<br />
<br />
4 FROM employees<br />
<br />
5 RIGHT OUTER JOIN departments USING (department_id)<br />
<br />
6 LEFT OUTER JOIN locations USING (location_id)<br />
<br />
7 GROUP BY department_id, department_name, city;<br />
<br />
<br />
<br />
DEPARTMENT_ID DEPARTMENT_NAME City # of Jobs <br />
<br />
------------- ------------------------------ ------------------------- ---------- <br />
<br />
110 Accounting Seattle 2 <br />
<br />
50 Shipping South San Francisco 2 <br />
<br />
80 Sales Oxford 2 <br />
<br />
10 Administration Seattle 1 <br />
<br />
190 Contracting Seattle 0 <br />
<br />
90 Executive Seattle 2 <br />
<br />
20 Marketing Toronto 2 <br />
<br />
60 IT Southlake 1 <br />
<br />
<br />
<br />
8 rows selected.<br />
<br />
<br />
<br />
SQL> spool off<br />
</pre><br />
==SQL Statements==<br />
===1.===<br />
''YuJin''<br />
<pre><br />
SELECT employee_id, RPAD(CONCAT(CONCAT(last_name, ', '),first_name), 25) "Full Name",<br />
job_id,<br />
TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
"Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
ORDER BY 4 DESC;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT employee_id,<br />
SUBSTR(last_name ||' '|| first_name, 1, 25) "Full Name",<br />
job_id,<br />
TO_CHAR(hire_date,'fmMonth "First in the year" YYYY') "Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date,'fmMON') IN ('MAY','NOV')<br />
ORDER BY hire_date DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select employee_id "Emp#",<br />
(last_name ||', '|| first_name) "Full Name",<br />
job_id "Job",<br />
to_char(trunc(hire_date, 'MONTH'), 'FMMonth Ddspth "in the year"<br />
YYYY') "Start Date"<br />
from employees<br />
where to_char(hire_date, 'fmMonth') in ('May', 'November')<br />
order by hire_date desc;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT employee_id, SUBSTR(last_name ||' '|| first_name, 1, 25) "Full Name",<br />
job_id,<br />
TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
"Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
ORDER BY hire_date DESC;<br />
</pre><br />
<br />
===2.===<br />
''YuJin''<br />
<pre><br />
SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
|| job_id || ' will have a new salary of $' || salary * 1.15 "Happy Employees"<br />
FROM employees<br />
WHERE salary BETWEEN 5000 AND 12000<br />
AND job_id IN ('IT_PROG', 'ST_CLERK')<br />
ORDER BY employee_id;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT 'Employee named '||first_name||' '||last_name||' who is '||job_id||' will have a new salary of $'|| salary *1.15 "Happy Employees"<br />
FROM employees<br />
WHERE job_id IN ('IT_PROG','ST CLERK')<br />
AND (salary BETWEEN 5000 AND 12000)<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
Select ('Employee named ' || first_name ||' '|| last_name || ' who is ' || job_id || ' will have a new salary of ' || (salary*1.15)) "Happy Employees"<br />
From employees<br />
Where salary between 5000 and 12000<br />
And upper(job_id) in ('IT_PROG', 'ST_CLERK')<br />
order by employee_id;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
|| job_id || ' will have a new salary of ' || TO_CHAR(salary * 1.15, 'fm$999999') "Happy Employees"<br />
FROM employees<br />
WHERE salary BETWEEN 5000 AND 12000<br />
AND UPPER(job_id) IN ('IT_PROG', 'ST_CLERK')<br />
ORDER BY employee_id;<br />
</pre><br />
<br />
===3.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, salary, job_id,<br />
RPAD(NVL(TO_CHAR(manager_id), 'No Manager'), 10) "Manager #",<br />
LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
FROM employees<br />
WHERE (job_id LIKE 'MK%' OR manager_id IS NULL)<br />
AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
ORDER BY 2 DESC;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, salary, job_id, NVL(TO_CHAR(manager_id),'No Manager') Manager#,<br />
TO_CHAR(salary*12,'$999,999') "Total Income"<br />
FROM employees<br />
WHERE (manager_id IS NULL<br />
OR job_id LIKE 'MK%')<br />
AND ( salary* (NVL(commission_pct,0) + 1) + 1000 ) > 10000<br />
ORDER BY salary DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, salary, job_id, nvl(to_char(manager_id),'No Manager') Manager#,<br />
to_char(salary*12,'$999,999') "Total Income"<br />
from employees<br />
where (upper(job_id) like 'MK%' or manager_id IS NULL)<br />
and salary * (1 + nvl(commission_pct, 0)) + 1000 > 10000<br />
order by 2 desc;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT last_name, salary, job_id,<br />
SUBSTR(NVL(TO_CHAR(manager_id), 'No Manager'), 1, 10) "Manager #",<br />
LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
FROM employees<br />
WHERE (UPPER(job_id) LIKE 'MK%' OR manager_id IS NULL)<br />
AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
ORDER BY salary DESC;<br />
<br />
</pre><br />
<br />
===4.===<br />
''YuJin''<br />
<pre><br />
SELECT RPAD(CONCAT(CONCAT(first_name,' '),last_name), 25) "Employee", job_id,<br />
LPAD(TRIM(TO_CHAR(salary, '$999,999')), 12, '=') "Salary", department_name<br />
FROM employees e JOIN departments d<br />
ON (e.department_id = d.department_id)<br />
WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
AND salary <<br />
(SELECT MAX(salary)<br />
FROM employees<br />
WHERE SUBSTR(job_id, 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
ORDER BY 1;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT SUBSTR(first_name||' '||last_name, 25) Employee, job_id,<br />
LPAD(TO_CHAR(salary,'$99,999'), 12, '=') Salary, department_name<br />
FROM employees e JOIN departments d<br />
ON (d.department_id=e.department_id)<br />
WHERE salary < (SELECT MAX(salary)<br />
FROM employees<br />
WHERE UPPER(SUBSTR(job_id,4)) NOT IN ('VP', 'PRES', 'MAN', 'MGR')<br />
)<br />
AND UPPER(department_name) IN ('MARKETING','SALES')<br />
ORDER BY first_name, last_name<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select substr(first_name ||' '|| last_name) "Employee", job_id, to_char(salary, '$999,999', 12, '=') Salary, department_name<br />
from employees e join departments d<br />
on (e.department_id = d.department_id)<br />
where upper(department_name) in ('MARKETING', 'SALES')<br />
and salary < (select max(salary)<br />
from employees<br />
where substr(job_id,4) not in ('PRES','VP','MAN','MGR'))<br />
order by "Employee";<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT SUBSTR(first_name ||' '|| last_name, 1, 25) "Employee", job_id,<br />
LPAD(TO_CHAR(salary, 'fm$999,999'), 12, '=') "Salary", department_name<br />
FROM employees e JOIN departments d<br />
ON (e.department_id = d.department_id)<br />
WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
AND salary <<br />
(SELECT MAX(salary)<br />
FROM employees<br />
WHERE SUBSTR(UPPER(job_id), 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
ORDER BY 1;<br />
</pre><br />
<br />
===5.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
AND salary ><br />
(SELECT MAX(salary)<br />
FROM employees<br />
JOIN departments USING (department_id)<br />
JOIN locations USING (location_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE salary > (SELECT MAX(salary)<br />
FROM locations JOIN departments<br />
USING (location_id)<br />
JOIN employees<br />
USING (department_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD')<br />
)<br />
AND UPPER(job_id) NOT LIKE '%PRES'<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, salary, job_id<br />
from employees<br />
where salary > (select max(salary)<br />
from employees join departments<br />
using (department_id)<br />
join locations<br />
using (location_id)<br />
where upper(city) in ('TORONTO','OXFORD'))<br />
and upper(job_id) not like '%PRES'<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
AND salary ><br />
(SELECT MAX(salary)<br />
FROM employees<br />
JOIN departments USING (department_id)<br />
JOIN locations USING (location_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
</pre><br />
<br />
===6.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, first_name, job_id, hire_date<br />
FROM employees<br />
WHERE hire_date ><br />
(SELECT MAX(hire_date)<br />
FROM employees<br />
WHERE department_id =<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'IT'))<br />
AND (department_id !=<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'EXECUTIVE')<br />
OR department_id IS NULL)<br />
ORDER BY 4 DESC;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, first_name, job_id, hire_date<br />
FROM employees e<br />
WHERE hire_date > (SELECT MAX(hire_date)<br />
FROM employees<br />
WHERE department_id = (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'IT'<br />
)<br />
)<br />
AND (department_id <> (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) ='EXECUTIVE')<br />
OR department_id IS NULL)<br />
ORDER BY hire_date DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, first_name, job_id, hire_date<br />
from employees<br />
where hire_date > (select max(hire_date)<br />
from employees<br />
where department_id = (select department_id<br />
from departments<br />
where upper(department_name) = 'IT'))<br />
and (department_id != (select department_id<br />
from departments<br />
where upper(department_name) = 'EXECUTIVE')<br />
or department_id IS NULL)<br />
order by hire_date desc;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT last_name, first_name, job_id, hire_date<br />
FROM employees<br />
WHERE hire_date ><br />
(SELECT MAX(hire_date)<br />
FROM employees<br />
WHERE department_id =<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'IT'))<br />
AND (department_id !=<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'EXECUTIVE')<br />
OR department_id IS NULL)<br />
ORDER BY hire_date DESC;<br />
</pre><br />
<br />
===7.===<br />
''YuJin''<br />
<pre><br />
SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay",<br />
MIN(salary) "Lowest Dept/Job Pay"<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%VP'<br />
AND department_id NOT IN<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) IN ('IT','SALES'))<br />
GROUP BY department_id, job_id<br />
HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
ORDER BY 1, 2;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay", MIN(salary) "Lowest Dept/Job Pay"<br />
FROM employees<br />
WHERE department_id <> ALL (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) IN ('IT','SALES')<br />
)<br />
AND job_id NOT LIKE '%VP'<br />
GROUP BY department_id, job_id<br />
HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
ORDER BY department_id, job_id<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select department_id, job_id, avg(salary) "Average Dept/Job Pay", min(salary) "Lowest Dept/Job Pay"<br />
from employees<br />
where upper(job_id) not like '%VP'<br />
and department_id != all(select department_id<br />
from departments<br />
where upper(department_name) in ('IT','SALES'))<br />
group by department_id, job_id<br />
having min(salary) between 5000 and 15000<br />
order by department_id, job_id<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay",<br />
MIN(salary) "Lowest Dept/Job Pay"<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%VP'<br />
AND department_id != ALL<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) IN ('IT','SALES'))<br />
GROUP BY department_id, job_id<br />
HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
ORDER BY department_id, job_id;<br />
</pre><br />
<br />
===8.===<br />
''YuJin''<br />
<pre><br />
SELECT department_id, department_name,<br />
RPAD(TRIM(NVL(city, 'Not Assinged Yet')), 25, ' ') "City",<br />
COUNT(DISTINCT job_id) "# of Jobs"<br />
FROM employees<br />
RIGHT OUTER JOIN departments USING (department_id)<br />
LEFT OUTER JOIN locations USING (location_id)<br />
GROUP BY department_id, department_name, city;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT department_id, department_name, SUBSTR(NVL(city,'Not Assigned Yet'),1,25) City,<br />
COUNT(DISTINCT job_id) "# of Jobs"<br />
FROM locations l RIGHT OUTER JOIN departments d<br />
USING (location_id)<br />
LEFT OUTER JOIN employees e<br />
USING (department_id)<br />
GROUP BY department_id, department_name, city<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select department_id, department_name, substr(nvl(city,'Not Assigned Yet'),1,25) City,<br />
count(distinct job_id) "# of Jobs"<br />
from employees right outer join departments<br />
using (department_id)<br />
left outer join locations<br />
using (location_id)<br />
group by department_id, department_name, city<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT department_id, department_name,<br />
SUBSTR(NVL(city, 'Not Assinged Yet'),1, 25) "City",<br />
COUNT(DISTINCT job_id) "# of Jobs"<br />
FROM employees<br />
RIGHT OUTER JOIN departments USING (department_id)<br />
LEFT OUTER JOIN locations USING (location_id)<br />
GROUP BY department_id, department_name, city;<br />
<br />
</pre></div>
Yujin.jeong
https://wiki.cdot.senecacollege.ca/w/index.php?title=J.Y.S&diff=50975
J.Y.S
2010-11-30T20:49:07Z
<p>Yujin.jeong: /* DDL Statements (CREATE TABLE) */</p>
<hr />
<div>This page is to efficiently manage our group assignments!<br />
== Member List == <br />
*[mailto:,,yjeong@learn.senecac.on.ca,?subject=dbs301 Email All]<br />
<br />
{| class="wikitable sortable" border="1" cellpadding="5"<br />
! First Name !! Last Name !! wiki id !! Learn e-mail !! Phone<br />
|-<br />
|[[User:Yujin.jeong | YuJin]]||Jeong||[[Special:Contributions/yujin.jeong | yujin.jeong]]||[mailto:yjeong@learn.senecac.on.ca?sujbect=dbs301 yjeong]|| 647 - 832 - 6771<br />
|-<br />
<br />
|-<br />
|Saad|| || || ||<br />
|-<br />
<br />
|-<br />
|James|| || || ||<br />
|-<br />
|}<br />
<br />
=Assignment 3 (worth 9%)=<br />
==Due Date==<br />
Thursday, December 2nd, 3:00pm<br />
Printout of all TIC charts and DDL / DML statements<br />
<br />
==Solution==<br />
==== DDL Statements (CREATE TABLE) ====<br />
1. AREA<br />
<pre><br />
CREATE TABLE AREA<br />
(<br />
AreaID NUMBER(4) CONSTRAINT area_areaid_pk PRIMARY KEY,<br />
AreaName VARCHAR2(15) NOT NULL CONSTRAINT area_areaname_uk UNIQUE,<br />
ElmSchool VARCHAR2(40),<br />
MidSchool VARCHAR2(40),<br />
HighSchool VARCHAR2(40),<br />
Comments VARCHAR2(100)<br />
);<br />
</pre><br />
2. AGENCY<br />
<pre><br />
CREATE TABLE AGENCY<br />
(<br />
AgencyID NUMBER(4) CONSTRAINT agency_agencyid_pk PRIMARY KEY,<br />
AgencyName VARCHAR2(30) NOT NULL CONSTRAINT agency_agencyname_uk UNIQUE,<br />
AgencyPhone VARCHAR2(15) NOT NULL CONSTRAINT agency_agencyphone_uk UNIQUE<br />
);<br />
</pre><br />
3. PROPERTY<br />
<pre><br />
CREATE TABLE PROPERTY<br />
(<br />
PropertyID NUMBER(6),<br />
Street VARCHAR2(40) NOT NULL,<br />
City VARCHAR2(15) NOT NULL,<br />
Province CHAR(2) NOT NULL,<br />
PostalCode CHAR(6) NOT NULL,<br />
Bedrooms NUMBER(1) NOT NULL,<br />
Bathrooms NUMBER(1) NOT NULL,<br />
ListingPrice NUMBER(7) NOT NULL,<br />
AreaID NUMBER(4) NOT NULL,<br />
CONSTRAINT property_propertyid_pk PRIMARY KEY(PropertyID),<br />
CONSTRAINT property_bedrooms_ck CHECK(Bedrooms BETWEEN 1 AND 9),<br />
CONSTRAINT property_bathrooms_ck CHECK(Bathrooms BETWEEN 1 AND 9),<br />
CONSTRAINT property_listingprice_ck CHECK(ListingPrice BETWEEN 1 AND 4999999),<br />
CONSTRAINT property_areaid_fk FOREIGN KEY(AreaID) REFERENCES AREA(AreaID)<br />
);<br />
</pre><br />
4. SINGLE<br />
<pre><br />
CREATE TABLE SINGLE<br />
(<br />
PropertyID NUMBER(6), <br />
LotSize NUMBER(8,2) NOT NULL,<br />
CONSTRAINT single_propertyID_pk PRIMARY KEY(PropertyID), <br />
CONSTRAINT single_propertyID_fk FOREIGN KEY(PropertyID) REFERENCES PROPERTY(PropertyID),<br />
CONSTRAINT single_lotsize_ck CHECK(LotSize > 0)<br />
);<br />
<br />
</pre><br />
5. CONDO<br />
<pre><br />
CREATE TABLE CONDO<br />
(<br />
PropertyID NUMBER(6),<br />
Fee NUMBER(8,2) NOT NULL, <br />
CONSTRAINT condo_propertyID_pk PRIMARY KEY(PropertyID),<br />
CONSTRAINT condo_propertyID_fk FOREIGN KEY(PropertyID) REFERENCES PROPERTY(PropertyID),<br />
CONSTRAINT condo_fee_ck CHECK(Fee > 0)<br />
);<br />
<br />
</pre><br />
6. OUTLET<br />
<pre><br />
CREATE TABLE OUTLET<br />
(<br />
OutletID NUMBER(4), <br />
OutletName VARCHAR2(20) NOT NULL,<br />
OutletPhone VARCHAR2(15) NOT NULL,<br />
OutletType CHAR(1) NOT NULL,<br />
CONSTRAINT outlet_outletid_pk PRIMARY KEY(OutletID),<br />
CONSTRAINT outlet_outlettype_ck CHECK(OutletType IN('N','M','W','F')),<br />
CONSTRAINT outlet_outletname_type_uk UNIQUE(OutletName, OutletType)<br />
);<br />
<br />
</pre><br />
7. ADVERTISEMENT<br />
<pre><br />
CREATE TABLE ADVERTISEMENT<br />
(<br />
PropertyID NUMBER(6),<br />
OutletID NUMBER(4),<br />
AdvDate DATE,<br />
AdvCost NUMBER(6) NOT NULL,<br />
CONSTRAINT ad_adid_pk PRIMARY KEY(PropertyID, OutletID),<br />
CONSTRAINT ad_propertyid_fk FOREIGN KEY(PropertyID) REFERENCES PROPERTY(PropertyID),<br />
CONSTRAINT ad_outletid_fk FOREIGN KEY(OutletID) REFERENCES OUTLET(OutletID),<br />
CONSTRAINT ad_advcost_ck CHECK(AdvCost > 0)<br />
);<br />
</pre><br />
8. CLIENT<br />
<pre><br />
CREATE TABLE CLIENT<br />
(<br />
ClientID NUMBER(6),<br />
Fname VARCHAR2(30) NOT NULL,<br />
Lname VARCHAR2(30) NOT NULL,<br />
Phone VARCHAR2(15) NOT NULL,<br />
Email VARCHAR2(40),<br />
RefID NUMBER(6),<br />
CONSTRAINT client_clientid_pk PRIMARY KEY(ClientID),<br />
CONSTRAINT client_phone_uk UNIQUE(Phone),<br />
CONSTRAINT client_email_uk UNIQUE(Email),<br />
CONSTRAINT client_refid_fk FOREIGN KEY(RefID) REFERENCES CLIENT(ClientID)<br />
);<br />
</pre><br />
9. DEED<br />
<pre><br />
CREATE TABLE DEED<br />
(<br />
PropertyID NUMBER(6),<br />
SellerID NUMBER(6),<br />
OwnPct NUMBER(5,2) NOT NULL,<br />
BuyerID NUMBER(6),<br />
BuyPrice NUMBER(7),<br />
CONSTRAINT deed_deedid_pk PRIMARY KEY(PropertyID, SellerID),<br />
CONSTRAINT deed_propertyid_fk FOREIGN KEY(PropertyID) REFERENCES PROPERTY(PropertyID),<br />
CONSTRAINT deed_sellerid_fk FOREIGN KEY(SellerID) REFERENCES CLIENT(ClientID),<br />
CONSTRAINT deed_buyerid_fk FOREIGN KEY(BuyerID) REFERENCES CLIENT(ClientID),<br />
CONSTRAINT deed_ownpct_ck CHECK(OwnPct > 0 AND OwnPct <= 100),<br />
CONSTRAINT deed_buyprice_ck CHECK(BuyPrice BETWEEN 1 AND 4999999)<br />
);<br />
<br />
</pre><br />
<br />
==== DML Statements (INSERT INTO) ====<br />
<br />
1. AREA<BR><br />
<pre><br />
INSERT ALL<br />
INTO AREA VALUES(1001, 'Bayview Village', 'Adrienne Clarkson Public School', 'Amesbury Middle School', 'Bayview Secondary School', 'Upper middle class to upper class neighborhood in Toronto.')<br />
INTO AREA VALUES(3001,'Laurelwood', 'Elizabeth Ziegler Primary School','Waterloo Middle School','Saint David Catholic Secondary School','Close to University of Waterloo and many popular amenities.')<br />
INTO AREA VALUES(4001,'Silver Heights','Alison Park Primary School','Eastwood Middle School','King Edward Secondary School',null)<br />
INTO AREA VALUES(5001,'Kitsilano','Henry Hudson Elementary School','St George School','Kitsilano Secondary School','Very well-off area.')<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
<br />
2. AGENCY<BR><br />
<pre><br />
INSERT ALL<br />
INTO VALUES(1055,'Sutton Group Regal Realty','416.875.9873')<br />
INTO VALUES(3079,'MacDonald Realty','604.986.0231')<br />
INTO VALUES(7024,'Royal LePage Groupe Newton','514.234.9283')<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
<br />
3. PROPERTY<BR><br />
<pre><br />
INSERT ALL<br />
INTO VALUES(134982,'27 King's College Circle','Toronto','ON','M5S1A1',2,2,380000,1001,1055)<br />
INTO VALUES(149800','17 Pleasant View Dr.','Toronto','ON','M2J2H1',3,2,470000,1001)<br />
INTO VALUES(152932,'17 Barberry Pl. #1313','Toronto','ON','M8W7V4,1,1,259888,1001)<br />
INTO VALUES(495820,'776 Laurelwood Dr.','Waterloo','ON','H3A2T5',2,2,295000,3001,3079)<br />
INTO VALUES(500211,'409 Kelso Cr.','Cambridge','ON','H3Y7S3',3,2,485000,4001)<br />
INTO VALUES(139204,'3043 Crown St.','Vancouver','BC','U3J3M6',5,3,1398000,5001,7024)<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
4. SINGLE<BR><br />
<pre><br />
INSERT ALL<br />
INTO VALUES(134982,3716)<br />
INTO VALUES(149800,1005)<br />
INTO VALUES(139204,5400)<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
5. CONDO<BR><br />
<pre><br />
INSERT ALL<br />
INTO VALUES(152932,250)<br />
INTO VALUES(495820,320)<br />
INTO VALUES(500211,550)<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
6. OUTLET<BR><br />
<pre><br />
INSERT ALL<br />
INTO VALUES(1000,'Toronto Star','416.923.1782','N')<br />
INTO VALUES(2001,'Waterloo Living','519.098.9283','M')<br />
INTO VALUES(8001,'Canadian Life','416.982.0192','W')<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
7. ADVERTISEMENT<BR><br />
<pre><br />
INSERT ALL<br />
INTO VALUES(134982,1000,'25-NOV-10',350)<br />
INTO VALUES(149800,1000,'27-NOV-10',250)<br />
INTO VALUES(495820,2001,'27-NOV-10',300)<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
8. CLIENT<BR><br />
<pre><br />
INSERT ALL<br />
INTO VALUES(1010,'Andrew','Lee','647.978.0192','andrew11@hotmail.com')<br />
INTO VALUES(1011,'Daniel','Smith','416.895.9762','dsmith@gmail.com',5010)<br />
INTO VALUES(1012,'Olivia','Wilson','647.915.2738','oliviaorange@gmail.com')<br />
INTO VALUES(1013,'Jayden','Martin','519.225.1928','jmartin@rogers.com')<br />
INTO VALUES(1014,'Maria','Brown','416.182.0021','maria.brown@hotmail.com')<br />
INTO VALUES(2010,'Ethan','Roy','226.289.0394','ethanrockstar@bell.com')<br />
INTO VALUES(2011,'Sophia','Tremblay','647.297.2918','stremblay@gmail.com',5010)<br />
INTO VALUES(3010,'Ryan,Wilson','604.837.1029','wilsonryan@gmail.com')<br />
INTO VALUES(3012,'Luis','Jones','416.832.6771','luis7787@rogers.com')<br />
INTO VALUES(5010,'Mary','Anderson','647.234.5690','andersonpink@gmail.com')<br />
INTO VALUES(7010,'James','White','647.298.9182','james.white@bell.com',1010)<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
9. DEED<BR><br />
<pre><br />
INSERT ALL<br />
INTO VALUES(149800,1010,75,5010,352300)<br />
INTO VALUES(139204,1012,100,3010,1394000)<br />
INTO VALUES(134982,2011,50,1014,200000)<br />
SELECT * FROM DUAL;<br />
</pre><br />
<br />
==== CREATE VIEW ====<br />
<pre><br />
CREATE VIEW PropAreaLocSeller_VU AS<br />
SELECT (a.AreaName || ', ' || p.City || ', ' || p.Street || ', ' || p.PostalCode) "Property Location",<br />
TO_CHAR(p.ListingPrice,'$9,999,999'), sgl.LotSize || ' sqft' LotSize, s.Lname || ', ' || s.Fname, s.phone, d.OwnPct, NVL(ag.AgencyName, 'No Agency')<br />
FROM Property p<br />
JOIN Single sgl ON (p.PropertyID = sgl.PropertyID)<br />
JOIN Area ar ON (p.AreaID = a.AreaID)<br />
JOIN Agency ag ON (p.AgencyID = ag.AgencyID)<br />
JOIN Deed d ON (p.PropertyID = d.PropertyID)<br />
JOIN Client s ON (d.SellerID = s.ClientID)<br />
</pre><br />
<br />
Not Too sure if this will work out<br />
<br />
=Assignment 1=<br />
==Due Date==<br />
Thursday, October 21st, 4:00pm<br />
Printout submission only( SELECT Statements + ALL outputs)<br />
==Description==<br />
[https://cs.senecac.on.ca/~nconkic/assign1.doc Assignment1]<br />
==Solution==<br />
<pre><br />
SQL> SELECT employee_id, RPAD(CONCAT(CONCAT(last_name, ', '),first_name), 25) "Full Name",<br />
<br />
2 job_id,<br />
<br />
3 TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
<br />
4 "Start Date"<br />
<br />
5 FROM employees<br />
<br />
6 WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
<br />
7 ORDER BY 4 DESC;<br />
<br />
<br />
<br />
EMPLOYEE_ID Full Name JOB_ID Start Date <br />
<br />
----------- ------------------------- ---------- ----------------------------------------- <br />
<br />
124 Mourgos, Kevin ST_MAN November First in the year 1999 <br />
<br />
178 Grant, Kimberely SA_REP May First in the year 1999 <br />
<br />
174 Abel, Ellen SA_REP May First in the year 1996 <br />
<br />
104 Ernst, Bruce IT_PROG May First in the year 1991 <br />
<br />
<br />
<br />
SQL> SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
<br />
2 || job_id || ' will have a new salary of $' || salary * 1.15 "Happy Employees"<br />
<br />
3 FROM employees<br />
<br />
4 WHERE salary BETWEEN 5000 AND 12000<br />
<br />
5 AND job_id IN ('IT_PROG', 'ST_CLERK')<br />
<br />
6 ORDER BY employee_id;<br />
<br />
<br />
<br />
Happy Employees <br />
<br />
----------------------------------------------------------------------------------------------------<br />
<br />
Employee named Alexander Hunold who is IT_PROG will have a new salary of $10350 <br />
<br />
Employee named Bruce Ernst who is IT_PROG will have a new salary of $6900 <br />
<br />
<br />
<br />
SQL> SELECT last_name, salary, job_id,<br />
<br />
2 RPAD(NVL(TO_CHAR(manager_id), 'No Manager'), 10) "Manager #",<br />
<br />
3 LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
<br />
4 FROM employees<br />
<br />
5 WHERE (job_id LIKE 'MK%' OR manager_id IS NULL)<br />
<br />
6 AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
<br />
7 ORDER BY 2 DESC;<br />
<br />
<br />
<br />
LAST_NAME SALARY JOB_ID Manager # Total Income <br />
<br />
------------------------- ---------- ---------- ---------- ------------ <br />
<br />
King 24000 AD_PRES No Manager $288,000 <br />
<br />
Hartstein 13000 MK_MAN 100 $156,000 <br />
<br />
<br />
<br />
SQL> SELECT RPAD(CONCAT(CONCAT(first_name,' '),last_name), 25) "Employee", job_id,<br />
<br />
2 LPAD(TRIM(TO_CHAR(salary, '$999,999')), 12, '=') "Salary", department_name<br />
<br />
3 FROM employees e JOIN departments d<br />
<br />
4 ON (e.department_id = d.department_id)<br />
<br />
5 WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
<br />
6 AND salary <<br />
<br />
7 (SELECT MAX(salary)<br />
<br />
8 FROM employees<br />
<br />
9 WHERE SUBSTR(job_id, 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
<br />
10 ORDER BY 1;<br />
<br />
<br />
<br />
Employee JOB_ID Salary DEPARTMENT_NAME <br />
<br />
------------------------- ---------- ------------ ------------------------------ <br />
<br />
Eleni Zlotkey SA_MAN =====$10,500 Sales <br />
<br />
Jonathon Taylor SA_REP ======$8,600 Sales <br />
<br />
Pat Fay MK_REP ======$6,000 Marketing <br />
<br />
<br />
<br />
SQL><br />
<br />
SQL> SELECT last_name, salary, job_id<br />
<br />
2 FROM employees<br />
<br />
3 WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
<br />
4 AND salary ><br />
<br />
5 (SELECT MAX(salary)<br />
<br />
6 FROM employees<br />
<br />
7 JOIN departments USING (department_id)<br />
<br />
8 JOIN locations USING (location_id)<br />
<br />
9 WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
<br />
<br />
LAST_NAME SALARY JOB_ID <br />
<br />
------------------------- ---------- ---------- <br />
<br />
Kochhar 17000 AD_VP <br />
<br />
De Haan 17000 AD_VP <br />
<br />
<br />
<br />
SQL> SELECT last_name, first_name, job_id, hire_date<br />
<br />
2 FROM employees<br />
<br />
3 WHERE hire_date ><br />
<br />
4 (SELECT MAX(hire_date)<br />
<br />
5 FROM employees<br />
<br />
6 WHERE department_id =<br />
<br />
7 (SELECT department_id<br />
<br />
8 FROM departments<br />
<br />
9 WHERE UPPER(department_name) = 'IT'))<br />
<br />
10 AND (department_id !=<br />
<br />
11 (SELECT department_id<br />
<br />
12 FROM departments<br />
<br />
13 WHERE UPPER(department_name) = 'EXECUTIVE')<br />
<br />
14 OR department_id IS NULL)<br />
<br />
15 ORDER BY 4 DESC;<br />
<br />
<br />
<br />
LAST_NAME FIRST_NAME JOB_ID HIRE_DATE <br />
<br />
------------------------- -------------------- ---------- --------- <br />
<br />
Zlotkey Eleni SA_MAN 29-JAN-00 <br />
<br />
Mourgos Kevin ST_MAN 16-NOV-99 <br />
<br />
Grant Kimberely SA_REP 24-MAY-99 <br />
<br />
<br />
<br />
SQL> SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay",<br />
<br />
2 MIN(salary) "Lowest Dept/Job Pay"<br />
<br />
3 FROM employees<br />
<br />
4 WHERE UPPER(job_id) NOT LIKE '%VP'<br />
<br />
5 AND department_id NOT IN<br />
<br />
6 (SELECT department_id<br />
<br />
7 FROM departments<br />
<br />
8 WHERE UPPER(department_name) IN ('IT','SALES'))<br />
<br />
9 GROUP BY department_id, job_id<br />
<br />
10 HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
<br />
11 ORDER BY 1, 2;<br />
<br />
<br />
<br />
DEPARTMENT_ID JOB_ID Average Dept/Job Pay Lowest Dept/Job Pay <br />
<br />
------------- ---------- -------------------- ------------------- <br />
<br />
20 MK_MAN 13000 13000 <br />
<br />
20 MK_REP 6000 6000 <br />
<br />
50 ST_MAN 5800 5800 <br />
<br />
110 AC_ACCOUNT 8300 8300 <br />
<br />
110 AC_MGR 12000 12000 <br />
<br />
<br />
<br />
SQL> SELECT department_id, department_name,<br />
<br />
2 RPAD(TRIM(NVL(city, 'Not Assinged Yet')), 25, ' ') "City",<br />
<br />
3 COUNT(DISTINCT job_id) "# of Jobs"<br />
<br />
4 FROM employees<br />
<br />
5 RIGHT OUTER JOIN departments USING (department_id)<br />
<br />
6 LEFT OUTER JOIN locations USING (location_id)<br />
<br />
7 GROUP BY department_id, department_name, city;<br />
<br />
<br />
<br />
DEPARTMENT_ID DEPARTMENT_NAME City # of Jobs <br />
<br />
------------- ------------------------------ ------------------------- ---------- <br />
<br />
110 Accounting Seattle 2 <br />
<br />
50 Shipping South San Francisco 2 <br />
<br />
80 Sales Oxford 2 <br />
<br />
10 Administration Seattle 1 <br />
<br />
190 Contracting Seattle 0 <br />
<br />
90 Executive Seattle 2 <br />
<br />
20 Marketing Toronto 2 <br />
<br />
60 IT Southlake 1 <br />
<br />
<br />
<br />
8 rows selected.<br />
<br />
<br />
<br />
SQL> spool off<br />
</pre><br />
==SQL Statements==<br />
===1.===<br />
''YuJin''<br />
<pre><br />
SELECT employee_id, RPAD(CONCAT(CONCAT(last_name, ', '),first_name), 25) "Full Name",<br />
job_id,<br />
TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
"Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
ORDER BY 4 DESC;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT employee_id,<br />
SUBSTR(last_name ||' '|| first_name, 1, 25) "Full Name",<br />
job_id,<br />
TO_CHAR(hire_date,'fmMonth "First in the year" YYYY') "Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date,'fmMON') IN ('MAY','NOV')<br />
ORDER BY hire_date DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select employee_id "Emp#",<br />
(last_name ||', '|| first_name) "Full Name",<br />
job_id "Job",<br />
to_char(trunc(hire_date, 'MONTH'), 'FMMonth Ddspth "in the year"<br />
YYYY') "Start Date"<br />
from employees<br />
where to_char(hire_date, 'fmMonth') in ('May', 'November')<br />
order by hire_date desc;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT employee_id, SUBSTR(last_name ||' '|| first_name, 1, 25) "Full Name",<br />
job_id,<br />
TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
"Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
ORDER BY hire_date DESC;<br />
</pre><br />
<br />
===2.===<br />
''YuJin''<br />
<pre><br />
SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
|| job_id || ' will have a new salary of $' || salary * 1.15 "Happy Employees"<br />
FROM employees<br />
WHERE salary BETWEEN 5000 AND 12000<br />
AND job_id IN ('IT_PROG', 'ST_CLERK')<br />
ORDER BY employee_id;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT 'Employee named '||first_name||' '||last_name||' who is '||job_id||' will have a new salary of $'|| salary *1.15 "Happy Employees"<br />
FROM employees<br />
WHERE job_id IN ('IT_PROG','ST CLERK')<br />
AND (salary BETWEEN 5000 AND 12000)<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
Select ('Employee named ' || first_name ||' '|| last_name || ' who is ' || job_id || ' will have a new salary of ' || (salary*1.15)) "Happy Employees"<br />
From employees<br />
Where salary between 5000 and 12000<br />
And upper(job_id) in ('IT_PROG', 'ST_CLERK')<br />
order by employee_id;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
|| job_id || ' will have a new salary of ' || TO_CHAR(salary * 1.15, 'fm$999999') "Happy Employees"<br />
FROM employees<br />
WHERE salary BETWEEN 5000 AND 12000<br />
AND UPPER(job_id) IN ('IT_PROG', 'ST_CLERK')<br />
ORDER BY employee_id;<br />
</pre><br />
<br />
===3.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, salary, job_id,<br />
RPAD(NVL(TO_CHAR(manager_id), 'No Manager'), 10) "Manager #",<br />
LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
FROM employees<br />
WHERE (job_id LIKE 'MK%' OR manager_id IS NULL)<br />
AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
ORDER BY 2 DESC;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, salary, job_id, NVL(TO_CHAR(manager_id),'No Manager') Manager#,<br />
TO_CHAR(salary*12,'$999,999') "Total Income"<br />
FROM employees<br />
WHERE (manager_id IS NULL<br />
OR job_id LIKE 'MK%')<br />
AND ( salary* (NVL(commission_pct,0) + 1) + 1000 ) > 10000<br />
ORDER BY salary DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, salary, job_id, nvl(to_char(manager_id),'No Manager') Manager#,<br />
to_char(salary*12,'$999,999') "Total Income"<br />
from employees<br />
where (upper(job_id) like 'MK%' or manager_id IS NULL)<br />
and salary * (1 + nvl(commission_pct, 0)) + 1000 > 10000<br />
order by 2 desc;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT last_name, salary, job_id,<br />
SUBSTR(NVL(TO_CHAR(manager_id), 'No Manager'), 1, 10) "Manager #",<br />
LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
FROM employees<br />
WHERE (UPPER(job_id) LIKE 'MK%' OR manager_id IS NULL)<br />
AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
ORDER BY salary DESC;<br />
<br />
</pre><br />
<br />
===4.===<br />
''YuJin''<br />
<pre><br />
SELECT RPAD(CONCAT(CONCAT(first_name,' '),last_name), 25) "Employee", job_id,<br />
LPAD(TRIM(TO_CHAR(salary, '$999,999')), 12, '=') "Salary", department_name<br />
FROM employees e JOIN departments d<br />
ON (e.department_id = d.department_id)<br />
WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
AND salary <<br />
(SELECT MAX(salary)<br />
FROM employees<br />
WHERE SUBSTR(job_id, 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
ORDER BY 1;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT SUBSTR(first_name||' '||last_name, 25) Employee, job_id,<br />
LPAD(TO_CHAR(salary,'$99,999'), 12, '=') Salary, department_name<br />
FROM employees e JOIN departments d<br />
ON (d.department_id=e.department_id)<br />
WHERE salary < (SELECT MAX(salary)<br />
FROM employees<br />
WHERE UPPER(SUBSTR(job_id,4)) NOT IN ('VP', 'PRES', 'MAN', 'MGR')<br />
)<br />
AND UPPER(department_name) IN ('MARKETING','SALES')<br />
ORDER BY first_name, last_name<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select substr(first_name ||' '|| last_name) "Employee", job_id, to_char(salary, '$999,999', 12, '=') Salary, department_name<br />
from employees e join departments d<br />
on (e.department_id = d.department_id)<br />
where upper(department_name) in ('MARKETING', 'SALES')<br />
and salary < (select max(salary)<br />
from employees<br />
where substr(job_id,4) not in ('PRES','VP','MAN','MGR'))<br />
order by "Employee";<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT SUBSTR(first_name ||' '|| last_name, 1, 25) "Employee", job_id,<br />
LPAD(TO_CHAR(salary, 'fm$999,999'), 12, '=') "Salary", department_name<br />
FROM employees e JOIN departments d<br />
ON (e.department_id = d.department_id)<br />
WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
AND salary <<br />
(SELECT MAX(salary)<br />
FROM employees<br />
WHERE SUBSTR(UPPER(job_id), 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
ORDER BY 1;<br />
</pre><br />
<br />
===5.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
AND salary ><br />
(SELECT MAX(salary)<br />
FROM employees<br />
JOIN departments USING (department_id)<br />
JOIN locations USING (location_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE salary > (SELECT MAX(salary)<br />
FROM locations JOIN departments<br />
USING (location_id)<br />
JOIN employees<br />
USING (department_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD')<br />
)<br />
AND UPPER(job_id) NOT LIKE '%PRES'<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, salary, job_id<br />
from employees<br />
where salary > (select max(salary)<br />
from employees join departments<br />
using (department_id)<br />
join locations<br />
using (location_id)<br />
where upper(city) in ('TORONTO','OXFORD'))<br />
and upper(job_id) not like '%PRES'<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
AND salary ><br />
(SELECT MAX(salary)<br />
FROM employees<br />
JOIN departments USING (department_id)<br />
JOIN locations USING (location_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
</pre><br />
<br />
===6.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, first_name, job_id, hire_date<br />
FROM employees<br />
WHERE hire_date ><br />
(SELECT MAX(hire_date)<br />
FROM employees<br />
WHERE department_id =<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'IT'))<br />
AND (department_id !=<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'EXECUTIVE')<br />
OR department_id IS NULL)<br />
ORDER BY 4 DESC;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, first_name, job_id, hire_date<br />
FROM employees e<br />
WHERE hire_date > (SELECT MAX(hire_date)<br />
FROM employees<br />
WHERE department_id = (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'IT'<br />
)<br />
)<br />
AND (department_id <> (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) ='EXECUTIVE')<br />
OR department_id IS NULL)<br />
ORDER BY hire_date DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, first_name, job_id, hire_date<br />
from employees<br />
where hire_date > (select max(hire_date)<br />
from employees<br />
where department_id = (select department_id<br />
from departments<br />
where upper(department_name) = 'IT'))<br />
and (department_id != (select department_id<br />
from departments<br />
where upper(department_name) = 'EXECUTIVE')<br />
or department_id IS NULL)<br />
order by hire_date desc;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT last_name, first_name, job_id, hire_date<br />
FROM employees<br />
WHERE hire_date ><br />
(SELECT MAX(hire_date)<br />
FROM employees<br />
WHERE department_id =<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'IT'))<br />
AND (department_id !=<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'EXECUTIVE')<br />
OR department_id IS NULL)<br />
ORDER BY hire_date DESC;<br />
</pre><br />
<br />
===7.===<br />
''YuJin''<br />
<pre><br />
SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay",<br />
MIN(salary) "Lowest Dept/Job Pay"<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%VP'<br />
AND department_id NOT IN<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) IN ('IT','SALES'))<br />
GROUP BY department_id, job_id<br />
HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
ORDER BY 1, 2;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay", MIN(salary) "Lowest Dept/Job Pay"<br />
FROM employees<br />
WHERE department_id <> ALL (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) IN ('IT','SALES')<br />
)<br />
AND job_id NOT LIKE '%VP'<br />
GROUP BY department_id, job_id<br />
HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
ORDER BY department_id, job_id<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select department_id, job_id, avg(salary) "Average Dept/Job Pay", min(salary) "Lowest Dept/Job Pay"<br />
from employees<br />
where upper(job_id) not like '%VP'<br />
and department_id != all(select department_id<br />
from departments<br />
where upper(department_name) in ('IT','SALES'))<br />
group by department_id, job_id<br />
having min(salary) between 5000 and 15000<br />
order by department_id, job_id<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay",<br />
MIN(salary) "Lowest Dept/Job Pay"<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%VP'<br />
AND department_id != ALL<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) IN ('IT','SALES'))<br />
GROUP BY department_id, job_id<br />
HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
ORDER BY department_id, job_id;<br />
</pre><br />
<br />
===8.===<br />
''YuJin''<br />
<pre><br />
SELECT department_id, department_name,<br />
RPAD(TRIM(NVL(city, 'Not Assinged Yet')), 25, ' ') "City",<br />
COUNT(DISTINCT job_id) "# of Jobs"<br />
FROM employees<br />
RIGHT OUTER JOIN departments USING (department_id)<br />
LEFT OUTER JOIN locations USING (location_id)<br />
GROUP BY department_id, department_name, city;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT department_id, department_name, SUBSTR(NVL(city,'Not Assigned Yet'),1,25) City,<br />
COUNT(DISTINCT job_id) "# of Jobs"<br />
FROM locations l RIGHT OUTER JOIN departments d<br />
USING (location_id)<br />
LEFT OUTER JOIN employees e<br />
USING (department_id)<br />
GROUP BY department_id, department_name, city<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select department_id, department_name, substr(nvl(city,'Not Assigned Yet'),1,25) City,<br />
count(distinct job_id) "# of Jobs"<br />
from employees right outer join departments<br />
using (department_id)<br />
left outer join locations<br />
using (location_id)<br />
group by department_id, department_name, city<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT department_id, department_name,<br />
SUBSTR(NVL(city, 'Not Assinged Yet'),1, 25) "City",<br />
COUNT(DISTINCT job_id) "# of Jobs"<br />
FROM employees<br />
RIGHT OUTER JOIN departments USING (department_id)<br />
LEFT OUTER JOIN locations USING (location_id)<br />
GROUP BY department_id, department_name, city;<br />
<br />
</pre></div>
Yujin.jeong
https://wiki.cdot.senecacollege.ca/w/index.php?title=J.Y.S&diff=50974
J.Y.S
2010-11-30T20:42:29Z
<p>Yujin.jeong: /* DDL Statements (CREATE TABLE) */</p>
<hr />
<div>This page is to efficiently manage our group assignments!<br />
== Member List == <br />
*[mailto:,,yjeong@learn.senecac.on.ca,?subject=dbs301 Email All]<br />
<br />
{| class="wikitable sortable" border="1" cellpadding="5"<br />
! First Name !! Last Name !! wiki id !! Learn e-mail !! Phone<br />
|-<br />
|[[User:Yujin.jeong | YuJin]]||Jeong||[[Special:Contributions/yujin.jeong | yujin.jeong]]||[mailto:yjeong@learn.senecac.on.ca?sujbect=dbs301 yjeong]|| 647 - 832 - 6771<br />
|-<br />
<br />
|-<br />
|Saad|| || || ||<br />
|-<br />
<br />
|-<br />
|James|| || || ||<br />
|-<br />
|}<br />
<br />
=Assignment 3 (worth 9%)=<br />
==Due Date==<br />
Thursday, December 2nd, 3:00pm<br />
Printout of all TIC charts and DDL / DML statements<br />
<br />
==Solution==<br />
==== DDL Statements (CREATE TABLE) ====<br />
1. AREA<br />
<pre><br />
CREATE TABLE AREA<br />
(<br />
AreaID NUMBER(4) CONSTRAINT area_areaid_pk PRIMARY KEY,<br />
AreaName VARCHAR2(15) NOT NULL CONSTRAINT area_areaname_uk UNIQUE,<br />
ElmSchool VARCHAR2(40),<br />
MidSchool VARCHAR2(40),<br />
HighSchool VARCHAR2(40),<br />
Comments VARCHAR2(100)<br />
);<br />
</pre><br />
2. AGENCY<br />
<pre><br />
CREATE TABLE AGENCY<br />
(<br />
AgencyID NUMBER(4) CONSTRAINT agency_agencyid_pk PRIMARY KEY,<br />
AgencyName VARCHAR2(30) NOT NULL CONSTRAINT agency_agencyname_uk UNIQUE,<br />
AgencyPhone VARCHAR2(15) NOT NULL CONSTRAINT agency_agencyphone_uk UNIQUE<br />
);<br />
</pre><br />
3. PROPERTY<br />
<pre><br />
CREATE TABLE PROPERTY<br />
(<br />
PropertyID NUMBER(6),<br />
Street VARCHAR2(40) NOT NULL,<br />
City VARCHAR2(15) NOT NULL,<br />
Province CHAR(2) NOT NULL,<br />
PostalCode CHAR(6) NOT NULL,<br />
Bedrooms NUMBER(1) NOT NULL,<br />
Bathrooms NUMBER(1) NOT NULL,<br />
ListingPrice NUMBER(7) NOT NULL,<br />
AreaID NUMBER(4) NOT NULL,<br />
CONSTRAINT property_propertyid_pk PRIMARY KEY(PropertyID),<br />
CONSTRAINT property_bedrooms_ck CHECK(Bedrooms BETWEEN 1 AND 9),<br />
CONSTRAINT property_bathrooms_ck CHECK(Bathrooms BETWEEN 1 AND 9),<br />
CONSTRAINT property_listingprice_ck CHECK(ListingPrice BETWEEN 1 AND 4999999),<br />
CONSTRAINT property_areaid_fk FOREIGN KEY(AreaID) REFERENCES AREA(AreaID)<br />
);<br />
</pre><br />
4. SINGLE<br />
<pre><br />
CREATE TABLE SINGLE<br />
(<br />
PropertyID NUMBER(6), <br />
LotSize NUMBER(8,2) NOT NULL,<br />
CONSTRAINT single_propertyID_pk PRIMARY KEY(PropertyID), <br />
CONSTRAINT single_propertyID_fk FOREIGN KEY(PropertyID) REFERENCES PROPERTY(PropertyID),<br />
CONSTRAINT single_lotsize_ck CHECK(LotSize > 0)<br />
);<br />
<br />
</pre><br />
5. CONDO<br />
<pre><br />
CREATE TABLE CONDO<br />
(<br />
PropertyID NUMBER(6),<br />
Fee NUMBER(8,2) NOT NULL, <br />
CONSTRAINT condo_propertyID_pk PRIMARY KEY(PropertyID),<br />
CONSTRAINT condo_propertyID_fk FOREIGN KEY(PropertyID) REFERENCES PROPERTY(PropertyID),<br />
CONSTRAINT condo_fee_ck CHECK(Fee > 0)<br />
);<br />
<br />
</pre><br />
6. OUTLET<br />
<pre><br />
CREATE TABLE OUTLET<br />
(<br />
OutletID NUMBER(4), <br />
OutletName VARCHAR2(40) NOT NULL,<br />
OutletPhone VARCHAR2(15) NOT NULL,<br />
OutletType CHAR(1) NOT NULL,<br />
CONSTRAINT outlet_outletid_pk PRIMARY KEY(OutletID),<br />
CONSTRAINT outlet_outlettype_ck CHECK(OutletType IN('N','M','W','F')),<br />
CONSTRAINT outlet_outletname_type_uk UNIQUE(OutletName, OutletType)<br />
);<br />
<br />
</pre><br />
7. ADVERTISEMENT<br />
<pre><br />
CREATE TABLE ADVERTISEMENT<br />
(<br />
PropertyID NUMBER(6),<br />
OutletID NUMBER(4),<br />
AdvDate DATE,<br />
AdvCost NUMBER(6) NOT NULL,<br />
CONSTRAINT ad_adid_pk PRIMARY KEY(PropertyID, OutletID),<br />
CONSTRAINT ad_propertyid_fk FOREIGN KEY(PropertyID) REFERENCES PROPERTY(PropertyID),<br />
CONSTRAINT ad_outletid_fk FOREIGN KEY(OutletID) REFERENCES OUTLET(OutletID),<br />
CONSTRAINT ad_advcost_ck CHECK(AdvCost > 0)<br />
);<br />
</pre><br />
8. CLIENT<br />
<pre><br />
CREATE TABLE CLIENT<br />
(<br />
ClientID NUMBER(6),<br />
Fname VARCHAR2(30) NOT NULL,<br />
Lname VARCHAR2(30) NOT NULL,<br />
Phone VARCHAR2(15) NOT NULL,<br />
Email VARCHAR2(40),<br />
RefID NUMBER(6),<br />
CONSTRAINT client_clientid_pk PRIMARY KEY(ClientID),<br />
CONSTRAINT client_phone_uk UNIQUE(Phone),<br />
CONSTRAINT client_email_uk UNIQUE(Email),<br />
CONSTRAINT client_refid_fk FOREIGN KEY(RefID) REFERENCES CLIENT(ClientID)<br />
);<br />
</pre><br />
9. DEED<br />
<pre><br />
CREATE TABLE DEED<br />
(<br />
PropertyID NUMBER(6),<br />
SellerID NUMBER(6),<br />
OwnPct NUMBER(5,2) NOT NULL,<br />
BuyerID NUMBER(6),<br />
BuyPrice NUMBER(7),<br />
CONSTRAINT deed_deedid_pk PRIMARY KEY(PropertyID, SellerID),<br />
CONSTRAINT deed_propertyid_fk FOREIGN KEY(PropertyID) REFERENCES PROPERTY(PropertyID),<br />
CONSTRAINT deed_sellerid_fk FOREIGN KEY(SellerID) REFERENCES CLIENT(ClientID),<br />
CONSTRAINT deed_buyerid_fk FOREIGN KEY(BuyerID) REFERENCES CLIENT(ClientID),<br />
CONSTRAINT deed_ownpct_ck CHECK(OwnPct > 0 AND OwnPct <= 100),<br />
CONSTRAINT deed_buyprice_ck CHECK(BuyPrice BETWEEN 1 AND 4999999)<br />
);<br />
<br />
</pre><br />
<br />
==== DML Statements (INSERT INTO) ====<br />
<br />
1. AREA<BR><br />
<pre><br />
INSERT ALL<br />
INTO AREA VALUES(1001, 'Bayview Village', 'Adrienne Clarkson Public School', 'Amesbury Middle School', 'Bayview Secondary School', 'Upper middle class to upper class neighborhood in Toronto.')<br />
INTO AREA VALUES(3001,'Laurelwood', 'Elizabeth Ziegler Primary School','Waterloo Middle School','Saint David Catholic Secondary School','Close to University of Waterloo and many popular amenities.')<br />
INTO AREA VALUES(4001,'Silver Heights','Alison Park Primary School','Eastwood Middle School','King Edward Secondary School',null)<br />
INTO AREA VALUES(5001,'Kitsilano','Henry Hudson Elementary School','St George School','Kitsilano Secondary School','Very well-off area.')<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
<br />
2. AGENCY<BR><br />
<pre><br />
INSERT ALL<br />
INTO VALUES(1055,'Sutton Group Regal Realty','416.875.9873')<br />
INTO VALUES(3079,'MacDonald Realty','604.986.0231')<br />
INTO VALUES(7024,'Royal LePage Groupe Newton','514.234.9283')<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
<br />
3. PROPERTY<BR><br />
<pre><br />
INSERT ALL<br />
INTO VALUES(134982,'27 King's College Circle','Toronto','ON','M5S1A1',2,2,380000,1001,1055)<br />
INTO VALUES(149800','17 Pleasant View Dr.','Toronto','ON','M2J2H1',3,2,470000,1001)<br />
INTO VALUES(152932,'17 Barberry Pl. #1313','Toronto','ON','M8W7V4,1,1,259888,1001)<br />
INTO VALUES(495820,'776 Laurelwood Dr.','Waterloo','ON','H3A2T5',2,2,295000,3001,3079)<br />
INTO VALUES(500211,'409 Kelso Cr.','Cambridge','ON','H3Y7S3',3,2,485000,4001)<br />
INTO VALUES(139204,'3043 Crown St.','Vancouver','BC','U3J3M6',5,3,1398000,5001,7024)<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
4. SINGLE<BR><br />
<pre><br />
INSERT ALL<br />
INTO VALUES(134982,3716)<br />
INTO VALUES(149800,1005)<br />
INTO VALUES(139204,5400)<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
5. CONDO<BR><br />
<pre><br />
INSERT ALL<br />
INTO VALUES(152932,250)<br />
INTO VALUES(495820,320)<br />
INTO VALUES(500211,550)<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
6. OUTLET<BR><br />
<pre><br />
INSERT ALL<br />
INTO VALUES(1000,'Toronto Star','416.923.1782','N')<br />
INTO VALUES(2001,'Waterloo Living','519.098.9283','M')<br />
INTO VALUES(8001,'Canadian Life','416.982.0192','W')<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
7. ADVERTISEMENT<BR><br />
<pre><br />
INSERT ALL<br />
INTO VALUES(134982,1000,'25-NOV-10',350)<br />
INTO VALUES(149800,1000,'27-NOV-10',250)<br />
INTO VALUES(495820,2001,'27-NOV-10',300)<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
8. CLIENT<BR><br />
<pre><br />
INSERT ALL<br />
INTO VALUES(1010,'Andrew','Lee','647.978.0192','andrew11@hotmail.com')<br />
INTO VALUES(1011,'Daniel','Smith','416.895.9762','dsmith@gmail.com',5010)<br />
INTO VALUES(1012,'Olivia','Wilson','647.915.2738','oliviaorange@gmail.com')<br />
INTO VALUES(1013,'Jayden','Martin','519.225.1928','jmartin@rogers.com')<br />
INTO VALUES(1014,'Maria','Brown','416.182.0021','maria.brown@hotmail.com')<br />
INTO VALUES(2010,'Ethan','Roy','226.289.0394','ethanrockstar@bell.com')<br />
INTO VALUES(2011,'Sophia','Tremblay','647.297.2918','stremblay@gmail.com',5010)<br />
INTO VALUES(3010,'Ryan,Wilson','604.837.1029','wilsonryan@gmail.com')<br />
INTO VALUES(3012,'Luis','Jones','416.832.6771','luis7787@rogers.com')<br />
INTO VALUES(5010,'Mary','Anderson','647.234.5690','andersonpink@gmail.com')<br />
INTO VALUES(7010,'James','White','647.298.9182','james.white@bell.com',1010)<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
9. DEED<BR><br />
<pre><br />
INSERT ALL<br />
INTO VALUES(149800,1010,75,5010,352300)<br />
INTO VALUES(139204,1012,100,3010,1394000)<br />
INTO VALUES(134982,2011,50,1014,200000)<br />
SELECT * FROM DUAL;<br />
</pre><br />
<br />
==== CREATE VIEW ====<br />
<pre><br />
CREATE VIEW PropAreaLocSeller_VU AS<br />
SELECT (a.AreaName || ', ' || p.City || ', ' || p.Street || ', ' || p.PostalCode) "Property Location",<br />
TO_CHAR(p.ListingPrice,'$9,999,999'), sgl.LotSize || ' sqft' LotSize, s.Lname || ', ' || s.Fname, s.phone, d.OwnPct, NVL(ag.AgencyName, 'No Agency')<br />
FROM Property p<br />
JOIN Single sgl ON (p.PropertyID = sgl.PropertyID)<br />
JOIN Area ar ON (p.AreaID = a.AreaID)<br />
JOIN Agency ag ON (p.AgencyID = ag.AgencyID)<br />
JOIN Deed d ON (p.PropertyID = d.PropertyID)<br />
JOIN Client s ON (d.SellerID = s.ClientID)<br />
</pre><br />
<br />
Not Too sure if this will work out<br />
<br />
=Assignment 1=<br />
==Due Date==<br />
Thursday, October 21st, 4:00pm<br />
Printout submission only( SELECT Statements + ALL outputs)<br />
==Description==<br />
[https://cs.senecac.on.ca/~nconkic/assign1.doc Assignment1]<br />
==Solution==<br />
<pre><br />
SQL> SELECT employee_id, RPAD(CONCAT(CONCAT(last_name, ', '),first_name), 25) "Full Name",<br />
<br />
2 job_id,<br />
<br />
3 TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
<br />
4 "Start Date"<br />
<br />
5 FROM employees<br />
<br />
6 WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
<br />
7 ORDER BY 4 DESC;<br />
<br />
<br />
<br />
EMPLOYEE_ID Full Name JOB_ID Start Date <br />
<br />
----------- ------------------------- ---------- ----------------------------------------- <br />
<br />
124 Mourgos, Kevin ST_MAN November First in the year 1999 <br />
<br />
178 Grant, Kimberely SA_REP May First in the year 1999 <br />
<br />
174 Abel, Ellen SA_REP May First in the year 1996 <br />
<br />
104 Ernst, Bruce IT_PROG May First in the year 1991 <br />
<br />
<br />
<br />
SQL> SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
<br />
2 || job_id || ' will have a new salary of $' || salary * 1.15 "Happy Employees"<br />
<br />
3 FROM employees<br />
<br />
4 WHERE salary BETWEEN 5000 AND 12000<br />
<br />
5 AND job_id IN ('IT_PROG', 'ST_CLERK')<br />
<br />
6 ORDER BY employee_id;<br />
<br />
<br />
<br />
Happy Employees <br />
<br />
----------------------------------------------------------------------------------------------------<br />
<br />
Employee named Alexander Hunold who is IT_PROG will have a new salary of $10350 <br />
<br />
Employee named Bruce Ernst who is IT_PROG will have a new salary of $6900 <br />
<br />
<br />
<br />
SQL> SELECT last_name, salary, job_id,<br />
<br />
2 RPAD(NVL(TO_CHAR(manager_id), 'No Manager'), 10) "Manager #",<br />
<br />
3 LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
<br />
4 FROM employees<br />
<br />
5 WHERE (job_id LIKE 'MK%' OR manager_id IS NULL)<br />
<br />
6 AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
<br />
7 ORDER BY 2 DESC;<br />
<br />
<br />
<br />
LAST_NAME SALARY JOB_ID Manager # Total Income <br />
<br />
------------------------- ---------- ---------- ---------- ------------ <br />
<br />
King 24000 AD_PRES No Manager $288,000 <br />
<br />
Hartstein 13000 MK_MAN 100 $156,000 <br />
<br />
<br />
<br />
SQL> SELECT RPAD(CONCAT(CONCAT(first_name,' '),last_name), 25) "Employee", job_id,<br />
<br />
2 LPAD(TRIM(TO_CHAR(salary, '$999,999')), 12, '=') "Salary", department_name<br />
<br />
3 FROM employees e JOIN departments d<br />
<br />
4 ON (e.department_id = d.department_id)<br />
<br />
5 WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
<br />
6 AND salary <<br />
<br />
7 (SELECT MAX(salary)<br />
<br />
8 FROM employees<br />
<br />
9 WHERE SUBSTR(job_id, 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
<br />
10 ORDER BY 1;<br />
<br />
<br />
<br />
Employee JOB_ID Salary DEPARTMENT_NAME <br />
<br />
------------------------- ---------- ------------ ------------------------------ <br />
<br />
Eleni Zlotkey SA_MAN =====$10,500 Sales <br />
<br />
Jonathon Taylor SA_REP ======$8,600 Sales <br />
<br />
Pat Fay MK_REP ======$6,000 Marketing <br />
<br />
<br />
<br />
SQL><br />
<br />
SQL> SELECT last_name, salary, job_id<br />
<br />
2 FROM employees<br />
<br />
3 WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
<br />
4 AND salary ><br />
<br />
5 (SELECT MAX(salary)<br />
<br />
6 FROM employees<br />
<br />
7 JOIN departments USING (department_id)<br />
<br />
8 JOIN locations USING (location_id)<br />
<br />
9 WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
<br />
<br />
LAST_NAME SALARY JOB_ID <br />
<br />
------------------------- ---------- ---------- <br />
<br />
Kochhar 17000 AD_VP <br />
<br />
De Haan 17000 AD_VP <br />
<br />
<br />
<br />
SQL> SELECT last_name, first_name, job_id, hire_date<br />
<br />
2 FROM employees<br />
<br />
3 WHERE hire_date ><br />
<br />
4 (SELECT MAX(hire_date)<br />
<br />
5 FROM employees<br />
<br />
6 WHERE department_id =<br />
<br />
7 (SELECT department_id<br />
<br />
8 FROM departments<br />
<br />
9 WHERE UPPER(department_name) = 'IT'))<br />
<br />
10 AND (department_id !=<br />
<br />
11 (SELECT department_id<br />
<br />
12 FROM departments<br />
<br />
13 WHERE UPPER(department_name) = 'EXECUTIVE')<br />
<br />
14 OR department_id IS NULL)<br />
<br />
15 ORDER BY 4 DESC;<br />
<br />
<br />
<br />
LAST_NAME FIRST_NAME JOB_ID HIRE_DATE <br />
<br />
------------------------- -------------------- ---------- --------- <br />
<br />
Zlotkey Eleni SA_MAN 29-JAN-00 <br />
<br />
Mourgos Kevin ST_MAN 16-NOV-99 <br />
<br />
Grant Kimberely SA_REP 24-MAY-99 <br />
<br />
<br />
<br />
SQL> SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay",<br />
<br />
2 MIN(salary) "Lowest Dept/Job Pay"<br />
<br />
3 FROM employees<br />
<br />
4 WHERE UPPER(job_id) NOT LIKE '%VP'<br />
<br />
5 AND department_id NOT IN<br />
<br />
6 (SELECT department_id<br />
<br />
7 FROM departments<br />
<br />
8 WHERE UPPER(department_name) IN ('IT','SALES'))<br />
<br />
9 GROUP BY department_id, job_id<br />
<br />
10 HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
<br />
11 ORDER BY 1, 2;<br />
<br />
<br />
<br />
DEPARTMENT_ID JOB_ID Average Dept/Job Pay Lowest Dept/Job Pay <br />
<br />
------------- ---------- -------------------- ------------------- <br />
<br />
20 MK_MAN 13000 13000 <br />
<br />
20 MK_REP 6000 6000 <br />
<br />
50 ST_MAN 5800 5800 <br />
<br />
110 AC_ACCOUNT 8300 8300 <br />
<br />
110 AC_MGR 12000 12000 <br />
<br />
<br />
<br />
SQL> SELECT department_id, department_name,<br />
<br />
2 RPAD(TRIM(NVL(city, 'Not Assinged Yet')), 25, ' ') "City",<br />
<br />
3 COUNT(DISTINCT job_id) "# of Jobs"<br />
<br />
4 FROM employees<br />
<br />
5 RIGHT OUTER JOIN departments USING (department_id)<br />
<br />
6 LEFT OUTER JOIN locations USING (location_id)<br />
<br />
7 GROUP BY department_id, department_name, city;<br />
<br />
<br />
<br />
DEPARTMENT_ID DEPARTMENT_NAME City # of Jobs <br />
<br />
------------- ------------------------------ ------------------------- ---------- <br />
<br />
110 Accounting Seattle 2 <br />
<br />
50 Shipping South San Francisco 2 <br />
<br />
80 Sales Oxford 2 <br />
<br />
10 Administration Seattle 1 <br />
<br />
190 Contracting Seattle 0 <br />
<br />
90 Executive Seattle 2 <br />
<br />
20 Marketing Toronto 2 <br />
<br />
60 IT Southlake 1 <br />
<br />
<br />
<br />
8 rows selected.<br />
<br />
<br />
<br />
SQL> spool off<br />
</pre><br />
==SQL Statements==<br />
===1.===<br />
''YuJin''<br />
<pre><br />
SELECT employee_id, RPAD(CONCAT(CONCAT(last_name, ', '),first_name), 25) "Full Name",<br />
job_id,<br />
TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
"Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
ORDER BY 4 DESC;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT employee_id,<br />
SUBSTR(last_name ||' '|| first_name, 1, 25) "Full Name",<br />
job_id,<br />
TO_CHAR(hire_date,'fmMonth "First in the year" YYYY') "Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date,'fmMON') IN ('MAY','NOV')<br />
ORDER BY hire_date DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select employee_id "Emp#",<br />
(last_name ||', '|| first_name) "Full Name",<br />
job_id "Job",<br />
to_char(trunc(hire_date, 'MONTH'), 'FMMonth Ddspth "in the year"<br />
YYYY') "Start Date"<br />
from employees<br />
where to_char(hire_date, 'fmMonth') in ('May', 'November')<br />
order by hire_date desc;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT employee_id, SUBSTR(last_name ||' '|| first_name, 1, 25) "Full Name",<br />
job_id,<br />
TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
"Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
ORDER BY hire_date DESC;<br />
</pre><br />
<br />
===2.===<br />
''YuJin''<br />
<pre><br />
SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
|| job_id || ' will have a new salary of $' || salary * 1.15 "Happy Employees"<br />
FROM employees<br />
WHERE salary BETWEEN 5000 AND 12000<br />
AND job_id IN ('IT_PROG', 'ST_CLERK')<br />
ORDER BY employee_id;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT 'Employee named '||first_name||' '||last_name||' who is '||job_id||' will have a new salary of $'|| salary *1.15 "Happy Employees"<br />
FROM employees<br />
WHERE job_id IN ('IT_PROG','ST CLERK')<br />
AND (salary BETWEEN 5000 AND 12000)<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
Select ('Employee named ' || first_name ||' '|| last_name || ' who is ' || job_id || ' will have a new salary of ' || (salary*1.15)) "Happy Employees"<br />
From employees<br />
Where salary between 5000 and 12000<br />
And upper(job_id) in ('IT_PROG', 'ST_CLERK')<br />
order by employee_id;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
|| job_id || ' will have a new salary of ' || TO_CHAR(salary * 1.15, 'fm$999999') "Happy Employees"<br />
FROM employees<br />
WHERE salary BETWEEN 5000 AND 12000<br />
AND UPPER(job_id) IN ('IT_PROG', 'ST_CLERK')<br />
ORDER BY employee_id;<br />
</pre><br />
<br />
===3.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, salary, job_id,<br />
RPAD(NVL(TO_CHAR(manager_id), 'No Manager'), 10) "Manager #",<br />
LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
FROM employees<br />
WHERE (job_id LIKE 'MK%' OR manager_id IS NULL)<br />
AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
ORDER BY 2 DESC;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, salary, job_id, NVL(TO_CHAR(manager_id),'No Manager') Manager#,<br />
TO_CHAR(salary*12,'$999,999') "Total Income"<br />
FROM employees<br />
WHERE (manager_id IS NULL<br />
OR job_id LIKE 'MK%')<br />
AND ( salary* (NVL(commission_pct,0) + 1) + 1000 ) > 10000<br />
ORDER BY salary DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, salary, job_id, nvl(to_char(manager_id),'No Manager') Manager#,<br />
to_char(salary*12,'$999,999') "Total Income"<br />
from employees<br />
where (upper(job_id) like 'MK%' or manager_id IS NULL)<br />
and salary * (1 + nvl(commission_pct, 0)) + 1000 > 10000<br />
order by 2 desc;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT last_name, salary, job_id,<br />
SUBSTR(NVL(TO_CHAR(manager_id), 'No Manager'), 1, 10) "Manager #",<br />
LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
FROM employees<br />
WHERE (UPPER(job_id) LIKE 'MK%' OR manager_id IS NULL)<br />
AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
ORDER BY salary DESC;<br />
<br />
</pre><br />
<br />
===4.===<br />
''YuJin''<br />
<pre><br />
SELECT RPAD(CONCAT(CONCAT(first_name,' '),last_name), 25) "Employee", job_id,<br />
LPAD(TRIM(TO_CHAR(salary, '$999,999')), 12, '=') "Salary", department_name<br />
FROM employees e JOIN departments d<br />
ON (e.department_id = d.department_id)<br />
WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
AND salary <<br />
(SELECT MAX(salary)<br />
FROM employees<br />
WHERE SUBSTR(job_id, 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
ORDER BY 1;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT SUBSTR(first_name||' '||last_name, 25) Employee, job_id,<br />
LPAD(TO_CHAR(salary,'$99,999'), 12, '=') Salary, department_name<br />
FROM employees e JOIN departments d<br />
ON (d.department_id=e.department_id)<br />
WHERE salary < (SELECT MAX(salary)<br />
FROM employees<br />
WHERE UPPER(SUBSTR(job_id,4)) NOT IN ('VP', 'PRES', 'MAN', 'MGR')<br />
)<br />
AND UPPER(department_name) IN ('MARKETING','SALES')<br />
ORDER BY first_name, last_name<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select substr(first_name ||' '|| last_name) "Employee", job_id, to_char(salary, '$999,999', 12, '=') Salary, department_name<br />
from employees e join departments d<br />
on (e.department_id = d.department_id)<br />
where upper(department_name) in ('MARKETING', 'SALES')<br />
and salary < (select max(salary)<br />
from employees<br />
where substr(job_id,4) not in ('PRES','VP','MAN','MGR'))<br />
order by "Employee";<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT SUBSTR(first_name ||' '|| last_name, 1, 25) "Employee", job_id,<br />
LPAD(TO_CHAR(salary, 'fm$999,999'), 12, '=') "Salary", department_name<br />
FROM employees e JOIN departments d<br />
ON (e.department_id = d.department_id)<br />
WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
AND salary <<br />
(SELECT MAX(salary)<br />
FROM employees<br />
WHERE SUBSTR(UPPER(job_id), 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
ORDER BY 1;<br />
</pre><br />
<br />
===5.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
AND salary ><br />
(SELECT MAX(salary)<br />
FROM employees<br />
JOIN departments USING (department_id)<br />
JOIN locations USING (location_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE salary > (SELECT MAX(salary)<br />
FROM locations JOIN departments<br />
USING (location_id)<br />
JOIN employees<br />
USING (department_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD')<br />
)<br />
AND UPPER(job_id) NOT LIKE '%PRES'<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, salary, job_id<br />
from employees<br />
where salary > (select max(salary)<br />
from employees join departments<br />
using (department_id)<br />
join locations<br />
using (location_id)<br />
where upper(city) in ('TORONTO','OXFORD'))<br />
and upper(job_id) not like '%PRES'<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
AND salary ><br />
(SELECT MAX(salary)<br />
FROM employees<br />
JOIN departments USING (department_id)<br />
JOIN locations USING (location_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
</pre><br />
<br />
===6.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, first_name, job_id, hire_date<br />
FROM employees<br />
WHERE hire_date ><br />
(SELECT MAX(hire_date)<br />
FROM employees<br />
WHERE department_id =<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'IT'))<br />
AND (department_id !=<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'EXECUTIVE')<br />
OR department_id IS NULL)<br />
ORDER BY 4 DESC;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, first_name, job_id, hire_date<br />
FROM employees e<br />
WHERE hire_date > (SELECT MAX(hire_date)<br />
FROM employees<br />
WHERE department_id = (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'IT'<br />
)<br />
)<br />
AND (department_id <> (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) ='EXECUTIVE')<br />
OR department_id IS NULL)<br />
ORDER BY hire_date DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, first_name, job_id, hire_date<br />
from employees<br />
where hire_date > (select max(hire_date)<br />
from employees<br />
where department_id = (select department_id<br />
from departments<br />
where upper(department_name) = 'IT'))<br />
and (department_id != (select department_id<br />
from departments<br />
where upper(department_name) = 'EXECUTIVE')<br />
or department_id IS NULL)<br />
order by hire_date desc;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT last_name, first_name, job_id, hire_date<br />
FROM employees<br />
WHERE hire_date ><br />
(SELECT MAX(hire_date)<br />
FROM employees<br />
WHERE department_id =<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'IT'))<br />
AND (department_id !=<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'EXECUTIVE')<br />
OR department_id IS NULL)<br />
ORDER BY hire_date DESC;<br />
</pre><br />
<br />
===7.===<br />
''YuJin''<br />
<pre><br />
SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay",<br />
MIN(salary) "Lowest Dept/Job Pay"<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%VP'<br />
AND department_id NOT IN<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) IN ('IT','SALES'))<br />
GROUP BY department_id, job_id<br />
HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
ORDER BY 1, 2;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay", MIN(salary) "Lowest Dept/Job Pay"<br />
FROM employees<br />
WHERE department_id <> ALL (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) IN ('IT','SALES')<br />
)<br />
AND job_id NOT LIKE '%VP'<br />
GROUP BY department_id, job_id<br />
HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
ORDER BY department_id, job_id<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select department_id, job_id, avg(salary) "Average Dept/Job Pay", min(salary) "Lowest Dept/Job Pay"<br />
from employees<br />
where upper(job_id) not like '%VP'<br />
and department_id != all(select department_id<br />
from departments<br />
where upper(department_name) in ('IT','SALES'))<br />
group by department_id, job_id<br />
having min(salary) between 5000 and 15000<br />
order by department_id, job_id<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay",<br />
MIN(salary) "Lowest Dept/Job Pay"<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%VP'<br />
AND department_id != ALL<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) IN ('IT','SALES'))<br />
GROUP BY department_id, job_id<br />
HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
ORDER BY department_id, job_id;<br />
</pre><br />
<br />
===8.===<br />
''YuJin''<br />
<pre><br />
SELECT department_id, department_name,<br />
RPAD(TRIM(NVL(city, 'Not Assinged Yet')), 25, ' ') "City",<br />
COUNT(DISTINCT job_id) "# of Jobs"<br />
FROM employees<br />
RIGHT OUTER JOIN departments USING (department_id)<br />
LEFT OUTER JOIN locations USING (location_id)<br />
GROUP BY department_id, department_name, city;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT department_id, department_name, SUBSTR(NVL(city,'Not Assigned Yet'),1,25) City,<br />
COUNT(DISTINCT job_id) "# of Jobs"<br />
FROM locations l RIGHT OUTER JOIN departments d<br />
USING (location_id)<br />
LEFT OUTER JOIN employees e<br />
USING (department_id)<br />
GROUP BY department_id, department_name, city<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select department_id, department_name, substr(nvl(city,'Not Assigned Yet'),1,25) City,<br />
count(distinct job_id) "# of Jobs"<br />
from employees right outer join departments<br />
using (department_id)<br />
left outer join locations<br />
using (location_id)<br />
group by department_id, department_name, city<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT department_id, department_name,<br />
SUBSTR(NVL(city, 'Not Assinged Yet'),1, 25) "City",<br />
COUNT(DISTINCT job_id) "# of Jobs"<br />
FROM employees<br />
RIGHT OUTER JOIN departments USING (department_id)<br />
LEFT OUTER JOIN locations USING (location_id)<br />
GROUP BY department_id, department_name, city;<br />
<br />
</pre></div>
Yujin.jeong
https://wiki.cdot.senecacollege.ca/w/index.php?title=J.Y.S&diff=50973
J.Y.S
2010-11-30T20:38:54Z
<p>Yujin.jeong: /* DDL Statements (CREATE TABLE) */</p>
<hr />
<div>This page is to efficiently manage our group assignments!<br />
== Member List == <br />
*[mailto:,,yjeong@learn.senecac.on.ca,?subject=dbs301 Email All]<br />
<br />
{| class="wikitable sortable" border="1" cellpadding="5"<br />
! First Name !! Last Name !! wiki id !! Learn e-mail !! Phone<br />
|-<br />
|[[User:Yujin.jeong | YuJin]]||Jeong||[[Special:Contributions/yujin.jeong | yujin.jeong]]||[mailto:yjeong@learn.senecac.on.ca?sujbect=dbs301 yjeong]|| 647 - 832 - 6771<br />
|-<br />
<br />
|-<br />
|Saad|| || || ||<br />
|-<br />
<br />
|-<br />
|James|| || || ||<br />
|-<br />
|}<br />
<br />
=Assignment 3 (worth 9%)=<br />
==Due Date==<br />
Thursday, December 2nd, 3:00pm<br />
Printout of all TIC charts and DDL / DML statements<br />
<br />
==Solution==<br />
==== DDL Statements (CREATE TABLE) ====<br />
1. AREA<br />
<pre><br />
CREATE TABLE AREA<br />
(<br />
AreaID NUMBER(4) CONSTRAINT area_areaid_pk PRIMARY KEY,<br />
AreaName VARCHAR2(15) NOT NULL CONSTRAINT area_areaname_uk UNIQUE,<br />
ElmSchool VARCHAR2(40),<br />
MidSchool VARCHAR2(40),<br />
HighSchool VARCHAR2(40),<br />
Comments VARCHAR2(100)<br />
);<br />
</pre><br />
2. AGENCY<br />
<pre><br />
CREATE TABLE AGENCY<br />
(<br />
AgencyID NUMBER(4) CONSTRAINT agency_agencyid_pk PRIMARY KEY,<br />
AgencyName VARCHAR2(30) NOT NULL CONSTRAINT agency_agencyname_uk UNIQUE,<br />
AgencyPhone VARCHAR2(15) NOT NULL CONSTRAINT agency_agencyphone_uk UNIQUE<br />
);<br />
</pre><br />
3. PROPERTY<br />
<pre><br />
CREATE TABLE PROPERTY<br />
(<br />
PropertyID NUMBER(6),<br />
Street VARCHAR2(40) NOT NULL,<br />
City VARCHAR2(15) NOT NULL,<br />
Province CHAR(2) NOT NULL,<br />
PostalCode CHAR(6) NOT NULL,<br />
Bedrooms NUMBER(1) NOT NULL,<br />
Bathrooms NUMBER(1) NOT NULL,<br />
ListingPrice NUMBER(6) NOT NULL,<br />
AreaID NUMBER(4) NOT NULL,<br />
CONSTRAINT property_propertyid_pk PRIMARY KEY(PropertyID),<br />
CONSTRAINT property_bedrooms_ck CHECK(Bedrooms BETWEEN 1 AND 9),<br />
CONSTRAINT property_bathrooms_ck CHECK(Bathrooms BETWEEN 1 AND 9),<br />
CONSTRAINT property_listingprice_ck CHECK(ListingPrice BETWEEN 1 AND 4999999),<br />
CONSTRAINT property_areaid_fk FOREIGN KEY(AreaID) REFERENCES AREA(AreaID)<br />
);<br />
</pre><br />
4. SINGLE<br />
<pre><br />
CREATE TABLE SINGLE<br />
(<br />
PropertyID NUMBER(6), <br />
LotSize NUMBER(8,2) NOT NULL,<br />
CONSTRAINT single_propertyID_pk PRIMARY KEY(PropertyID), <br />
CONSTRAINT single_propertyID_fk FOREIGN KEY(PropertyID) REFERENCES PROPERTY(PropertyID),<br />
CONSTRAINT single_lotsize_ck CHECK(LotSize > 0)<br />
);<br />
<br />
</pre><br />
5. CONDO<br />
<pre><br />
CREATE TABLE CONDO<br />
(<br />
PropertyID NUMBER(6),<br />
Fee NUMBER(8,2) NOT NULL, <br />
CONSTRAINT condo_propertyID_pk PRIMARY KEY(PropertyID),<br />
CONSTRAINT condo_propertyID_fk FOREIGN KEY(PropertyID) REFERENCES PROPERTY(PropertyID),<br />
CONSTRAINT condo_fee_ck CHECK(Fee > 0)<br />
);<br />
<br />
</pre><br />
6. OUTLET<br />
<pre><br />
CREATE TABLE OUTLET<br />
(<br />
OutletID NUMBER(4), <br />
OutletName VARCHAR2(40) NOT NULL,<br />
OutletPhone VARCHAR2(15) NOT NULL,<br />
OutletType CHAR(1) NOT NULL,<br />
CONSTRAINT outlet_outletid_pk PRIMARY KEY(OutletID),<br />
CONSTRAINT outlet_outlettype_ck CHECK(OutletType IN('N','M','W','F')),<br />
CONSTRAINT outlet_outletname_type_uk UNIQUE(OutletName, OutletType)<br />
);<br />
<br />
</pre><br />
7. ADVERTISEMENT<br />
<pre><br />
CREATE TABLE ADVERTISEMENT<br />
(<br />
PropertyID NUMBER(6),<br />
OutletID NUMBER(4),<br />
AdvDate DATE,<br />
AdvCost NUMBER(6) NOT NULL,<br />
CONSTRAINT ad_adid_pk PRIMARY KEY(PropertyID, OutletID),<br />
CONSTRAINT ad_propertyid_fk FOREIGN KEY(PropertyID) REFERENCES PROPERTY(PropertyID),<br />
CONSTRAINT ad_outletid_fk FOREIGN KEY(OutletID) REFERENCES OUTLET(OutletID),<br />
CONSTRAINT ad_advcost_ck CHECK(AdvCost > 0)<br />
);<br />
</pre><br />
8. CLIENT<br />
<pre><br />
CREATE TABLE CLIENT<br />
(<br />
ClientID NUMBER(6),<br />
Fname VARCHAR2(30) NOT NULL,<br />
Lname VARCHAR2(30) NOT NULL,<br />
Phone VARCHAR2(15) NOT NULL,<br />
Email VARCHAR2(40),<br />
RefID NUMBER(6),<br />
CONSTRAINT client_clientid_pk PRIMARY KEY(ClientID),<br />
CONSTRAINT client_phone_uk UNIQUE(Phone),<br />
CONSTRAINT client_email_uk UNIQUE(Email),<br />
CONSTRAINT client_refid_fk FOREIGN KEY(RefID) REFERENCES CLIENT(ClientID)<br />
);<br />
</pre><br />
9. DEED<br />
<pre><br />
CREATE TABLE DEED<br />
(<br />
PropertyID NUMBER(6),<br />
SellerID NUMBER(6),<br />
OwnPct NUMBER(5,2) NOT NULL,<br />
BuyerID NUMBER(6),<br />
BuyPrice NUMBER(7),<br />
CONSTRAINT deed_deedid_pk PRIMARY KEY(PropertyID, SellerID),<br />
CONSTRAINT deed_propertyid_fk FOREIGN KEY(PropertyID) REFERENCES PROPERTY(PropertyID),<br />
CONSTRAINT deed_sellerid_fk FOREIGN KEY(SellerID) REFERENCES CLIENT(ClientID),<br />
CONSTRAINT deed_buyerid_fk FOREIGN KEY(BuyerID) REFERENCES CLIENT(ClientID),<br />
CONSTRAINT deed_ownpct_ck CHECK(OwnPct > 0 AND OwnPct <= 100),<br />
CONSTRAINT deed_buyprice_ck CHECK(BuyPrice BETWEEN 1 AND 4999999)<br />
);<br />
<br />
</pre><br />
<br />
==== DML Statements (INSERT INTO) ====<br />
<br />
1. AREA<BR><br />
<pre><br />
INSERT ALL<br />
INTO AREA VALUES(1001, 'Bayview Village', 'Adrienne Clarkson Public School', 'Amesbury Middle School', 'Bayview Secondary School', 'Upper middle class to upper class neighborhood in Toronto.')<br />
INTO AREA VALUES(3001,'Laurelwood', 'Elizabeth Ziegler Primary School','Waterloo Middle School','Saint David Catholic Secondary School','Close to University of Waterloo and many popular amenities.')<br />
INTO AREA VALUES(4001,'Silver Heights','Alison Park Primary School','Eastwood Middle School','King Edward Secondary School',null)<br />
INTO AREA VALUES(5001,'Kitsilano','Henry Hudson Elementary School','St George School','Kitsilano Secondary School','Very well-off area.')<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
<br />
2. AGENCY<BR><br />
<pre><br />
INSERT ALL<br />
INTO VALUES(1055,'Sutton Group Regal Realty','416.875.9873')<br />
INTO VALUES(3079,'MacDonald Realty','604.986.0231')<br />
INTO VALUES(7024,'Royal LePage Groupe Newton','514.234.9283')<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
<br />
3. PROPERTY<BR><br />
<pre><br />
INSERT ALL<br />
INTO VALUES(134982,'27 King's College Circle','Toronto','ON','M5S1A1',2,2,380000,1001,1055)<br />
INTO VALUES(149800','17 Pleasant View Dr.','Toronto','ON','M2J2H1',3,2,470000,1001)<br />
INTO VALUES(152932,'17 Barberry Pl. #1313','Toronto','ON','M8W7V4,1,1,259888,1001)<br />
INTO VALUES(495820,'776 Laurelwood Dr.','Waterloo','ON','H3A2T5',2,2,295000,3001,3079)<br />
INTO VALUES(500211,'409 Kelso Cr.','Cambridge','ON','H3Y7S3',3,2,485000,4001)<br />
INTO VALUES(139204,'3043 Crown St.','Vancouver','BC','U3J3M6',5,3,1398000,5001,7024)<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
4. SINGLE<BR><br />
<pre><br />
INSERT ALL<br />
INTO VALUES(134982,3716)<br />
INTO VALUES(149800,1005)<br />
INTO VALUES(139204,5400)<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
5. CONDO<BR><br />
<pre><br />
INSERT ALL<br />
INTO VALUES(152932,250)<br />
INTO VALUES(495820,320)<br />
INTO VALUES(500211,550)<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
6. OUTLET<BR><br />
<pre><br />
INSERT ALL<br />
INTO VALUES(1000,'Toronto Star','416.923.1782','N')<br />
INTO VALUES(2001,'Waterloo Living','519.098.9283','M')<br />
INTO VALUES(8001,'Canadian Life','416.982.0192','W')<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
7. ADVERTISEMENT<BR><br />
<pre><br />
INSERT ALL<br />
INTO VALUES(134982,1000,'25-NOV-10',350)<br />
INTO VALUES(149800,1000,'27-NOV-10',250)<br />
INTO VALUES(495820,2001,'27-NOV-10',300)<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
8. CLIENT<BR><br />
<pre><br />
INSERT ALL<br />
INTO VALUES(1010,'Andrew','Lee','647.978.0192','andrew11@hotmail.com')<br />
INTO VALUES(1011,'Daniel','Smith','416.895.9762','dsmith@gmail.com',5010)<br />
INTO VALUES(1012,'Olivia','Wilson','647.915.2738','oliviaorange@gmail.com')<br />
INTO VALUES(1013,'Jayden','Martin','519.225.1928','jmartin@rogers.com')<br />
INTO VALUES(1014,'Maria','Brown','416.182.0021','maria.brown@hotmail.com')<br />
INTO VALUES(2010,'Ethan','Roy','226.289.0394','ethanrockstar@bell.com')<br />
INTO VALUES(2011,'Sophia','Tremblay','647.297.2918','stremblay@gmail.com',5010)<br />
INTO VALUES(3010,'Ryan,Wilson','604.837.1029','wilsonryan@gmail.com')<br />
INTO VALUES(3012,'Luis','Jones','416.832.6771','luis7787@rogers.com')<br />
INTO VALUES(5010,'Mary','Anderson','647.234.5690','andersonpink@gmail.com')<br />
INTO VALUES(7010,'James','White','647.298.9182','james.white@bell.com',1010)<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
9. DEED<BR><br />
<pre><br />
INSERT ALL<br />
INTO VALUES(149800,1010,75,5010,352300)<br />
INTO VALUES(139204,1012,100,3010,1394000)<br />
INTO VALUES(134982,2011,50,1014,200000)<br />
SELECT * FROM DUAL;<br />
</pre><br />
<br />
==== CREATE VIEW ====<br />
<pre><br />
CREATE VIEW PropAreaLocSeller_VU AS<br />
SELECT (a.AreaName || ', ' || p.City || ', ' || p.Street || ', ' || p.PostalCode) "Property Location",<br />
TO_CHAR(p.ListingPrice,'$9,999,999'), sgl.LotSize || ' sqft' LotSize, s.Lname || ', ' || s.Fname, s.phone, d.OwnPct, NVL(ag.AgencyName, 'No Agency')<br />
FROM Property p<br />
JOIN Single sgl ON (p.PropertyID = sgl.PropertyID)<br />
JOIN Area ar ON (p.AreaID = a.AreaID)<br />
JOIN Agency ag ON (p.AgencyID = ag.AgencyID)<br />
JOIN Deed d ON (p.PropertyID = d.PropertyID)<br />
JOIN Client s ON (d.SellerID = s.ClientID)<br />
</pre><br />
<br />
Not Too sure if this will work out<br />
<br />
=Assignment 1=<br />
==Due Date==<br />
Thursday, October 21st, 4:00pm<br />
Printout submission only( SELECT Statements + ALL outputs)<br />
==Description==<br />
[https://cs.senecac.on.ca/~nconkic/assign1.doc Assignment1]<br />
==Solution==<br />
<pre><br />
SQL> SELECT employee_id, RPAD(CONCAT(CONCAT(last_name, ', '),first_name), 25) "Full Name",<br />
<br />
2 job_id,<br />
<br />
3 TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
<br />
4 "Start Date"<br />
<br />
5 FROM employees<br />
<br />
6 WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
<br />
7 ORDER BY 4 DESC;<br />
<br />
<br />
<br />
EMPLOYEE_ID Full Name JOB_ID Start Date <br />
<br />
----------- ------------------------- ---------- ----------------------------------------- <br />
<br />
124 Mourgos, Kevin ST_MAN November First in the year 1999 <br />
<br />
178 Grant, Kimberely SA_REP May First in the year 1999 <br />
<br />
174 Abel, Ellen SA_REP May First in the year 1996 <br />
<br />
104 Ernst, Bruce IT_PROG May First in the year 1991 <br />
<br />
<br />
<br />
SQL> SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
<br />
2 || job_id || ' will have a new salary of $' || salary * 1.15 "Happy Employees"<br />
<br />
3 FROM employees<br />
<br />
4 WHERE salary BETWEEN 5000 AND 12000<br />
<br />
5 AND job_id IN ('IT_PROG', 'ST_CLERK')<br />
<br />
6 ORDER BY employee_id;<br />
<br />
<br />
<br />
Happy Employees <br />
<br />
----------------------------------------------------------------------------------------------------<br />
<br />
Employee named Alexander Hunold who is IT_PROG will have a new salary of $10350 <br />
<br />
Employee named Bruce Ernst who is IT_PROG will have a new salary of $6900 <br />
<br />
<br />
<br />
SQL> SELECT last_name, salary, job_id,<br />
<br />
2 RPAD(NVL(TO_CHAR(manager_id), 'No Manager'), 10) "Manager #",<br />
<br />
3 LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
<br />
4 FROM employees<br />
<br />
5 WHERE (job_id LIKE 'MK%' OR manager_id IS NULL)<br />
<br />
6 AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
<br />
7 ORDER BY 2 DESC;<br />
<br />
<br />
<br />
LAST_NAME SALARY JOB_ID Manager # Total Income <br />
<br />
------------------------- ---------- ---------- ---------- ------------ <br />
<br />
King 24000 AD_PRES No Manager $288,000 <br />
<br />
Hartstein 13000 MK_MAN 100 $156,000 <br />
<br />
<br />
<br />
SQL> SELECT RPAD(CONCAT(CONCAT(first_name,' '),last_name), 25) "Employee", job_id,<br />
<br />
2 LPAD(TRIM(TO_CHAR(salary, '$999,999')), 12, '=') "Salary", department_name<br />
<br />
3 FROM employees e JOIN departments d<br />
<br />
4 ON (e.department_id = d.department_id)<br />
<br />
5 WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
<br />
6 AND salary <<br />
<br />
7 (SELECT MAX(salary)<br />
<br />
8 FROM employees<br />
<br />
9 WHERE SUBSTR(job_id, 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
<br />
10 ORDER BY 1;<br />
<br />
<br />
<br />
Employee JOB_ID Salary DEPARTMENT_NAME <br />
<br />
------------------------- ---------- ------------ ------------------------------ <br />
<br />
Eleni Zlotkey SA_MAN =====$10,500 Sales <br />
<br />
Jonathon Taylor SA_REP ======$8,600 Sales <br />
<br />
Pat Fay MK_REP ======$6,000 Marketing <br />
<br />
<br />
<br />
SQL><br />
<br />
SQL> SELECT last_name, salary, job_id<br />
<br />
2 FROM employees<br />
<br />
3 WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
<br />
4 AND salary ><br />
<br />
5 (SELECT MAX(salary)<br />
<br />
6 FROM employees<br />
<br />
7 JOIN departments USING (department_id)<br />
<br />
8 JOIN locations USING (location_id)<br />
<br />
9 WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
<br />
<br />
LAST_NAME SALARY JOB_ID <br />
<br />
------------------------- ---------- ---------- <br />
<br />
Kochhar 17000 AD_VP <br />
<br />
De Haan 17000 AD_VP <br />
<br />
<br />
<br />
SQL> SELECT last_name, first_name, job_id, hire_date<br />
<br />
2 FROM employees<br />
<br />
3 WHERE hire_date ><br />
<br />
4 (SELECT MAX(hire_date)<br />
<br />
5 FROM employees<br />
<br />
6 WHERE department_id =<br />
<br />
7 (SELECT department_id<br />
<br />
8 FROM departments<br />
<br />
9 WHERE UPPER(department_name) = 'IT'))<br />
<br />
10 AND (department_id !=<br />
<br />
11 (SELECT department_id<br />
<br />
12 FROM departments<br />
<br />
13 WHERE UPPER(department_name) = 'EXECUTIVE')<br />
<br />
14 OR department_id IS NULL)<br />
<br />
15 ORDER BY 4 DESC;<br />
<br />
<br />
<br />
LAST_NAME FIRST_NAME JOB_ID HIRE_DATE <br />
<br />
------------------------- -------------------- ---------- --------- <br />
<br />
Zlotkey Eleni SA_MAN 29-JAN-00 <br />
<br />
Mourgos Kevin ST_MAN 16-NOV-99 <br />
<br />
Grant Kimberely SA_REP 24-MAY-99 <br />
<br />
<br />
<br />
SQL> SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay",<br />
<br />
2 MIN(salary) "Lowest Dept/Job Pay"<br />
<br />
3 FROM employees<br />
<br />
4 WHERE UPPER(job_id) NOT LIKE '%VP'<br />
<br />
5 AND department_id NOT IN<br />
<br />
6 (SELECT department_id<br />
<br />
7 FROM departments<br />
<br />
8 WHERE UPPER(department_name) IN ('IT','SALES'))<br />
<br />
9 GROUP BY department_id, job_id<br />
<br />
10 HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
<br />
11 ORDER BY 1, 2;<br />
<br />
<br />
<br />
DEPARTMENT_ID JOB_ID Average Dept/Job Pay Lowest Dept/Job Pay <br />
<br />
------------- ---------- -------------------- ------------------- <br />
<br />
20 MK_MAN 13000 13000 <br />
<br />
20 MK_REP 6000 6000 <br />
<br />
50 ST_MAN 5800 5800 <br />
<br />
110 AC_ACCOUNT 8300 8300 <br />
<br />
110 AC_MGR 12000 12000 <br />
<br />
<br />
<br />
SQL> SELECT department_id, department_name,<br />
<br />
2 RPAD(TRIM(NVL(city, 'Not Assinged Yet')), 25, ' ') "City",<br />
<br />
3 COUNT(DISTINCT job_id) "# of Jobs"<br />
<br />
4 FROM employees<br />
<br />
5 RIGHT OUTER JOIN departments USING (department_id)<br />
<br />
6 LEFT OUTER JOIN locations USING (location_id)<br />
<br />
7 GROUP BY department_id, department_name, city;<br />
<br />
<br />
<br />
DEPARTMENT_ID DEPARTMENT_NAME City # of Jobs <br />
<br />
------------- ------------------------------ ------------------------- ---------- <br />
<br />
110 Accounting Seattle 2 <br />
<br />
50 Shipping South San Francisco 2 <br />
<br />
80 Sales Oxford 2 <br />
<br />
10 Administration Seattle 1 <br />
<br />
190 Contracting Seattle 0 <br />
<br />
90 Executive Seattle 2 <br />
<br />
20 Marketing Toronto 2 <br />
<br />
60 IT Southlake 1 <br />
<br />
<br />
<br />
8 rows selected.<br />
<br />
<br />
<br />
SQL> spool off<br />
</pre><br />
==SQL Statements==<br />
===1.===<br />
''YuJin''<br />
<pre><br />
SELECT employee_id, RPAD(CONCAT(CONCAT(last_name, ', '),first_name), 25) "Full Name",<br />
job_id,<br />
TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
"Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
ORDER BY 4 DESC;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT employee_id,<br />
SUBSTR(last_name ||' '|| first_name, 1, 25) "Full Name",<br />
job_id,<br />
TO_CHAR(hire_date,'fmMonth "First in the year" YYYY') "Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date,'fmMON') IN ('MAY','NOV')<br />
ORDER BY hire_date DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select employee_id "Emp#",<br />
(last_name ||', '|| first_name) "Full Name",<br />
job_id "Job",<br />
to_char(trunc(hire_date, 'MONTH'), 'FMMonth Ddspth "in the year"<br />
YYYY') "Start Date"<br />
from employees<br />
where to_char(hire_date, 'fmMonth') in ('May', 'November')<br />
order by hire_date desc;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT employee_id, SUBSTR(last_name ||' '|| first_name, 1, 25) "Full Name",<br />
job_id,<br />
TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
"Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
ORDER BY hire_date DESC;<br />
</pre><br />
<br />
===2.===<br />
''YuJin''<br />
<pre><br />
SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
|| job_id || ' will have a new salary of $' || salary * 1.15 "Happy Employees"<br />
FROM employees<br />
WHERE salary BETWEEN 5000 AND 12000<br />
AND job_id IN ('IT_PROG', 'ST_CLERK')<br />
ORDER BY employee_id;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT 'Employee named '||first_name||' '||last_name||' who is '||job_id||' will have a new salary of $'|| salary *1.15 "Happy Employees"<br />
FROM employees<br />
WHERE job_id IN ('IT_PROG','ST CLERK')<br />
AND (salary BETWEEN 5000 AND 12000)<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
Select ('Employee named ' || first_name ||' '|| last_name || ' who is ' || job_id || ' will have a new salary of ' || (salary*1.15)) "Happy Employees"<br />
From employees<br />
Where salary between 5000 and 12000<br />
And upper(job_id) in ('IT_PROG', 'ST_CLERK')<br />
order by employee_id;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
|| job_id || ' will have a new salary of ' || TO_CHAR(salary * 1.15, 'fm$999999') "Happy Employees"<br />
FROM employees<br />
WHERE salary BETWEEN 5000 AND 12000<br />
AND UPPER(job_id) IN ('IT_PROG', 'ST_CLERK')<br />
ORDER BY employee_id;<br />
</pre><br />
<br />
===3.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, salary, job_id,<br />
RPAD(NVL(TO_CHAR(manager_id), 'No Manager'), 10) "Manager #",<br />
LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
FROM employees<br />
WHERE (job_id LIKE 'MK%' OR manager_id IS NULL)<br />
AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
ORDER BY 2 DESC;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, salary, job_id, NVL(TO_CHAR(manager_id),'No Manager') Manager#,<br />
TO_CHAR(salary*12,'$999,999') "Total Income"<br />
FROM employees<br />
WHERE (manager_id IS NULL<br />
OR job_id LIKE 'MK%')<br />
AND ( salary* (NVL(commission_pct,0) + 1) + 1000 ) > 10000<br />
ORDER BY salary DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, salary, job_id, nvl(to_char(manager_id),'No Manager') Manager#,<br />
to_char(salary*12,'$999,999') "Total Income"<br />
from employees<br />
where (upper(job_id) like 'MK%' or manager_id IS NULL)<br />
and salary * (1 + nvl(commission_pct, 0)) + 1000 > 10000<br />
order by 2 desc;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT last_name, salary, job_id,<br />
SUBSTR(NVL(TO_CHAR(manager_id), 'No Manager'), 1, 10) "Manager #",<br />
LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
FROM employees<br />
WHERE (UPPER(job_id) LIKE 'MK%' OR manager_id IS NULL)<br />
AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
ORDER BY salary DESC;<br />
<br />
</pre><br />
<br />
===4.===<br />
''YuJin''<br />
<pre><br />
SELECT RPAD(CONCAT(CONCAT(first_name,' '),last_name), 25) "Employee", job_id,<br />
LPAD(TRIM(TO_CHAR(salary, '$999,999')), 12, '=') "Salary", department_name<br />
FROM employees e JOIN departments d<br />
ON (e.department_id = d.department_id)<br />
WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
AND salary <<br />
(SELECT MAX(salary)<br />
FROM employees<br />
WHERE SUBSTR(job_id, 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
ORDER BY 1;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT SUBSTR(first_name||' '||last_name, 25) Employee, job_id,<br />
LPAD(TO_CHAR(salary,'$99,999'), 12, '=') Salary, department_name<br />
FROM employees e JOIN departments d<br />
ON (d.department_id=e.department_id)<br />
WHERE salary < (SELECT MAX(salary)<br />
FROM employees<br />
WHERE UPPER(SUBSTR(job_id,4)) NOT IN ('VP', 'PRES', 'MAN', 'MGR')<br />
)<br />
AND UPPER(department_name) IN ('MARKETING','SALES')<br />
ORDER BY first_name, last_name<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select substr(first_name ||' '|| last_name) "Employee", job_id, to_char(salary, '$999,999', 12, '=') Salary, department_name<br />
from employees e join departments d<br />
on (e.department_id = d.department_id)<br />
where upper(department_name) in ('MARKETING', 'SALES')<br />
and salary < (select max(salary)<br />
from employees<br />
where substr(job_id,4) not in ('PRES','VP','MAN','MGR'))<br />
order by "Employee";<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT SUBSTR(first_name ||' '|| last_name, 1, 25) "Employee", job_id,<br />
LPAD(TO_CHAR(salary, 'fm$999,999'), 12, '=') "Salary", department_name<br />
FROM employees e JOIN departments d<br />
ON (e.department_id = d.department_id)<br />
WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
AND salary <<br />
(SELECT MAX(salary)<br />
FROM employees<br />
WHERE SUBSTR(UPPER(job_id), 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
ORDER BY 1;<br />
</pre><br />
<br />
===5.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
AND salary ><br />
(SELECT MAX(salary)<br />
FROM employees<br />
JOIN departments USING (department_id)<br />
JOIN locations USING (location_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE salary > (SELECT MAX(salary)<br />
FROM locations JOIN departments<br />
USING (location_id)<br />
JOIN employees<br />
USING (department_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD')<br />
)<br />
AND UPPER(job_id) NOT LIKE '%PRES'<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, salary, job_id<br />
from employees<br />
where salary > (select max(salary)<br />
from employees join departments<br />
using (department_id)<br />
join locations<br />
using (location_id)<br />
where upper(city) in ('TORONTO','OXFORD'))<br />
and upper(job_id) not like '%PRES'<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
AND salary ><br />
(SELECT MAX(salary)<br />
FROM employees<br />
JOIN departments USING (department_id)<br />
JOIN locations USING (location_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
</pre><br />
<br />
===6.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, first_name, job_id, hire_date<br />
FROM employees<br />
WHERE hire_date ><br />
(SELECT MAX(hire_date)<br />
FROM employees<br />
WHERE department_id =<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'IT'))<br />
AND (department_id !=<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'EXECUTIVE')<br />
OR department_id IS NULL)<br />
ORDER BY 4 DESC;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, first_name, job_id, hire_date<br />
FROM employees e<br />
WHERE hire_date > (SELECT MAX(hire_date)<br />
FROM employees<br />
WHERE department_id = (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'IT'<br />
)<br />
)<br />
AND (department_id <> (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) ='EXECUTIVE')<br />
OR department_id IS NULL)<br />
ORDER BY hire_date DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, first_name, job_id, hire_date<br />
from employees<br />
where hire_date > (select max(hire_date)<br />
from employees<br />
where department_id = (select department_id<br />
from departments<br />
where upper(department_name) = 'IT'))<br />
and (department_id != (select department_id<br />
from departments<br />
where upper(department_name) = 'EXECUTIVE')<br />
or department_id IS NULL)<br />
order by hire_date desc;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT last_name, first_name, job_id, hire_date<br />
FROM employees<br />
WHERE hire_date ><br />
(SELECT MAX(hire_date)<br />
FROM employees<br />
WHERE department_id =<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'IT'))<br />
AND (department_id !=<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'EXECUTIVE')<br />
OR department_id IS NULL)<br />
ORDER BY hire_date DESC;<br />
</pre><br />
<br />
===7.===<br />
''YuJin''<br />
<pre><br />
SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay",<br />
MIN(salary) "Lowest Dept/Job Pay"<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%VP'<br />
AND department_id NOT IN<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) IN ('IT','SALES'))<br />
GROUP BY department_id, job_id<br />
HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
ORDER BY 1, 2;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay", MIN(salary) "Lowest Dept/Job Pay"<br />
FROM employees<br />
WHERE department_id <> ALL (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) IN ('IT','SALES')<br />
)<br />
AND job_id NOT LIKE '%VP'<br />
GROUP BY department_id, job_id<br />
HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
ORDER BY department_id, job_id<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select department_id, job_id, avg(salary) "Average Dept/Job Pay", min(salary) "Lowest Dept/Job Pay"<br />
from employees<br />
where upper(job_id) not like '%VP'<br />
and department_id != all(select department_id<br />
from departments<br />
where upper(department_name) in ('IT','SALES'))<br />
group by department_id, job_id<br />
having min(salary) between 5000 and 15000<br />
order by department_id, job_id<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay",<br />
MIN(salary) "Lowest Dept/Job Pay"<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%VP'<br />
AND department_id != ALL<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) IN ('IT','SALES'))<br />
GROUP BY department_id, job_id<br />
HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
ORDER BY department_id, job_id;<br />
</pre><br />
<br />
===8.===<br />
''YuJin''<br />
<pre><br />
SELECT department_id, department_name,<br />
RPAD(TRIM(NVL(city, 'Not Assinged Yet')), 25, ' ') "City",<br />
COUNT(DISTINCT job_id) "# of Jobs"<br />
FROM employees<br />
RIGHT OUTER JOIN departments USING (department_id)<br />
LEFT OUTER JOIN locations USING (location_id)<br />
GROUP BY department_id, department_name, city;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT department_id, department_name, SUBSTR(NVL(city,'Not Assigned Yet'),1,25) City,<br />
COUNT(DISTINCT job_id) "# of Jobs"<br />
FROM locations l RIGHT OUTER JOIN departments d<br />
USING (location_id)<br />
LEFT OUTER JOIN employees e<br />
USING (department_id)<br />
GROUP BY department_id, department_name, city<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select department_id, department_name, substr(nvl(city,'Not Assigned Yet'),1,25) City,<br />
count(distinct job_id) "# of Jobs"<br />
from employees right outer join departments<br />
using (department_id)<br />
left outer join locations<br />
using (location_id)<br />
group by department_id, department_name, city<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT department_id, department_name,<br />
SUBSTR(NVL(city, 'Not Assinged Yet'),1, 25) "City",<br />
COUNT(DISTINCT job_id) "# of Jobs"<br />
FROM employees<br />
RIGHT OUTER JOIN departments USING (department_id)<br />
LEFT OUTER JOIN locations USING (location_id)<br />
GROUP BY department_id, department_name, city;<br />
<br />
</pre></div>
Yujin.jeong
https://wiki.cdot.senecacollege.ca/w/index.php?title=J.Y.S&diff=50972
J.Y.S
2010-11-30T20:17:27Z
<p>Yujin.jeong: /* DDL Statements (CREATE TABLE) */</p>
<hr />
<div>This page is to efficiently manage our group assignments!<br />
== Member List == <br />
*[mailto:,,yjeong@learn.senecac.on.ca,?subject=dbs301 Email All]<br />
<br />
{| class="wikitable sortable" border="1" cellpadding="5"<br />
! First Name !! Last Name !! wiki id !! Learn e-mail !! Phone<br />
|-<br />
|[[User:Yujin.jeong | YuJin]]||Jeong||[[Special:Contributions/yujin.jeong | yujin.jeong]]||[mailto:yjeong@learn.senecac.on.ca?sujbect=dbs301 yjeong]|| 647 - 832 - 6771<br />
|-<br />
<br />
|-<br />
|Saad|| || || ||<br />
|-<br />
<br />
|-<br />
|James|| || || ||<br />
|-<br />
|}<br />
<br />
=Assignment 3 (worth 9%)=<br />
==Due Date==<br />
Thursday, December 2nd, 3:00pm<br />
Printout of all TIC charts and DDL / DML statements<br />
<br />
==Solution==<br />
==== DDL Statements (CREATE TABLE) ====<br />
1. AREA<br />
<pre><br />
CREATE TABLE AREA<br />
(<br />
AreaID NUMBER(4) CONSTRAINT area_areaid_pk PRIMARY KEY,<br />
AreaName VARCHAR2(15) NOT NULL CONSTRAINT area_areaname_uk UNIQUE,<br />
ElmSchool VARCHAR2(40),<br />
MidSchool VARCHAR2(40),<br />
HighSchool VARCHAR2(40),<br />
Comments VARCHAR2(100)<br />
);<br />
</pre><br />
2. AGENCY<br />
<pre><br />
CREATE TABLE AGENCY<br />
(<br />
AgencyID NUMBER(4) CONSTRAINT agency_agencyid_pk PRIMARY KEY,<br />
AgencyName VARCHAR2(30) NOT NULL CONSTRAINT agency_agencyname_uk UNIQUE,<br />
AgencyPhone VARCHAR2(15) NOT NULL CONSTRAINT agency_agencyphone_uk UNIQUE<br />
);<br />
</pre><br />
3. PROPERTY<br />
<pre><br />
CREATE TABLE PROPERTY<br />
(<br />
PropertyID NUMBER(6),<br />
Street VARCHAR2(40) NOT NULL,<br />
City VARCHAR2(30) NOT NULL,<br />
Province CHAR(2) NOT NULL,<br />
PostalCode CHAR(6) NOT NULL,<br />
Bedrooms NUMBER(1) NOT NULL,<br />
Bathrooms NUMBER(1) NOT NULL,<br />
ListingPrice NUMBER(6) NOT NULL,<br />
AreaID NUMBER(4) NOT NULL,<br />
CONSTRAINT property_propertyid_pk PRIMARY KEY(PropertyID),<br />
CONSTRAINT property_bedrooms_ck CHECK(Bedrooms BETWEEN 1 AND 9),<br />
CONSTRAINT property_bathrooms_ck CHECK(Bathrooms BETWEEN 1 AND 9),<br />
CONSTRAINT property_listingprice_ck CHECK(ListingPrice BETWEEN 1 AND 4999999),<br />
CONSTRAINT property_areaid_fk FOREIGN KEY(AreaID) REFERENCES AREA(AreaID)<br />
);<br />
</pre><br />
4. SINGLE<br />
<pre><br />
CREATE TABLE SINGLE<br />
(<br />
PropertyID NUMBER(6), <br />
LotSize NUMBER(8,2) NOT NULL,<br />
CONSTRAINT single_propertyID_pk PRIMARY KEY(PropertyID), <br />
CONSTRAINT single_propertyID_fk FOREIGN KEY(PropertyID) REFERENCES PROPERTY(PropertyID),<br />
CONSTRAINT single_lotsize_ck CHECK(LotSize > 0)<br />
);<br />
<br />
</pre><br />
5. CONDO<br />
<pre><br />
CREATE TABLE CONDO<br />
(<br />
PropertyID NUMBER(6),<br />
Fee NUMBER(8,2) NOT NULL, <br />
CONSTRAINT condo_propertyID_pk PRIMARY KEY(PropertyID),<br />
CONSTRAINT condo_propertyID_fk FOREIGN KEY(PropertyID) REFERENCES PROPERTY(PropertyID),<br />
CONSTRAINT condo_fee_ck CHECK(Fee > 0)<br />
);<br />
<br />
</pre><br />
6. OUTLET<br />
<pre><br />
CREATE TABLE OUTLET<br />
(<br />
OutletID NUMBER(4), <br />
OutletName VARCHAR2(40) NOT NULL,<br />
OutletPhone VARCHAR2(15) NOT NULL,<br />
OutletType CHAR(1) NOT NULL,<br />
CONSTRAINT outlet_outletid_pk PRIMARY KEY(OutletID),<br />
CONSTRAINT outlet_outlettype_ck CHECK(OutletType IN('N','M','W','F')),<br />
CONSTRAINT outlet_outletname_type_uk UNIQUE(OutletName, OutletType)<br />
);<br />
<br />
</pre><br />
7. ADVERTISEMENT<br />
<pre><br />
CREATE TABLE ADVERTISEMENT<br />
(<br />
PropertyID NUMBER(6),<br />
OutletID NUMBER(4),<br />
AdvDate DATE,<br />
AdvCost NUMBER(6) NOT NULL,<br />
CONSTRAINT ad_adid_pk PRIMARY KEY(PropertyID, OutletID),<br />
CONSTRAINT ad_propertyid_fk FOREIGN KEY(PropertyID) REFERENCES PROPERTY(PropertyID),<br />
CONSTRAINT ad_outletid_fk FOREIGN KEY(OutletID) REFERENCES OUTLET(OutletID),<br />
CONSTRAINT ad_advcost_ck CHECK(AdvCost > 0)<br />
);<br />
</pre><br />
8. CLIENT<br />
<pre><br />
CREATE TABLE CLIENT<br />
(<br />
ClientID NUMBER(6),<br />
Fname VARCHAR2(30) NOT NULL,<br />
Lname VARCHAR2(30) NOT NULL,<br />
Phone VARCHAR2(15) NOT NULL,<br />
Email VARCHAR2(40),<br />
RefID NUMBER(6),<br />
CONSTRAINT client_clientid_pk PRIMARY KEY(ClientID),<br />
CONSTRAINT client_phone_uk UNIQUE(Phone),<br />
CONSTRAINT client_email_uk UNIQUE(Email),<br />
CONSTRAINT client_refid_fk FOREIGN KEY(RefID) REFERENCES CLIENT(ClientID)<br />
);<br />
</pre><br />
9. DEED<br />
<pre><br />
CREATE TABLE DEED<br />
(<br />
PropertyID NUMBER(6),<br />
SellerID NUMBER(6),<br />
OwnPct NUMBER(5,2) NOT NULL,<br />
BuyerID NUMBER(6),<br />
BuyPrice NUMBER(7),<br />
CONSTRAINT deed_deedid_pk PRIMARY KEY(PropertyID, SellerID),<br />
CONSTRAINT deed_propertyid_fk FOREIGN KEY(PropertyID) REFERENCES PROPERTY(PropertyID),<br />
CONSTRAINT deed_sellerid_fk FOREIGN KEY(SellerID) REFERENCES CLIENT(ClientID),<br />
CONSTRAINT deed_buyerid_fk FOREIGN KEY(BuyerID) REFERENCES CLIENT(ClientID),<br />
CONSTRAINT deed_ownpct_ck CHECK(OwnPct > 0 AND OwnPct <= 100),<br />
CONSTRAINT deed_buyprice_ck CHECK(BuyPrice BETWEEN 1 AND 4999999)<br />
);<br />
<br />
</pre><br />
<br />
==== DML Statements (INSERT INTO) ====<br />
<br />
1. AREA<BR><br />
<pre><br />
INSERT ALL<br />
INTO AREA VALUES(1001, 'Bayview Village', 'Adrienne Clarkson Public School', 'Amesbury Middle School', 'Bayview Secondary School', 'Upper middle class to upper class neighborhood in Toronto.')<br />
INTO AREA VALUES(3001,'Laurelwood', 'Elizabeth Ziegler Primary School','Waterloo Middle School','Saint David Catholic Secondary School','Close to University of Waterloo and many popular amenities.')<br />
INTO AREA VALUES(4001,'Silver Heights','Alison Park Primary School','Eastwood Middle School','King Edward Secondary School',null)<br />
INTO AREA VALUES(5001,'Kitsilano','Henry Hudson Elementary School','St George School','Kitsilano Secondary School','Very well-off area.')<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
<br />
2. AGENCY<BR><br />
<pre><br />
INSERT ALL<br />
INTO VALUES(1055,'Sutton Group Regal Realty','416.875.9873')<br />
INTO VALUES(3079,'MacDonald Realty','604.986.0231')<br />
INTO VALUES(7024,'Royal LePage Groupe Newton','514.234.9283')<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
<br />
3. PROPERTY<BR><br />
<pre><br />
INSERT ALL<br />
INTO VALUES(134982,'27 King's College Circle','Toronto','ON','M5S1A1',2,2,380000,1001,1055)<br />
INTO VALUES(149800','17 Pleasant View Dr.','Toronto','ON','M2J2H1',3,2,470000,1001)<br />
INTO VALUES(152932,'17 Barberry Pl. #1313','Toronto','ON','M8W7V4,1,1,259888,1001)<br />
INTO VALUES(495820,'776 Laurelwood Dr.','Waterloo','ON','H3A2T5',2,2,295000,3001,3079)<br />
INTO VALUES(500211,'409 Kelso Cr.','Cambridge','ON','H3Y7S3',3,2,485000,4001)<br />
INTO VALUES(139204,'3043 Crown St.','Vancouver','BC','U3J3M6',5,3,1398000,5001,7024)<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
4. SINGLE<BR><br />
<pre><br />
INSERT ALL<br />
INTO VALUES(134982,3716)<br />
INTO VALUES(149800,1005)<br />
INTO VALUES(139204,5400)<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
5. CONDO<BR><br />
<pre><br />
INSERT ALL<br />
INTO VALUES(152932,250)<br />
INTO VALUES(495820,320)<br />
INTO VALUES(500211,550)<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
6. OUTLET<BR><br />
<pre><br />
INSERT ALL<br />
INTO VALUES(1000,'Toronto Star','416.923.1782','N')<br />
INTO VALUES(2001,'Waterloo Living','519.098.9283','M')<br />
INTO VALUES(8001,'Canadian Life','416.982.0192','W')<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
7. ADVERTISEMENT<BR><br />
<pre><br />
INSERT ALL<br />
INTO VALUES(134982,1000,'25-NOV-10',350)<br />
INTO VALUES(149800,1000,'27-NOV-10',250)<br />
INTO VALUES(495820,2001,'27-NOV-10',300)<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
8. CLIENT<BR><br />
<pre><br />
INSERT ALL<br />
INTO VALUES(1010,'Andrew','Lee','647.978.0192','andrew11@hotmail.com')<br />
INTO VALUES(1011,'Daniel','Smith','416.895.9762','dsmith@gmail.com',5010)<br />
INTO VALUES(1012,'Olivia','Wilson','647.915.2738','oliviaorange@gmail.com')<br />
INTO VALUES(1013,'Jayden','Martin','519.225.1928','jmartin@rogers.com')<br />
INTO VALUES(1014,'Maria','Brown','416.182.0021','maria.brown@hotmail.com')<br />
INTO VALUES(2010,'Ethan','Roy','226.289.0394','ethanrockstar@bell.com')<br />
INTO VALUES(2011,'Sophia','Tremblay','647.297.2918','stremblay@gmail.com',5010)<br />
INTO VALUES(3010,'Ryan,Wilson','604.837.1029','wilsonryan@gmail.com')<br />
INTO VALUES(3012,'Luis','Jones','416.832.6771','luis7787@rogers.com')<br />
INTO VALUES(5010,'Mary','Anderson','647.234.5690','andersonpink@gmail.com')<br />
INTO VALUES(7010,'James','White','647.298.9182','james.white@bell.com',1010)<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
9. DEED<BR><br />
<pre><br />
INSERT ALL<br />
INTO VALUES(149800,1010,75,5010,352300)<br />
INTO VALUES(139204,1012,100,3010,1394000)<br />
INTO VALUES(134982,2011,50,1014,200000)<br />
SELECT * FROM DUAL;<br />
</pre><br />
<br />
==== CREATE VIEW ====<br />
<pre><br />
CREATE VIEW PropAreaLocSeller_VU AS<br />
SELECT (a.AreaName || ', ' || p.City || ', ' || p.Street || ', ' || p.PostalCode) "Property Location",<br />
TO_CHAR(p.ListingPrice,'$9,999,999'), sgl.LotSize || ' sqft' LotSize, s.Lname || ', ' || s.Fname, s.phone, d.OwnPct, NVL(ag.AgencyName, 'No Agency')<br />
FROM Property p<br />
JOIN Single sgl ON (p.PropertyID = sgl.PropertyID)<br />
JOIN Area ar ON (p.AreaID = a.AreaID)<br />
JOIN Agency ag ON (p.AgencyID = ag.AgencyID)<br />
JOIN Deed d ON (p.PropertyID = d.PropertyID)<br />
JOIN Client s ON (d.SellerID = s.ClientID)<br />
</pre><br />
<br />
Not Too sure if this will work out<br />
<br />
=Assignment 1=<br />
==Due Date==<br />
Thursday, October 21st, 4:00pm<br />
Printout submission only( SELECT Statements + ALL outputs)<br />
==Description==<br />
[https://cs.senecac.on.ca/~nconkic/assign1.doc Assignment1]<br />
==Solution==<br />
<pre><br />
SQL> SELECT employee_id, RPAD(CONCAT(CONCAT(last_name, ', '),first_name), 25) "Full Name",<br />
<br />
2 job_id,<br />
<br />
3 TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
<br />
4 "Start Date"<br />
<br />
5 FROM employees<br />
<br />
6 WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
<br />
7 ORDER BY 4 DESC;<br />
<br />
<br />
<br />
EMPLOYEE_ID Full Name JOB_ID Start Date <br />
<br />
----------- ------------------------- ---------- ----------------------------------------- <br />
<br />
124 Mourgos, Kevin ST_MAN November First in the year 1999 <br />
<br />
178 Grant, Kimberely SA_REP May First in the year 1999 <br />
<br />
174 Abel, Ellen SA_REP May First in the year 1996 <br />
<br />
104 Ernst, Bruce IT_PROG May First in the year 1991 <br />
<br />
<br />
<br />
SQL> SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
<br />
2 || job_id || ' will have a new salary of $' || salary * 1.15 "Happy Employees"<br />
<br />
3 FROM employees<br />
<br />
4 WHERE salary BETWEEN 5000 AND 12000<br />
<br />
5 AND job_id IN ('IT_PROG', 'ST_CLERK')<br />
<br />
6 ORDER BY employee_id;<br />
<br />
<br />
<br />
Happy Employees <br />
<br />
----------------------------------------------------------------------------------------------------<br />
<br />
Employee named Alexander Hunold who is IT_PROG will have a new salary of $10350 <br />
<br />
Employee named Bruce Ernst who is IT_PROG will have a new salary of $6900 <br />
<br />
<br />
<br />
SQL> SELECT last_name, salary, job_id,<br />
<br />
2 RPAD(NVL(TO_CHAR(manager_id), 'No Manager'), 10) "Manager #",<br />
<br />
3 LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
<br />
4 FROM employees<br />
<br />
5 WHERE (job_id LIKE 'MK%' OR manager_id IS NULL)<br />
<br />
6 AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
<br />
7 ORDER BY 2 DESC;<br />
<br />
<br />
<br />
LAST_NAME SALARY JOB_ID Manager # Total Income <br />
<br />
------------------------- ---------- ---------- ---------- ------------ <br />
<br />
King 24000 AD_PRES No Manager $288,000 <br />
<br />
Hartstein 13000 MK_MAN 100 $156,000 <br />
<br />
<br />
<br />
SQL> SELECT RPAD(CONCAT(CONCAT(first_name,' '),last_name), 25) "Employee", job_id,<br />
<br />
2 LPAD(TRIM(TO_CHAR(salary, '$999,999')), 12, '=') "Salary", department_name<br />
<br />
3 FROM employees e JOIN departments d<br />
<br />
4 ON (e.department_id = d.department_id)<br />
<br />
5 WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
<br />
6 AND salary <<br />
<br />
7 (SELECT MAX(salary)<br />
<br />
8 FROM employees<br />
<br />
9 WHERE SUBSTR(job_id, 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
<br />
10 ORDER BY 1;<br />
<br />
<br />
<br />
Employee JOB_ID Salary DEPARTMENT_NAME <br />
<br />
------------------------- ---------- ------------ ------------------------------ <br />
<br />
Eleni Zlotkey SA_MAN =====$10,500 Sales <br />
<br />
Jonathon Taylor SA_REP ======$8,600 Sales <br />
<br />
Pat Fay MK_REP ======$6,000 Marketing <br />
<br />
<br />
<br />
SQL><br />
<br />
SQL> SELECT last_name, salary, job_id<br />
<br />
2 FROM employees<br />
<br />
3 WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
<br />
4 AND salary ><br />
<br />
5 (SELECT MAX(salary)<br />
<br />
6 FROM employees<br />
<br />
7 JOIN departments USING (department_id)<br />
<br />
8 JOIN locations USING (location_id)<br />
<br />
9 WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
<br />
<br />
LAST_NAME SALARY JOB_ID <br />
<br />
------------------------- ---------- ---------- <br />
<br />
Kochhar 17000 AD_VP <br />
<br />
De Haan 17000 AD_VP <br />
<br />
<br />
<br />
SQL> SELECT last_name, first_name, job_id, hire_date<br />
<br />
2 FROM employees<br />
<br />
3 WHERE hire_date ><br />
<br />
4 (SELECT MAX(hire_date)<br />
<br />
5 FROM employees<br />
<br />
6 WHERE department_id =<br />
<br />
7 (SELECT department_id<br />
<br />
8 FROM departments<br />
<br />
9 WHERE UPPER(department_name) = 'IT'))<br />
<br />
10 AND (department_id !=<br />
<br />
11 (SELECT department_id<br />
<br />
12 FROM departments<br />
<br />
13 WHERE UPPER(department_name) = 'EXECUTIVE')<br />
<br />
14 OR department_id IS NULL)<br />
<br />
15 ORDER BY 4 DESC;<br />
<br />
<br />
<br />
LAST_NAME FIRST_NAME JOB_ID HIRE_DATE <br />
<br />
------------------------- -------------------- ---------- --------- <br />
<br />
Zlotkey Eleni SA_MAN 29-JAN-00 <br />
<br />
Mourgos Kevin ST_MAN 16-NOV-99 <br />
<br />
Grant Kimberely SA_REP 24-MAY-99 <br />
<br />
<br />
<br />
SQL> SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay",<br />
<br />
2 MIN(salary) "Lowest Dept/Job Pay"<br />
<br />
3 FROM employees<br />
<br />
4 WHERE UPPER(job_id) NOT LIKE '%VP'<br />
<br />
5 AND department_id NOT IN<br />
<br />
6 (SELECT department_id<br />
<br />
7 FROM departments<br />
<br />
8 WHERE UPPER(department_name) IN ('IT','SALES'))<br />
<br />
9 GROUP BY department_id, job_id<br />
<br />
10 HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
<br />
11 ORDER BY 1, 2;<br />
<br />
<br />
<br />
DEPARTMENT_ID JOB_ID Average Dept/Job Pay Lowest Dept/Job Pay <br />
<br />
------------- ---------- -------------------- ------------------- <br />
<br />
20 MK_MAN 13000 13000 <br />
<br />
20 MK_REP 6000 6000 <br />
<br />
50 ST_MAN 5800 5800 <br />
<br />
110 AC_ACCOUNT 8300 8300 <br />
<br />
110 AC_MGR 12000 12000 <br />
<br />
<br />
<br />
SQL> SELECT department_id, department_name,<br />
<br />
2 RPAD(TRIM(NVL(city, 'Not Assinged Yet')), 25, ' ') "City",<br />
<br />
3 COUNT(DISTINCT job_id) "# of Jobs"<br />
<br />
4 FROM employees<br />
<br />
5 RIGHT OUTER JOIN departments USING (department_id)<br />
<br />
6 LEFT OUTER JOIN locations USING (location_id)<br />
<br />
7 GROUP BY department_id, department_name, city;<br />
<br />
<br />
<br />
DEPARTMENT_ID DEPARTMENT_NAME City # of Jobs <br />
<br />
------------- ------------------------------ ------------------------- ---------- <br />
<br />
110 Accounting Seattle 2 <br />
<br />
50 Shipping South San Francisco 2 <br />
<br />
80 Sales Oxford 2 <br />
<br />
10 Administration Seattle 1 <br />
<br />
190 Contracting Seattle 0 <br />
<br />
90 Executive Seattle 2 <br />
<br />
20 Marketing Toronto 2 <br />
<br />
60 IT Southlake 1 <br />
<br />
<br />
<br />
8 rows selected.<br />
<br />
<br />
<br />
SQL> spool off<br />
</pre><br />
==SQL Statements==<br />
===1.===<br />
''YuJin''<br />
<pre><br />
SELECT employee_id, RPAD(CONCAT(CONCAT(last_name, ', '),first_name), 25) "Full Name",<br />
job_id,<br />
TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
"Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
ORDER BY 4 DESC;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT employee_id,<br />
SUBSTR(last_name ||' '|| first_name, 1, 25) "Full Name",<br />
job_id,<br />
TO_CHAR(hire_date,'fmMonth "First in the year" YYYY') "Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date,'fmMON') IN ('MAY','NOV')<br />
ORDER BY hire_date DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select employee_id "Emp#",<br />
(last_name ||', '|| first_name) "Full Name",<br />
job_id "Job",<br />
to_char(trunc(hire_date, 'MONTH'), 'FMMonth Ddspth "in the year"<br />
YYYY') "Start Date"<br />
from employees<br />
where to_char(hire_date, 'fmMonth') in ('May', 'November')<br />
order by hire_date desc;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT employee_id, SUBSTR(last_name ||' '|| first_name, 1, 25) "Full Name",<br />
job_id,<br />
TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
"Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
ORDER BY hire_date DESC;<br />
</pre><br />
<br />
===2.===<br />
''YuJin''<br />
<pre><br />
SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
|| job_id || ' will have a new salary of $' || salary * 1.15 "Happy Employees"<br />
FROM employees<br />
WHERE salary BETWEEN 5000 AND 12000<br />
AND job_id IN ('IT_PROG', 'ST_CLERK')<br />
ORDER BY employee_id;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT 'Employee named '||first_name||' '||last_name||' who is '||job_id||' will have a new salary of $'|| salary *1.15 "Happy Employees"<br />
FROM employees<br />
WHERE job_id IN ('IT_PROG','ST CLERK')<br />
AND (salary BETWEEN 5000 AND 12000)<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
Select ('Employee named ' || first_name ||' '|| last_name || ' who is ' || job_id || ' will have a new salary of ' || (salary*1.15)) "Happy Employees"<br />
From employees<br />
Where salary between 5000 and 12000<br />
And upper(job_id) in ('IT_PROG', 'ST_CLERK')<br />
order by employee_id;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
|| job_id || ' will have a new salary of ' || TO_CHAR(salary * 1.15, 'fm$999999') "Happy Employees"<br />
FROM employees<br />
WHERE salary BETWEEN 5000 AND 12000<br />
AND UPPER(job_id) IN ('IT_PROG', 'ST_CLERK')<br />
ORDER BY employee_id;<br />
</pre><br />
<br />
===3.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, salary, job_id,<br />
RPAD(NVL(TO_CHAR(manager_id), 'No Manager'), 10) "Manager #",<br />
LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
FROM employees<br />
WHERE (job_id LIKE 'MK%' OR manager_id IS NULL)<br />
AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
ORDER BY 2 DESC;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, salary, job_id, NVL(TO_CHAR(manager_id),'No Manager') Manager#,<br />
TO_CHAR(salary*12,'$999,999') "Total Income"<br />
FROM employees<br />
WHERE (manager_id IS NULL<br />
OR job_id LIKE 'MK%')<br />
AND ( salary* (NVL(commission_pct,0) + 1) + 1000 ) > 10000<br />
ORDER BY salary DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, salary, job_id, nvl(to_char(manager_id),'No Manager') Manager#,<br />
to_char(salary*12,'$999,999') "Total Income"<br />
from employees<br />
where (upper(job_id) like 'MK%' or manager_id IS NULL)<br />
and salary * (1 + nvl(commission_pct, 0)) + 1000 > 10000<br />
order by 2 desc;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT last_name, salary, job_id,<br />
SUBSTR(NVL(TO_CHAR(manager_id), 'No Manager'), 1, 10) "Manager #",<br />
LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
FROM employees<br />
WHERE (UPPER(job_id) LIKE 'MK%' OR manager_id IS NULL)<br />
AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
ORDER BY salary DESC;<br />
<br />
</pre><br />
<br />
===4.===<br />
''YuJin''<br />
<pre><br />
SELECT RPAD(CONCAT(CONCAT(first_name,' '),last_name), 25) "Employee", job_id,<br />
LPAD(TRIM(TO_CHAR(salary, '$999,999')), 12, '=') "Salary", department_name<br />
FROM employees e JOIN departments d<br />
ON (e.department_id = d.department_id)<br />
WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
AND salary <<br />
(SELECT MAX(salary)<br />
FROM employees<br />
WHERE SUBSTR(job_id, 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
ORDER BY 1;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT SUBSTR(first_name||' '||last_name, 25) Employee, job_id,<br />
LPAD(TO_CHAR(salary,'$99,999'), 12, '=') Salary, department_name<br />
FROM employees e JOIN departments d<br />
ON (d.department_id=e.department_id)<br />
WHERE salary < (SELECT MAX(salary)<br />
FROM employees<br />
WHERE UPPER(SUBSTR(job_id,4)) NOT IN ('VP', 'PRES', 'MAN', 'MGR')<br />
)<br />
AND UPPER(department_name) IN ('MARKETING','SALES')<br />
ORDER BY first_name, last_name<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select substr(first_name ||' '|| last_name) "Employee", job_id, to_char(salary, '$999,999', 12, '=') Salary, department_name<br />
from employees e join departments d<br />
on (e.department_id = d.department_id)<br />
where upper(department_name) in ('MARKETING', 'SALES')<br />
and salary < (select max(salary)<br />
from employees<br />
where substr(job_id,4) not in ('PRES','VP','MAN','MGR'))<br />
order by "Employee";<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT SUBSTR(first_name ||' '|| last_name, 1, 25) "Employee", job_id,<br />
LPAD(TO_CHAR(salary, 'fm$999,999'), 12, '=') "Salary", department_name<br />
FROM employees e JOIN departments d<br />
ON (e.department_id = d.department_id)<br />
WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
AND salary <<br />
(SELECT MAX(salary)<br />
FROM employees<br />
WHERE SUBSTR(UPPER(job_id), 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
ORDER BY 1;<br />
</pre><br />
<br />
===5.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
AND salary ><br />
(SELECT MAX(salary)<br />
FROM employees<br />
JOIN departments USING (department_id)<br />
JOIN locations USING (location_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE salary > (SELECT MAX(salary)<br />
FROM locations JOIN departments<br />
USING (location_id)<br />
JOIN employees<br />
USING (department_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD')<br />
)<br />
AND UPPER(job_id) NOT LIKE '%PRES'<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, salary, job_id<br />
from employees<br />
where salary > (select max(salary)<br />
from employees join departments<br />
using (department_id)<br />
join locations<br />
using (location_id)<br />
where upper(city) in ('TORONTO','OXFORD'))<br />
and upper(job_id) not like '%PRES'<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
AND salary ><br />
(SELECT MAX(salary)<br />
FROM employees<br />
JOIN departments USING (department_id)<br />
JOIN locations USING (location_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
</pre><br />
<br />
===6.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, first_name, job_id, hire_date<br />
FROM employees<br />
WHERE hire_date ><br />
(SELECT MAX(hire_date)<br />
FROM employees<br />
WHERE department_id =<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'IT'))<br />
AND (department_id !=<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'EXECUTIVE')<br />
OR department_id IS NULL)<br />
ORDER BY 4 DESC;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, first_name, job_id, hire_date<br />
FROM employees e<br />
WHERE hire_date > (SELECT MAX(hire_date)<br />
FROM employees<br />
WHERE department_id = (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'IT'<br />
)<br />
)<br />
AND (department_id <> (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) ='EXECUTIVE')<br />
OR department_id IS NULL)<br />
ORDER BY hire_date DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, first_name, job_id, hire_date<br />
from employees<br />
where hire_date > (select max(hire_date)<br />
from employees<br />
where department_id = (select department_id<br />
from departments<br />
where upper(department_name) = 'IT'))<br />
and (department_id != (select department_id<br />
from departments<br />
where upper(department_name) = 'EXECUTIVE')<br />
or department_id IS NULL)<br />
order by hire_date desc;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT last_name, first_name, job_id, hire_date<br />
FROM employees<br />
WHERE hire_date ><br />
(SELECT MAX(hire_date)<br />
FROM employees<br />
WHERE department_id =<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'IT'))<br />
AND (department_id !=<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'EXECUTIVE')<br />
OR department_id IS NULL)<br />
ORDER BY hire_date DESC;<br />
</pre><br />
<br />
===7.===<br />
''YuJin''<br />
<pre><br />
SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay",<br />
MIN(salary) "Lowest Dept/Job Pay"<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%VP'<br />
AND department_id NOT IN<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) IN ('IT','SALES'))<br />
GROUP BY department_id, job_id<br />
HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
ORDER BY 1, 2;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay", MIN(salary) "Lowest Dept/Job Pay"<br />
FROM employees<br />
WHERE department_id <> ALL (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) IN ('IT','SALES')<br />
)<br />
AND job_id NOT LIKE '%VP'<br />
GROUP BY department_id, job_id<br />
HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
ORDER BY department_id, job_id<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select department_id, job_id, avg(salary) "Average Dept/Job Pay", min(salary) "Lowest Dept/Job Pay"<br />
from employees<br />
where upper(job_id) not like '%VP'<br />
and department_id != all(select department_id<br />
from departments<br />
where upper(department_name) in ('IT','SALES'))<br />
group by department_id, job_id<br />
having min(salary) between 5000 and 15000<br />
order by department_id, job_id<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay",<br />
MIN(salary) "Lowest Dept/Job Pay"<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%VP'<br />
AND department_id != ALL<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) IN ('IT','SALES'))<br />
GROUP BY department_id, job_id<br />
HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
ORDER BY department_id, job_id;<br />
</pre><br />
<br />
===8.===<br />
''YuJin''<br />
<pre><br />
SELECT department_id, department_name,<br />
RPAD(TRIM(NVL(city, 'Not Assinged Yet')), 25, ' ') "City",<br />
COUNT(DISTINCT job_id) "# of Jobs"<br />
FROM employees<br />
RIGHT OUTER JOIN departments USING (department_id)<br />
LEFT OUTER JOIN locations USING (location_id)<br />
GROUP BY department_id, department_name, city;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT department_id, department_name, SUBSTR(NVL(city,'Not Assigned Yet'),1,25) City,<br />
COUNT(DISTINCT job_id) "# of Jobs"<br />
FROM locations l RIGHT OUTER JOIN departments d<br />
USING (location_id)<br />
LEFT OUTER JOIN employees e<br />
USING (department_id)<br />
GROUP BY department_id, department_name, city<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select department_id, department_name, substr(nvl(city,'Not Assigned Yet'),1,25) City,<br />
count(distinct job_id) "# of Jobs"<br />
from employees right outer join departments<br />
using (department_id)<br />
left outer join locations<br />
using (location_id)<br />
group by department_id, department_name, city<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT department_id, department_name,<br />
SUBSTR(NVL(city, 'Not Assinged Yet'),1, 25) "City",<br />
COUNT(DISTINCT job_id) "# of Jobs"<br />
FROM employees<br />
RIGHT OUTER JOIN departments USING (department_id)<br />
LEFT OUTER JOIN locations USING (location_id)<br />
GROUP BY department_id, department_name, city;<br />
<br />
</pre></div>
Yujin.jeong
https://wiki.cdot.senecacollege.ca/w/index.php?title=J.Y.S&diff=50971
J.Y.S
2010-11-30T20:15:22Z
<p>Yujin.jeong: /* DDL Statements (CREATE TABLE) */</p>
<hr />
<div>This page is to efficiently manage our group assignments!<br />
== Member List == <br />
*[mailto:,,yjeong@learn.senecac.on.ca,?subject=dbs301 Email All]<br />
<br />
{| class="wikitable sortable" border="1" cellpadding="5"<br />
! First Name !! Last Name !! wiki id !! Learn e-mail !! Phone<br />
|-<br />
|[[User:Yujin.jeong | YuJin]]||Jeong||[[Special:Contributions/yujin.jeong | yujin.jeong]]||[mailto:yjeong@learn.senecac.on.ca?sujbect=dbs301 yjeong]|| 647 - 832 - 6771<br />
|-<br />
<br />
|-<br />
|Saad|| || || ||<br />
|-<br />
<br />
|-<br />
|James|| || || ||<br />
|-<br />
|}<br />
<br />
=Assignment 3 (worth 9%)=<br />
==Due Date==<br />
Thursday, December 2nd, 3:00pm<br />
Printout of all TIC charts and DDL / DML statements<br />
<br />
==Solution==<br />
==== DDL Statements (CREATE TABLE) ====<br />
1. AREA<br />
<pre><br />
CREATE TABLE AREA<br />
(<br />
AreaID NUMBER(4) CONSTRAINT area_areaid_pk PRIMARY KEY,<br />
AreaName VARCHAR2(15) NOT NULL CONSTRAINT area_areaname_uk UNIQUE,<br />
ElmSchool VARCHAR2(40),<br />
MidSchool VARCHAR2(40),<br />
HighSchool VARCHAR2(40),<br />
Comments VARCHAR2(100)<br />
);<br />
</pre><br />
2. AGENCY<br />
<pre><br />
CREATE TABLE AGENCY<br />
(<br />
AgencyID NUMBER(4) CONSTRAINT agency_agencyid_pk PRIMARY KEY,<br />
AgencyName VARCHAR2(40) NOT NULL CONSTRAINT agency_agencyname_uk UNIQUE,<br />
AgencyPhone VARCHAR2(15) NOT NULL CONSTRAINT agency_agencyphone_uk UNIQUE<br />
);<br />
</pre><br />
3. PROPERTY<br />
<pre><br />
CREATE TABLE PROPERTY<br />
(<br />
PropertyID NUMBER(6),<br />
Street VARCHAR2(40) NOT NULL,<br />
City VARCHAR2(30) NOT NULL,<br />
Province CHAR(2) NOT NULL,<br />
PostalCode CHAR(6) NOT NULL,<br />
Bedrooms NUMBER(1) NOT NULL,<br />
Bathrooms NUMBER(1) NOT NULL,<br />
ListingPrice NUMBER(6) NOT NULL,<br />
AreaID NUMBER(4) NOT NULL,<br />
CONSTRAINT property_propertyid_pk PRIMARY KEY(PropertyID),<br />
CONSTRAINT property_bedrooms_ck CHECK(Bedrooms BETWEEN 1 AND 9),<br />
CONSTRAINT property_bathrooms_ck CHECK(Bathrooms BETWEEN 1 AND 9),<br />
CONSTRAINT property_listingprice_ck CHECK(ListingPrice BETWEEN 1 AND 4999999),<br />
CONSTRAINT property_areaid_fk FOREIGN KEY(AreaID) REFERENCES AREA(AreaID)<br />
);<br />
</pre><br />
4. SINGLE<br />
<pre><br />
CREATE TABLE SINGLE<br />
(<br />
PropertyID NUMBER(6), <br />
LotSize NUMBER(8,2) NOT NULL,<br />
CONSTRAINT single_propertyID_pk PRIMARY KEY(PropertyID), <br />
CONSTRAINT single_propertyID_fk FOREIGN KEY(PropertyID) REFERENCES PROPERTY(PropertyID),<br />
CONSTRAINT single_lotsize_ck CHECK(LotSize > 0)<br />
);<br />
<br />
</pre><br />
5. CONDO<br />
<pre><br />
CREATE TABLE CONDO<br />
(<br />
PropertyID NUMBER(6),<br />
Fee NUMBER(8,2) NOT NULL, <br />
CONSTRAINT condo_propertyID_pk PRIMARY KEY(PropertyID),<br />
CONSTRAINT condo_propertyID_fk FOREIGN KEY(PropertyID) REFERENCES PROPERTY(PropertyID),<br />
CONSTRAINT condo_fee_ck CHECK(Fee > 0)<br />
);<br />
<br />
</pre><br />
6. OUTLET<br />
<pre><br />
CREATE TABLE OUTLET<br />
(<br />
OutletID NUMBER(4), <br />
OutletName VARCHAR2(40) NOT NULL,<br />
OutletPhone VARCHAR2(15) NOT NULL,<br />
OutletType CHAR(1) NOT NULL,<br />
CONSTRAINT outlet_outletid_pk PRIMARY KEY(OutletID),<br />
CONSTRAINT outlet_outlettype_ck CHECK(OutletType IN('N','M','W','F')),<br />
CONSTRAINT outlet_outletname_type_uk UNIQUE(OutletName, OutletType)<br />
);<br />
<br />
</pre><br />
7. ADVERTISEMENT<br />
<pre><br />
CREATE TABLE ADVERTISEMENT<br />
(<br />
PropertyID NUMBER(6),<br />
OutletID NUMBER(4),<br />
AdvDate DATE,<br />
AdvCost NUMBER(6) NOT NULL,<br />
CONSTRAINT ad_adid_pk PRIMARY KEY(PropertyID, OutletID),<br />
CONSTRAINT ad_propertyid_fk FOREIGN KEY(PropertyID) REFERENCES PROPERTY(PropertyID),<br />
CONSTRAINT ad_outletid_fk FOREIGN KEY(OutletID) REFERENCES OUTLET(OutletID),<br />
CONSTRAINT ad_advcost_ck CHECK(AdvCost > 0)<br />
);<br />
</pre><br />
8. CLIENT<br />
<pre><br />
CREATE TABLE CLIENT<br />
(<br />
ClientID NUMBER(6),<br />
Fname VARCHAR2(30) NOT NULL,<br />
Lname VARCHAR2(30) NOT NULL,<br />
Phone VARCHAR2(15) NOT NULL,<br />
Email VARCHAR2(40),<br />
RefID NUMBER(6),<br />
CONSTRAINT client_clientid_pk PRIMARY KEY(ClientID),<br />
CONSTRAINT client_phone_uk UNIQUE(Phone),<br />
CONSTRAINT client_email_uk UNIQUE(Email),<br />
CONSTRAINT client_refid_fk FOREIGN KEY(RefID) REFERENCES CLIENT(ClientID)<br />
);<br />
</pre><br />
9. DEED<br />
<pre><br />
CREATE TABLE DEED<br />
(<br />
PropertyID NUMBER(6),<br />
SellerID NUMBER(6),<br />
OwnPct NUMBER(5,2) NOT NULL,<br />
BuyerID NUMBER(6),<br />
BuyPrice NUMBER(7),<br />
CONSTRAINT deed_deedid_pk PRIMARY KEY(PropertyID, SellerID),<br />
CONSTRAINT deed_propertyid_fk FOREIGN KEY(PropertyID) REFERENCES PROPERTY(PropertyID),<br />
CONSTRAINT deed_sellerid_fk FOREIGN KEY(SellerID) REFERENCES CLIENT(ClientID),<br />
CONSTRAINT deed_buyerid_fk FOREIGN KEY(BuyerID) REFERENCES CLIENT(ClientID),<br />
CONSTRAINT deed_ownpct_ck CHECK(OwnPct > 0 AND OwnPct <= 100),<br />
CONSTRAINT deed_buyprice_ck CHECK(BuyPrice BETWEEN 1 AND 4999999)<br />
);<br />
<br />
</pre><br />
<br />
==== DML Statements (INSERT INTO) ====<br />
<br />
1. AREA<BR><br />
<pre><br />
INSERT ALL<br />
INTO AREA VALUES(1001, 'Bayview Village', 'Adrienne Clarkson Public School', 'Amesbury Middle School', 'Bayview Secondary School', 'Upper middle class to upper class neighborhood in Toronto.')<br />
INTO AREA VALUES(3001,'Laurelwood', 'Elizabeth Ziegler Primary School','Waterloo Middle School','Saint David Catholic Secondary School','Close to University of Waterloo and many popular amenities.')<br />
INTO AREA VALUES(4001,'Silver Heights','Alison Park Primary School','Eastwood Middle School','King Edward Secondary School',null)<br />
INTO AREA VALUES(5001,'Kitsilano','Henry Hudson Elementary School','St George School','Kitsilano Secondary School','Very well-off area.')<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
<br />
2. AGENCY<BR><br />
<pre><br />
INSERT ALL<br />
INTO VALUES(1055,'Sutton Group Regal Realty','416.875.9873')<br />
INTO VALUES(3079,'MacDonald Realty','604.986.0231')<br />
INTO VALUES(7024,'Royal LePage Groupe Newton','514.234.9283')<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
<br />
3. PROPERTY<BR><br />
<pre><br />
INSERT ALL<br />
INTO VALUES(134982,'27 King's College Circle','Toronto','ON','M5S1A1',2,2,380000,1001,1055)<br />
INTO VALUES(149800','17 Pleasant View Dr.','Toronto','ON','M2J2H1',3,2,470000,1001)<br />
INTO VALUES(152932,'17 Barberry Pl. #1313','Toronto','ON','M8W7V4,1,1,259888,1001)<br />
INTO VALUES(495820,'776 Laurelwood Dr.','Waterloo','ON','H3A2T5',2,2,295000,3001,3079)<br />
INTO VALUES(500211,'409 Kelso Cr.','Cambridge','ON','H3Y7S3',3,2,485000,4001)<br />
INTO VALUES(139204,'3043 Crown St.','Vancouver','BC','U3J3M6',5,3,1398000,5001,7024)<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
4. SINGLE<BR><br />
<pre><br />
INSERT ALL<br />
INTO VALUES(134982,3716)<br />
INTO VALUES(149800,1005)<br />
INTO VALUES(139204,5400)<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
5. CONDO<BR><br />
<pre><br />
INSERT ALL<br />
INTO VALUES(152932,250)<br />
INTO VALUES(495820,320)<br />
INTO VALUES(500211,550)<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
6. OUTLET<BR><br />
<pre><br />
INSERT ALL<br />
INTO VALUES(1000,'Toronto Star','416.923.1782','N')<br />
INTO VALUES(2001,'Waterloo Living','519.098.9283','M')<br />
INTO VALUES(8001,'Canadian Life','416.982.0192','W')<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
7. ADVERTISEMENT<BR><br />
<pre><br />
INSERT ALL<br />
INTO VALUES(134982,1000,'25-NOV-10',350)<br />
INTO VALUES(149800,1000,'27-NOV-10',250)<br />
INTO VALUES(495820,2001,'27-NOV-10',300)<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
8. CLIENT<BR><br />
<pre><br />
INSERT ALL<br />
INTO VALUES(1010,'Andrew','Lee','647.978.0192','andrew11@hotmail.com')<br />
INTO VALUES(1011,'Daniel','Smith','416.895.9762','dsmith@gmail.com',5010)<br />
INTO VALUES(1012,'Olivia','Wilson','647.915.2738','oliviaorange@gmail.com')<br />
INTO VALUES(1013,'Jayden','Martin','519.225.1928','jmartin@rogers.com')<br />
INTO VALUES(1014,'Maria','Brown','416.182.0021','maria.brown@hotmail.com')<br />
INTO VALUES(2010,'Ethan','Roy','226.289.0394','ethanrockstar@bell.com')<br />
INTO VALUES(2011,'Sophia','Tremblay','647.297.2918','stremblay@gmail.com',5010)<br />
INTO VALUES(3010,'Ryan,Wilson','604.837.1029','wilsonryan@gmail.com')<br />
INTO VALUES(3012,'Luis','Jones','416.832.6771','luis7787@rogers.com')<br />
INTO VALUES(5010,'Mary','Anderson','647.234.5690','andersonpink@gmail.com')<br />
INTO VALUES(7010,'James','White','647.298.9182','james.white@bell.com',1010)<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
9. DEED<BR><br />
<pre><br />
INSERT ALL<br />
INTO VALUES(149800,1010,75,5010,352300)<br />
INTO VALUES(139204,1012,100,3010,1394000)<br />
INTO VALUES(134982,2011,50,1014,200000)<br />
SELECT * FROM DUAL;<br />
</pre><br />
<br />
==== CREATE VIEW ====<br />
<pre><br />
CREATE VIEW PropAreaLocSeller_VU AS<br />
SELECT (a.AreaName || ', ' || p.City || ', ' || p.Street || ', ' || p.PostalCode) "Property Location",<br />
TO_CHAR(p.ListingPrice,'$9,999,999'), sgl.LotSize || ' sqft' LotSize, s.Lname || ', ' || s.Fname, s.phone, d.OwnPct, NVL(ag.AgencyName, 'No Agency')<br />
FROM Property p<br />
JOIN Single sgl ON (p.PropertyID = sgl.PropertyID)<br />
JOIN Area ar ON (p.AreaID = a.AreaID)<br />
JOIN Agency ag ON (p.AgencyID = ag.AgencyID)<br />
JOIN Deed d ON (p.PropertyID = d.PropertyID)<br />
JOIN Client s ON (d.SellerID = s.ClientID)<br />
</pre><br />
<br />
Not Too sure if this will work out<br />
<br />
=Assignment 1=<br />
==Due Date==<br />
Thursday, October 21st, 4:00pm<br />
Printout submission only( SELECT Statements + ALL outputs)<br />
==Description==<br />
[https://cs.senecac.on.ca/~nconkic/assign1.doc Assignment1]<br />
==Solution==<br />
<pre><br />
SQL> SELECT employee_id, RPAD(CONCAT(CONCAT(last_name, ', '),first_name), 25) "Full Name",<br />
<br />
2 job_id,<br />
<br />
3 TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
<br />
4 "Start Date"<br />
<br />
5 FROM employees<br />
<br />
6 WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
<br />
7 ORDER BY 4 DESC;<br />
<br />
<br />
<br />
EMPLOYEE_ID Full Name JOB_ID Start Date <br />
<br />
----------- ------------------------- ---------- ----------------------------------------- <br />
<br />
124 Mourgos, Kevin ST_MAN November First in the year 1999 <br />
<br />
178 Grant, Kimberely SA_REP May First in the year 1999 <br />
<br />
174 Abel, Ellen SA_REP May First in the year 1996 <br />
<br />
104 Ernst, Bruce IT_PROG May First in the year 1991 <br />
<br />
<br />
<br />
SQL> SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
<br />
2 || job_id || ' will have a new salary of $' || salary * 1.15 "Happy Employees"<br />
<br />
3 FROM employees<br />
<br />
4 WHERE salary BETWEEN 5000 AND 12000<br />
<br />
5 AND job_id IN ('IT_PROG', 'ST_CLERK')<br />
<br />
6 ORDER BY employee_id;<br />
<br />
<br />
<br />
Happy Employees <br />
<br />
----------------------------------------------------------------------------------------------------<br />
<br />
Employee named Alexander Hunold who is IT_PROG will have a new salary of $10350 <br />
<br />
Employee named Bruce Ernst who is IT_PROG will have a new salary of $6900 <br />
<br />
<br />
<br />
SQL> SELECT last_name, salary, job_id,<br />
<br />
2 RPAD(NVL(TO_CHAR(manager_id), 'No Manager'), 10) "Manager #",<br />
<br />
3 LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
<br />
4 FROM employees<br />
<br />
5 WHERE (job_id LIKE 'MK%' OR manager_id IS NULL)<br />
<br />
6 AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
<br />
7 ORDER BY 2 DESC;<br />
<br />
<br />
<br />
LAST_NAME SALARY JOB_ID Manager # Total Income <br />
<br />
------------------------- ---------- ---------- ---------- ------------ <br />
<br />
King 24000 AD_PRES No Manager $288,000 <br />
<br />
Hartstein 13000 MK_MAN 100 $156,000 <br />
<br />
<br />
<br />
SQL> SELECT RPAD(CONCAT(CONCAT(first_name,' '),last_name), 25) "Employee", job_id,<br />
<br />
2 LPAD(TRIM(TO_CHAR(salary, '$999,999')), 12, '=') "Salary", department_name<br />
<br />
3 FROM employees e JOIN departments d<br />
<br />
4 ON (e.department_id = d.department_id)<br />
<br />
5 WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
<br />
6 AND salary <<br />
<br />
7 (SELECT MAX(salary)<br />
<br />
8 FROM employees<br />
<br />
9 WHERE SUBSTR(job_id, 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
<br />
10 ORDER BY 1;<br />
<br />
<br />
<br />
Employee JOB_ID Salary DEPARTMENT_NAME <br />
<br />
------------------------- ---------- ------------ ------------------------------ <br />
<br />
Eleni Zlotkey SA_MAN =====$10,500 Sales <br />
<br />
Jonathon Taylor SA_REP ======$8,600 Sales <br />
<br />
Pat Fay MK_REP ======$6,000 Marketing <br />
<br />
<br />
<br />
SQL><br />
<br />
SQL> SELECT last_name, salary, job_id<br />
<br />
2 FROM employees<br />
<br />
3 WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
<br />
4 AND salary ><br />
<br />
5 (SELECT MAX(salary)<br />
<br />
6 FROM employees<br />
<br />
7 JOIN departments USING (department_id)<br />
<br />
8 JOIN locations USING (location_id)<br />
<br />
9 WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
<br />
<br />
LAST_NAME SALARY JOB_ID <br />
<br />
------------------------- ---------- ---------- <br />
<br />
Kochhar 17000 AD_VP <br />
<br />
De Haan 17000 AD_VP <br />
<br />
<br />
<br />
SQL> SELECT last_name, first_name, job_id, hire_date<br />
<br />
2 FROM employees<br />
<br />
3 WHERE hire_date ><br />
<br />
4 (SELECT MAX(hire_date)<br />
<br />
5 FROM employees<br />
<br />
6 WHERE department_id =<br />
<br />
7 (SELECT department_id<br />
<br />
8 FROM departments<br />
<br />
9 WHERE UPPER(department_name) = 'IT'))<br />
<br />
10 AND (department_id !=<br />
<br />
11 (SELECT department_id<br />
<br />
12 FROM departments<br />
<br />
13 WHERE UPPER(department_name) = 'EXECUTIVE')<br />
<br />
14 OR department_id IS NULL)<br />
<br />
15 ORDER BY 4 DESC;<br />
<br />
<br />
<br />
LAST_NAME FIRST_NAME JOB_ID HIRE_DATE <br />
<br />
------------------------- -------------------- ---------- --------- <br />
<br />
Zlotkey Eleni SA_MAN 29-JAN-00 <br />
<br />
Mourgos Kevin ST_MAN 16-NOV-99 <br />
<br />
Grant Kimberely SA_REP 24-MAY-99 <br />
<br />
<br />
<br />
SQL> SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay",<br />
<br />
2 MIN(salary) "Lowest Dept/Job Pay"<br />
<br />
3 FROM employees<br />
<br />
4 WHERE UPPER(job_id) NOT LIKE '%VP'<br />
<br />
5 AND department_id NOT IN<br />
<br />
6 (SELECT department_id<br />
<br />
7 FROM departments<br />
<br />
8 WHERE UPPER(department_name) IN ('IT','SALES'))<br />
<br />
9 GROUP BY department_id, job_id<br />
<br />
10 HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
<br />
11 ORDER BY 1, 2;<br />
<br />
<br />
<br />
DEPARTMENT_ID JOB_ID Average Dept/Job Pay Lowest Dept/Job Pay <br />
<br />
------------- ---------- -------------------- ------------------- <br />
<br />
20 MK_MAN 13000 13000 <br />
<br />
20 MK_REP 6000 6000 <br />
<br />
50 ST_MAN 5800 5800 <br />
<br />
110 AC_ACCOUNT 8300 8300 <br />
<br />
110 AC_MGR 12000 12000 <br />
<br />
<br />
<br />
SQL> SELECT department_id, department_name,<br />
<br />
2 RPAD(TRIM(NVL(city, 'Not Assinged Yet')), 25, ' ') "City",<br />
<br />
3 COUNT(DISTINCT job_id) "# of Jobs"<br />
<br />
4 FROM employees<br />
<br />
5 RIGHT OUTER JOIN departments USING (department_id)<br />
<br />
6 LEFT OUTER JOIN locations USING (location_id)<br />
<br />
7 GROUP BY department_id, department_name, city;<br />
<br />
<br />
<br />
DEPARTMENT_ID DEPARTMENT_NAME City # of Jobs <br />
<br />
------------- ------------------------------ ------------------------- ---------- <br />
<br />
110 Accounting Seattle 2 <br />
<br />
50 Shipping South San Francisco 2 <br />
<br />
80 Sales Oxford 2 <br />
<br />
10 Administration Seattle 1 <br />
<br />
190 Contracting Seattle 0 <br />
<br />
90 Executive Seattle 2 <br />
<br />
20 Marketing Toronto 2 <br />
<br />
60 IT Southlake 1 <br />
<br />
<br />
<br />
8 rows selected.<br />
<br />
<br />
<br />
SQL> spool off<br />
</pre><br />
==SQL Statements==<br />
===1.===<br />
''YuJin''<br />
<pre><br />
SELECT employee_id, RPAD(CONCAT(CONCAT(last_name, ', '),first_name), 25) "Full Name",<br />
job_id,<br />
TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
"Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
ORDER BY 4 DESC;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT employee_id,<br />
SUBSTR(last_name ||' '|| first_name, 1, 25) "Full Name",<br />
job_id,<br />
TO_CHAR(hire_date,'fmMonth "First in the year" YYYY') "Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date,'fmMON') IN ('MAY','NOV')<br />
ORDER BY hire_date DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select employee_id "Emp#",<br />
(last_name ||', '|| first_name) "Full Name",<br />
job_id "Job",<br />
to_char(trunc(hire_date, 'MONTH'), 'FMMonth Ddspth "in the year"<br />
YYYY') "Start Date"<br />
from employees<br />
where to_char(hire_date, 'fmMonth') in ('May', 'November')<br />
order by hire_date desc;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT employee_id, SUBSTR(last_name ||' '|| first_name, 1, 25) "Full Name",<br />
job_id,<br />
TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
"Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
ORDER BY hire_date DESC;<br />
</pre><br />
<br />
===2.===<br />
''YuJin''<br />
<pre><br />
SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
|| job_id || ' will have a new salary of $' || salary * 1.15 "Happy Employees"<br />
FROM employees<br />
WHERE salary BETWEEN 5000 AND 12000<br />
AND job_id IN ('IT_PROG', 'ST_CLERK')<br />
ORDER BY employee_id;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT 'Employee named '||first_name||' '||last_name||' who is '||job_id||' will have a new salary of $'|| salary *1.15 "Happy Employees"<br />
FROM employees<br />
WHERE job_id IN ('IT_PROG','ST CLERK')<br />
AND (salary BETWEEN 5000 AND 12000)<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
Select ('Employee named ' || first_name ||' '|| last_name || ' who is ' || job_id || ' will have a new salary of ' || (salary*1.15)) "Happy Employees"<br />
From employees<br />
Where salary between 5000 and 12000<br />
And upper(job_id) in ('IT_PROG', 'ST_CLERK')<br />
order by employee_id;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
|| job_id || ' will have a new salary of ' || TO_CHAR(salary * 1.15, 'fm$999999') "Happy Employees"<br />
FROM employees<br />
WHERE salary BETWEEN 5000 AND 12000<br />
AND UPPER(job_id) IN ('IT_PROG', 'ST_CLERK')<br />
ORDER BY employee_id;<br />
</pre><br />
<br />
===3.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, salary, job_id,<br />
RPAD(NVL(TO_CHAR(manager_id), 'No Manager'), 10) "Manager #",<br />
LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
FROM employees<br />
WHERE (job_id LIKE 'MK%' OR manager_id IS NULL)<br />
AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
ORDER BY 2 DESC;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, salary, job_id, NVL(TO_CHAR(manager_id),'No Manager') Manager#,<br />
TO_CHAR(salary*12,'$999,999') "Total Income"<br />
FROM employees<br />
WHERE (manager_id IS NULL<br />
OR job_id LIKE 'MK%')<br />
AND ( salary* (NVL(commission_pct,0) + 1) + 1000 ) > 10000<br />
ORDER BY salary DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, salary, job_id, nvl(to_char(manager_id),'No Manager') Manager#,<br />
to_char(salary*12,'$999,999') "Total Income"<br />
from employees<br />
where (upper(job_id) like 'MK%' or manager_id IS NULL)<br />
and salary * (1 + nvl(commission_pct, 0)) + 1000 > 10000<br />
order by 2 desc;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT last_name, salary, job_id,<br />
SUBSTR(NVL(TO_CHAR(manager_id), 'No Manager'), 1, 10) "Manager #",<br />
LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
FROM employees<br />
WHERE (UPPER(job_id) LIKE 'MK%' OR manager_id IS NULL)<br />
AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
ORDER BY salary DESC;<br />
<br />
</pre><br />
<br />
===4.===<br />
''YuJin''<br />
<pre><br />
SELECT RPAD(CONCAT(CONCAT(first_name,' '),last_name), 25) "Employee", job_id,<br />
LPAD(TRIM(TO_CHAR(salary, '$999,999')), 12, '=') "Salary", department_name<br />
FROM employees e JOIN departments d<br />
ON (e.department_id = d.department_id)<br />
WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
AND salary <<br />
(SELECT MAX(salary)<br />
FROM employees<br />
WHERE SUBSTR(job_id, 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
ORDER BY 1;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT SUBSTR(first_name||' '||last_name, 25) Employee, job_id,<br />
LPAD(TO_CHAR(salary,'$99,999'), 12, '=') Salary, department_name<br />
FROM employees e JOIN departments d<br />
ON (d.department_id=e.department_id)<br />
WHERE salary < (SELECT MAX(salary)<br />
FROM employees<br />
WHERE UPPER(SUBSTR(job_id,4)) NOT IN ('VP', 'PRES', 'MAN', 'MGR')<br />
)<br />
AND UPPER(department_name) IN ('MARKETING','SALES')<br />
ORDER BY first_name, last_name<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select substr(first_name ||' '|| last_name) "Employee", job_id, to_char(salary, '$999,999', 12, '=') Salary, department_name<br />
from employees e join departments d<br />
on (e.department_id = d.department_id)<br />
where upper(department_name) in ('MARKETING', 'SALES')<br />
and salary < (select max(salary)<br />
from employees<br />
where substr(job_id,4) not in ('PRES','VP','MAN','MGR'))<br />
order by "Employee";<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT SUBSTR(first_name ||' '|| last_name, 1, 25) "Employee", job_id,<br />
LPAD(TO_CHAR(salary, 'fm$999,999'), 12, '=') "Salary", department_name<br />
FROM employees e JOIN departments d<br />
ON (e.department_id = d.department_id)<br />
WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
AND salary <<br />
(SELECT MAX(salary)<br />
FROM employees<br />
WHERE SUBSTR(UPPER(job_id), 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
ORDER BY 1;<br />
</pre><br />
<br />
===5.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
AND salary ><br />
(SELECT MAX(salary)<br />
FROM employees<br />
JOIN departments USING (department_id)<br />
JOIN locations USING (location_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE salary > (SELECT MAX(salary)<br />
FROM locations JOIN departments<br />
USING (location_id)<br />
JOIN employees<br />
USING (department_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD')<br />
)<br />
AND UPPER(job_id) NOT LIKE '%PRES'<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, salary, job_id<br />
from employees<br />
where salary > (select max(salary)<br />
from employees join departments<br />
using (department_id)<br />
join locations<br />
using (location_id)<br />
where upper(city) in ('TORONTO','OXFORD'))<br />
and upper(job_id) not like '%PRES'<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
AND salary ><br />
(SELECT MAX(salary)<br />
FROM employees<br />
JOIN departments USING (department_id)<br />
JOIN locations USING (location_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
</pre><br />
<br />
===6.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, first_name, job_id, hire_date<br />
FROM employees<br />
WHERE hire_date ><br />
(SELECT MAX(hire_date)<br />
FROM employees<br />
WHERE department_id =<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'IT'))<br />
AND (department_id !=<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'EXECUTIVE')<br />
OR department_id IS NULL)<br />
ORDER BY 4 DESC;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, first_name, job_id, hire_date<br />
FROM employees e<br />
WHERE hire_date > (SELECT MAX(hire_date)<br />
FROM employees<br />
WHERE department_id = (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'IT'<br />
)<br />
)<br />
AND (department_id <> (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) ='EXECUTIVE')<br />
OR department_id IS NULL)<br />
ORDER BY hire_date DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, first_name, job_id, hire_date<br />
from employees<br />
where hire_date > (select max(hire_date)<br />
from employees<br />
where department_id = (select department_id<br />
from departments<br />
where upper(department_name) = 'IT'))<br />
and (department_id != (select department_id<br />
from departments<br />
where upper(department_name) = 'EXECUTIVE')<br />
or department_id IS NULL)<br />
order by hire_date desc;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT last_name, first_name, job_id, hire_date<br />
FROM employees<br />
WHERE hire_date ><br />
(SELECT MAX(hire_date)<br />
FROM employees<br />
WHERE department_id =<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'IT'))<br />
AND (department_id !=<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'EXECUTIVE')<br />
OR department_id IS NULL)<br />
ORDER BY hire_date DESC;<br />
</pre><br />
<br />
===7.===<br />
''YuJin''<br />
<pre><br />
SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay",<br />
MIN(salary) "Lowest Dept/Job Pay"<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%VP'<br />
AND department_id NOT IN<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) IN ('IT','SALES'))<br />
GROUP BY department_id, job_id<br />
HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
ORDER BY 1, 2;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay", MIN(salary) "Lowest Dept/Job Pay"<br />
FROM employees<br />
WHERE department_id <> ALL (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) IN ('IT','SALES')<br />
)<br />
AND job_id NOT LIKE '%VP'<br />
GROUP BY department_id, job_id<br />
HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
ORDER BY department_id, job_id<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select department_id, job_id, avg(salary) "Average Dept/Job Pay", min(salary) "Lowest Dept/Job Pay"<br />
from employees<br />
where upper(job_id) not like '%VP'<br />
and department_id != all(select department_id<br />
from departments<br />
where upper(department_name) in ('IT','SALES'))<br />
group by department_id, job_id<br />
having min(salary) between 5000 and 15000<br />
order by department_id, job_id<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay",<br />
MIN(salary) "Lowest Dept/Job Pay"<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%VP'<br />
AND department_id != ALL<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) IN ('IT','SALES'))<br />
GROUP BY department_id, job_id<br />
HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
ORDER BY department_id, job_id;<br />
</pre><br />
<br />
===8.===<br />
''YuJin''<br />
<pre><br />
SELECT department_id, department_name,<br />
RPAD(TRIM(NVL(city, 'Not Assinged Yet')), 25, ' ') "City",<br />
COUNT(DISTINCT job_id) "# of Jobs"<br />
FROM employees<br />
RIGHT OUTER JOIN departments USING (department_id)<br />
LEFT OUTER JOIN locations USING (location_id)<br />
GROUP BY department_id, department_name, city;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT department_id, department_name, SUBSTR(NVL(city,'Not Assigned Yet'),1,25) City,<br />
COUNT(DISTINCT job_id) "# of Jobs"<br />
FROM locations l RIGHT OUTER JOIN departments d<br />
USING (location_id)<br />
LEFT OUTER JOIN employees e<br />
USING (department_id)<br />
GROUP BY department_id, department_name, city<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select department_id, department_name, substr(nvl(city,'Not Assigned Yet'),1,25) City,<br />
count(distinct job_id) "# of Jobs"<br />
from employees right outer join departments<br />
using (department_id)<br />
left outer join locations<br />
using (location_id)<br />
group by department_id, department_name, city<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT department_id, department_name,<br />
SUBSTR(NVL(city, 'Not Assinged Yet'),1, 25) "City",<br />
COUNT(DISTINCT job_id) "# of Jobs"<br />
FROM employees<br />
RIGHT OUTER JOIN departments USING (department_id)<br />
LEFT OUTER JOIN locations USING (location_id)<br />
GROUP BY department_id, department_name, city;<br />
<br />
</pre></div>
Yujin.jeong
https://wiki.cdot.senecacollege.ca/w/index.php?title=J.Y.S&diff=50970
J.Y.S
2010-11-30T20:14:24Z
<p>Yujin.jeong: /* DML Statements (INSERT INTO) */</p>
<hr />
<div>This page is to efficiently manage our group assignments!<br />
== Member List == <br />
*[mailto:,,yjeong@learn.senecac.on.ca,?subject=dbs301 Email All]<br />
<br />
{| class="wikitable sortable" border="1" cellpadding="5"<br />
! First Name !! Last Name !! wiki id !! Learn e-mail !! Phone<br />
|-<br />
|[[User:Yujin.jeong | YuJin]]||Jeong||[[Special:Contributions/yujin.jeong | yujin.jeong]]||[mailto:yjeong@learn.senecac.on.ca?sujbect=dbs301 yjeong]|| 647 - 832 - 6771<br />
|-<br />
<br />
|-<br />
|Saad|| || || ||<br />
|-<br />
<br />
|-<br />
|James|| || || ||<br />
|-<br />
|}<br />
<br />
=Assignment 3 (worth 9%)=<br />
==Due Date==<br />
Thursday, December 2nd, 3:00pm<br />
Printout of all TIC charts and DDL / DML statements<br />
<br />
==Solution==<br />
==== DDL Statements (CREATE TABLE) ====<br />
1. AREA<br />
<pre><br />
CREATE TABLE AREA<br />
(<br />
AreaID NUMBER(4) CONSTRAINT area_areaid_pk PRIMARY KEY,<br />
AreaName VARCHAR2(30) NOT NULL CONSTRAINT area_areaname_uk UNIQUE,<br />
ElmSchool VARCHAR2(40),<br />
MidSchool VARCHAR2(40),<br />
HighSchool VARCHAR2(40),<br />
Comments VARCHAR2(100)<br />
);<br />
</pre><br />
2. AGENCY<br />
<pre><br />
CREATE TABLE AGENCY<br />
(<br />
AgencyID NUMBER(4) CONSTRAINT agency_agencyid_pk PRIMARY KEY,<br />
AgencyName VARCHAR2(40) NOT NULL CONSTRAINT agency_agencyname_uk UNIQUE,<br />
AgencyPhone VARCHAR2(15) NOT NULL CONSTRAINT agency_agencyphone_uk UNIQUE<br />
);<br />
</pre><br />
3. PROPERTY<br />
<pre><br />
CREATE TABLE PROPERTY<br />
(<br />
PropertyID NUMBER(6),<br />
Street VARCHAR2(40) NOT NULL,<br />
City VARCHAR2(30) NOT NULL,<br />
Province CHAR(2) NOT NULL,<br />
PostalCode CHAR(6) NOT NULL,<br />
Bedrooms NUMBER(1) NOT NULL,<br />
Bathrooms NUMBER(1) NOT NULL,<br />
ListingPrice NUMBER(6) NOT NULL,<br />
AreaID NUMBER(4) NOT NULL,<br />
CONSTRAINT property_propertyid_pk PRIMARY KEY(PropertyID),<br />
CONSTRAINT property_bedrooms_ck CHECK(Bedrooms BETWEEN 1 AND 9),<br />
CONSTRAINT property_bathrooms_ck CHECK(Bathrooms BETWEEN 1 AND 9),<br />
CONSTRAINT property_listingprice_ck CHECK(ListingPrice BETWEEN 1 AND 4999999),<br />
CONSTRAINT property_areaid_fk FOREIGN KEY(AreaID) REFERENCES AREA(AreaID)<br />
);<br />
</pre><br />
4. SINGLE<br />
<pre><br />
CREATE TABLE SINGLE<br />
(<br />
PropertyID NUMBER(6), <br />
LotSize NUMBER(8,2) NOT NULL,<br />
CONSTRAINT single_propertyID_pk PRIMARY KEY(PropertyID), <br />
CONSTRAINT single_propertyID_fk FOREIGN KEY(PropertyID) REFERENCES PROPERTY(PropertyID),<br />
CONSTRAINT single_lotsize_ck CHECK(LotSize > 0)<br />
);<br />
<br />
</pre><br />
5. CONDO<br />
<pre><br />
CREATE TABLE CONDO<br />
(<br />
PropertyID NUMBER(6),<br />
Fee NUMBER(8,2) NOT NULL, <br />
CONSTRAINT condo_propertyID_pk PRIMARY KEY(PropertyID),<br />
CONSTRAINT condo_propertyID_fk FOREIGN KEY(PropertyID) REFERENCES PROPERTY(PropertyID),<br />
CONSTRAINT condo_fee_ck CHECK(Fee > 0)<br />
);<br />
<br />
</pre><br />
6. OUTLET<br />
<pre><br />
CREATE TABLE OUTLET<br />
(<br />
OutletID NUMBER(4), <br />
OutletName VARCHAR2(40) NOT NULL,<br />
OutletPhone VARCHAR2(15) NOT NULL,<br />
OutletType CHAR(1) NOT NULL,<br />
CONSTRAINT outlet_outletid_pk PRIMARY KEY(OutletID),<br />
CONSTRAINT outlet_outlettype_ck CHECK(OutletType IN('N','M','W','F')),<br />
CONSTRAINT outlet_outletname_type_uk UNIQUE(OutletName, OutletType)<br />
);<br />
<br />
</pre><br />
7. ADVERTISEMENT<br />
<pre><br />
CREATE TABLE ADVERTISEMENT<br />
(<br />
PropertyID NUMBER(6),<br />
OutletID NUMBER(4),<br />
AdvDate DATE,<br />
AdvCost NUMBER(6) NOT NULL,<br />
CONSTRAINT ad_adid_pk PRIMARY KEY(PropertyID, OutletID),<br />
CONSTRAINT ad_propertyid_fk FOREIGN KEY(PropertyID) REFERENCES PROPERTY(PropertyID),<br />
CONSTRAINT ad_outletid_fk FOREIGN KEY(OutletID) REFERENCES OUTLET(OutletID),<br />
CONSTRAINT ad_advcost_ck CHECK(AdvCost > 0)<br />
);<br />
</pre><br />
8. CLIENT<br />
<pre><br />
CREATE TABLE CLIENT<br />
(<br />
ClientID NUMBER(6),<br />
Fname VARCHAR2(30) NOT NULL,<br />
Lname VARCHAR2(30) NOT NULL,<br />
Phone VARCHAR2(15) NOT NULL,<br />
Email VARCHAR2(40),<br />
RefID NUMBER(6),<br />
CONSTRAINT client_clientid_pk PRIMARY KEY(ClientID),<br />
CONSTRAINT client_phone_uk UNIQUE(Phone),<br />
CONSTRAINT client_email_uk UNIQUE(Email),<br />
CONSTRAINT client_refid_fk FOREIGN KEY(RefID) REFERENCES CLIENT(ClientID)<br />
);<br />
</pre><br />
9. DEED<br />
<pre><br />
CREATE TABLE DEED<br />
(<br />
PropertyID NUMBER(6),<br />
SellerID NUMBER(6),<br />
OwnPct NUMBER(5,2) NOT NULL,<br />
BuyerID NUMBER(6),<br />
BuyPrice NUMBER(7),<br />
CONSTRAINT deed_deedid_pk PRIMARY KEY(PropertyID, SellerID),<br />
CONSTRAINT deed_propertyid_fk FOREIGN KEY(PropertyID) REFERENCES PROPERTY(PropertyID),<br />
CONSTRAINT deed_sellerid_fk FOREIGN KEY(SellerID) REFERENCES CLIENT(ClientID),<br />
CONSTRAINT deed_buyerid_fk FOREIGN KEY(BuyerID) REFERENCES CLIENT(ClientID),<br />
CONSTRAINT deed_ownpct_ck CHECK(OwnPct > 0 AND OwnPct <= 100),<br />
CONSTRAINT deed_buyprice_ck CHECK(BuyPrice BETWEEN 1 AND 4999999)<br />
);<br />
<br />
</pre><br />
<br />
==== DML Statements (INSERT INTO) ====<br />
<br />
1. AREA<BR><br />
<pre><br />
INSERT ALL<br />
INTO AREA VALUES(1001, 'Bayview Village', 'Adrienne Clarkson Public School', 'Amesbury Middle School', 'Bayview Secondary School', 'Upper middle class to upper class neighborhood in Toronto.')<br />
INTO AREA VALUES(3001,'Laurelwood', 'Elizabeth Ziegler Primary School','Waterloo Middle School','Saint David Catholic Secondary School','Close to University of Waterloo and many popular amenities.')<br />
INTO AREA VALUES(4001,'Silver Heights','Alison Park Primary School','Eastwood Middle School','King Edward Secondary School',null)<br />
INTO AREA VALUES(5001,'Kitsilano','Henry Hudson Elementary School','St George School','Kitsilano Secondary School','Very well-off area.')<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
<br />
2. AGENCY<BR><br />
<pre><br />
INSERT ALL<br />
INTO VALUES(1055,'Sutton Group Regal Realty','416.875.9873')<br />
INTO VALUES(3079,'MacDonald Realty','604.986.0231')<br />
INTO VALUES(7024,'Royal LePage Groupe Newton','514.234.9283')<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
<br />
3. PROPERTY<BR><br />
<pre><br />
INSERT ALL<br />
INTO VALUES(134982,'27 King's College Circle','Toronto','ON','M5S1A1',2,2,380000,1001,1055)<br />
INTO VALUES(149800','17 Pleasant View Dr.','Toronto','ON','M2J2H1',3,2,470000,1001)<br />
INTO VALUES(152932,'17 Barberry Pl. #1313','Toronto','ON','M8W7V4,1,1,259888,1001)<br />
INTO VALUES(495820,'776 Laurelwood Dr.','Waterloo','ON','H3A2T5',2,2,295000,3001,3079)<br />
INTO VALUES(500211,'409 Kelso Cr.','Cambridge','ON','H3Y7S3',3,2,485000,4001)<br />
INTO VALUES(139204,'3043 Crown St.','Vancouver','BC','U3J3M6',5,3,1398000,5001,7024)<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
4. SINGLE<BR><br />
<pre><br />
INSERT ALL<br />
INTO VALUES(134982,3716)<br />
INTO VALUES(149800,1005)<br />
INTO VALUES(139204,5400)<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
5. CONDO<BR><br />
<pre><br />
INSERT ALL<br />
INTO VALUES(152932,250)<br />
INTO VALUES(495820,320)<br />
INTO VALUES(500211,550)<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
6. OUTLET<BR><br />
<pre><br />
INSERT ALL<br />
INTO VALUES(1000,'Toronto Star','416.923.1782','N')<br />
INTO VALUES(2001,'Waterloo Living','519.098.9283','M')<br />
INTO VALUES(8001,'Canadian Life','416.982.0192','W')<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
7. ADVERTISEMENT<BR><br />
<pre><br />
INSERT ALL<br />
INTO VALUES(134982,1000,'25-NOV-10',350)<br />
INTO VALUES(149800,1000,'27-NOV-10',250)<br />
INTO VALUES(495820,2001,'27-NOV-10',300)<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
8. CLIENT<BR><br />
<pre><br />
INSERT ALL<br />
INTO VALUES(1010,'Andrew','Lee','647.978.0192','andrew11@hotmail.com')<br />
INTO VALUES(1011,'Daniel','Smith','416.895.9762','dsmith@gmail.com',5010)<br />
INTO VALUES(1012,'Olivia','Wilson','647.915.2738','oliviaorange@gmail.com')<br />
INTO VALUES(1013,'Jayden','Martin','519.225.1928','jmartin@rogers.com')<br />
INTO VALUES(1014,'Maria','Brown','416.182.0021','maria.brown@hotmail.com')<br />
INTO VALUES(2010,'Ethan','Roy','226.289.0394','ethanrockstar@bell.com')<br />
INTO VALUES(2011,'Sophia','Tremblay','647.297.2918','stremblay@gmail.com',5010)<br />
INTO VALUES(3010,'Ryan,Wilson','604.837.1029','wilsonryan@gmail.com')<br />
INTO VALUES(3012,'Luis','Jones','416.832.6771','luis7787@rogers.com')<br />
INTO VALUES(5010,'Mary','Anderson','647.234.5690','andersonpink@gmail.com')<br />
INTO VALUES(7010,'James','White','647.298.9182','james.white@bell.com',1010)<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
9. DEED<BR><br />
<pre><br />
INSERT ALL<br />
INTO VALUES(149800,1010,75,5010,352300)<br />
INTO VALUES(139204,1012,100,3010,1394000)<br />
INTO VALUES(134982,2011,50,1014,200000)<br />
SELECT * FROM DUAL;<br />
</pre><br />
<br />
==== CREATE VIEW ====<br />
<pre><br />
CREATE VIEW PropAreaLocSeller_VU AS<br />
SELECT (a.AreaName || ', ' || p.City || ', ' || p.Street || ', ' || p.PostalCode) "Property Location",<br />
TO_CHAR(p.ListingPrice,'$9,999,999'), sgl.LotSize || ' sqft' LotSize, s.Lname || ', ' || s.Fname, s.phone, d.OwnPct, NVL(ag.AgencyName, 'No Agency')<br />
FROM Property p<br />
JOIN Single sgl ON (p.PropertyID = sgl.PropertyID)<br />
JOIN Area ar ON (p.AreaID = a.AreaID)<br />
JOIN Agency ag ON (p.AgencyID = ag.AgencyID)<br />
JOIN Deed d ON (p.PropertyID = d.PropertyID)<br />
JOIN Client s ON (d.SellerID = s.ClientID)<br />
</pre><br />
<br />
Not Too sure if this will work out<br />
<br />
=Assignment 1=<br />
==Due Date==<br />
Thursday, October 21st, 4:00pm<br />
Printout submission only( SELECT Statements + ALL outputs)<br />
==Description==<br />
[https://cs.senecac.on.ca/~nconkic/assign1.doc Assignment1]<br />
==Solution==<br />
<pre><br />
SQL> SELECT employee_id, RPAD(CONCAT(CONCAT(last_name, ', '),first_name), 25) "Full Name",<br />
<br />
2 job_id,<br />
<br />
3 TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
<br />
4 "Start Date"<br />
<br />
5 FROM employees<br />
<br />
6 WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
<br />
7 ORDER BY 4 DESC;<br />
<br />
<br />
<br />
EMPLOYEE_ID Full Name JOB_ID Start Date <br />
<br />
----------- ------------------------- ---------- ----------------------------------------- <br />
<br />
124 Mourgos, Kevin ST_MAN November First in the year 1999 <br />
<br />
178 Grant, Kimberely SA_REP May First in the year 1999 <br />
<br />
174 Abel, Ellen SA_REP May First in the year 1996 <br />
<br />
104 Ernst, Bruce IT_PROG May First in the year 1991 <br />
<br />
<br />
<br />
SQL> SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
<br />
2 || job_id || ' will have a new salary of $' || salary * 1.15 "Happy Employees"<br />
<br />
3 FROM employees<br />
<br />
4 WHERE salary BETWEEN 5000 AND 12000<br />
<br />
5 AND job_id IN ('IT_PROG', 'ST_CLERK')<br />
<br />
6 ORDER BY employee_id;<br />
<br />
<br />
<br />
Happy Employees <br />
<br />
----------------------------------------------------------------------------------------------------<br />
<br />
Employee named Alexander Hunold who is IT_PROG will have a new salary of $10350 <br />
<br />
Employee named Bruce Ernst who is IT_PROG will have a new salary of $6900 <br />
<br />
<br />
<br />
SQL> SELECT last_name, salary, job_id,<br />
<br />
2 RPAD(NVL(TO_CHAR(manager_id), 'No Manager'), 10) "Manager #",<br />
<br />
3 LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
<br />
4 FROM employees<br />
<br />
5 WHERE (job_id LIKE 'MK%' OR manager_id IS NULL)<br />
<br />
6 AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
<br />
7 ORDER BY 2 DESC;<br />
<br />
<br />
<br />
LAST_NAME SALARY JOB_ID Manager # Total Income <br />
<br />
------------------------- ---------- ---------- ---------- ------------ <br />
<br />
King 24000 AD_PRES No Manager $288,000 <br />
<br />
Hartstein 13000 MK_MAN 100 $156,000 <br />
<br />
<br />
<br />
SQL> SELECT RPAD(CONCAT(CONCAT(first_name,' '),last_name), 25) "Employee", job_id,<br />
<br />
2 LPAD(TRIM(TO_CHAR(salary, '$999,999')), 12, '=') "Salary", department_name<br />
<br />
3 FROM employees e JOIN departments d<br />
<br />
4 ON (e.department_id = d.department_id)<br />
<br />
5 WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
<br />
6 AND salary <<br />
<br />
7 (SELECT MAX(salary)<br />
<br />
8 FROM employees<br />
<br />
9 WHERE SUBSTR(job_id, 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
<br />
10 ORDER BY 1;<br />
<br />
<br />
<br />
Employee JOB_ID Salary DEPARTMENT_NAME <br />
<br />
------------------------- ---------- ------------ ------------------------------ <br />
<br />
Eleni Zlotkey SA_MAN =====$10,500 Sales <br />
<br />
Jonathon Taylor SA_REP ======$8,600 Sales <br />
<br />
Pat Fay MK_REP ======$6,000 Marketing <br />
<br />
<br />
<br />
SQL><br />
<br />
SQL> SELECT last_name, salary, job_id<br />
<br />
2 FROM employees<br />
<br />
3 WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
<br />
4 AND salary ><br />
<br />
5 (SELECT MAX(salary)<br />
<br />
6 FROM employees<br />
<br />
7 JOIN departments USING (department_id)<br />
<br />
8 JOIN locations USING (location_id)<br />
<br />
9 WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
<br />
<br />
LAST_NAME SALARY JOB_ID <br />
<br />
------------------------- ---------- ---------- <br />
<br />
Kochhar 17000 AD_VP <br />
<br />
De Haan 17000 AD_VP <br />
<br />
<br />
<br />
SQL> SELECT last_name, first_name, job_id, hire_date<br />
<br />
2 FROM employees<br />
<br />
3 WHERE hire_date ><br />
<br />
4 (SELECT MAX(hire_date)<br />
<br />
5 FROM employees<br />
<br />
6 WHERE department_id =<br />
<br />
7 (SELECT department_id<br />
<br />
8 FROM departments<br />
<br />
9 WHERE UPPER(department_name) = 'IT'))<br />
<br />
10 AND (department_id !=<br />
<br />
11 (SELECT department_id<br />
<br />
12 FROM departments<br />
<br />
13 WHERE UPPER(department_name) = 'EXECUTIVE')<br />
<br />
14 OR department_id IS NULL)<br />
<br />
15 ORDER BY 4 DESC;<br />
<br />
<br />
<br />
LAST_NAME FIRST_NAME JOB_ID HIRE_DATE <br />
<br />
------------------------- -------------------- ---------- --------- <br />
<br />
Zlotkey Eleni SA_MAN 29-JAN-00 <br />
<br />
Mourgos Kevin ST_MAN 16-NOV-99 <br />
<br />
Grant Kimberely SA_REP 24-MAY-99 <br />
<br />
<br />
<br />
SQL> SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay",<br />
<br />
2 MIN(salary) "Lowest Dept/Job Pay"<br />
<br />
3 FROM employees<br />
<br />
4 WHERE UPPER(job_id) NOT LIKE '%VP'<br />
<br />
5 AND department_id NOT IN<br />
<br />
6 (SELECT department_id<br />
<br />
7 FROM departments<br />
<br />
8 WHERE UPPER(department_name) IN ('IT','SALES'))<br />
<br />
9 GROUP BY department_id, job_id<br />
<br />
10 HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
<br />
11 ORDER BY 1, 2;<br />
<br />
<br />
<br />
DEPARTMENT_ID JOB_ID Average Dept/Job Pay Lowest Dept/Job Pay <br />
<br />
------------- ---------- -------------------- ------------------- <br />
<br />
20 MK_MAN 13000 13000 <br />
<br />
20 MK_REP 6000 6000 <br />
<br />
50 ST_MAN 5800 5800 <br />
<br />
110 AC_ACCOUNT 8300 8300 <br />
<br />
110 AC_MGR 12000 12000 <br />
<br />
<br />
<br />
SQL> SELECT department_id, department_name,<br />
<br />
2 RPAD(TRIM(NVL(city, 'Not Assinged Yet')), 25, ' ') "City",<br />
<br />
3 COUNT(DISTINCT job_id) "# of Jobs"<br />
<br />
4 FROM employees<br />
<br />
5 RIGHT OUTER JOIN departments USING (department_id)<br />
<br />
6 LEFT OUTER JOIN locations USING (location_id)<br />
<br />
7 GROUP BY department_id, department_name, city;<br />
<br />
<br />
<br />
DEPARTMENT_ID DEPARTMENT_NAME City # of Jobs <br />
<br />
------------- ------------------------------ ------------------------- ---------- <br />
<br />
110 Accounting Seattle 2 <br />
<br />
50 Shipping South San Francisco 2 <br />
<br />
80 Sales Oxford 2 <br />
<br />
10 Administration Seattle 1 <br />
<br />
190 Contracting Seattle 0 <br />
<br />
90 Executive Seattle 2 <br />
<br />
20 Marketing Toronto 2 <br />
<br />
60 IT Southlake 1 <br />
<br />
<br />
<br />
8 rows selected.<br />
<br />
<br />
<br />
SQL> spool off<br />
</pre><br />
==SQL Statements==<br />
===1.===<br />
''YuJin''<br />
<pre><br />
SELECT employee_id, RPAD(CONCAT(CONCAT(last_name, ', '),first_name), 25) "Full Name",<br />
job_id,<br />
TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
"Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
ORDER BY 4 DESC;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT employee_id,<br />
SUBSTR(last_name ||' '|| first_name, 1, 25) "Full Name",<br />
job_id,<br />
TO_CHAR(hire_date,'fmMonth "First in the year" YYYY') "Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date,'fmMON') IN ('MAY','NOV')<br />
ORDER BY hire_date DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select employee_id "Emp#",<br />
(last_name ||', '|| first_name) "Full Name",<br />
job_id "Job",<br />
to_char(trunc(hire_date, 'MONTH'), 'FMMonth Ddspth "in the year"<br />
YYYY') "Start Date"<br />
from employees<br />
where to_char(hire_date, 'fmMonth') in ('May', 'November')<br />
order by hire_date desc;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT employee_id, SUBSTR(last_name ||' '|| first_name, 1, 25) "Full Name",<br />
job_id,<br />
TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
"Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
ORDER BY hire_date DESC;<br />
</pre><br />
<br />
===2.===<br />
''YuJin''<br />
<pre><br />
SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
|| job_id || ' will have a new salary of $' || salary * 1.15 "Happy Employees"<br />
FROM employees<br />
WHERE salary BETWEEN 5000 AND 12000<br />
AND job_id IN ('IT_PROG', 'ST_CLERK')<br />
ORDER BY employee_id;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT 'Employee named '||first_name||' '||last_name||' who is '||job_id||' will have a new salary of $'|| salary *1.15 "Happy Employees"<br />
FROM employees<br />
WHERE job_id IN ('IT_PROG','ST CLERK')<br />
AND (salary BETWEEN 5000 AND 12000)<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
Select ('Employee named ' || first_name ||' '|| last_name || ' who is ' || job_id || ' will have a new salary of ' || (salary*1.15)) "Happy Employees"<br />
From employees<br />
Where salary between 5000 and 12000<br />
And upper(job_id) in ('IT_PROG', 'ST_CLERK')<br />
order by employee_id;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
|| job_id || ' will have a new salary of ' || TO_CHAR(salary * 1.15, 'fm$999999') "Happy Employees"<br />
FROM employees<br />
WHERE salary BETWEEN 5000 AND 12000<br />
AND UPPER(job_id) IN ('IT_PROG', 'ST_CLERK')<br />
ORDER BY employee_id;<br />
</pre><br />
<br />
===3.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, salary, job_id,<br />
RPAD(NVL(TO_CHAR(manager_id), 'No Manager'), 10) "Manager #",<br />
LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
FROM employees<br />
WHERE (job_id LIKE 'MK%' OR manager_id IS NULL)<br />
AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
ORDER BY 2 DESC;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, salary, job_id, NVL(TO_CHAR(manager_id),'No Manager') Manager#,<br />
TO_CHAR(salary*12,'$999,999') "Total Income"<br />
FROM employees<br />
WHERE (manager_id IS NULL<br />
OR job_id LIKE 'MK%')<br />
AND ( salary* (NVL(commission_pct,0) + 1) + 1000 ) > 10000<br />
ORDER BY salary DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, salary, job_id, nvl(to_char(manager_id),'No Manager') Manager#,<br />
to_char(salary*12,'$999,999') "Total Income"<br />
from employees<br />
where (upper(job_id) like 'MK%' or manager_id IS NULL)<br />
and salary * (1 + nvl(commission_pct, 0)) + 1000 > 10000<br />
order by 2 desc;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT last_name, salary, job_id,<br />
SUBSTR(NVL(TO_CHAR(manager_id), 'No Manager'), 1, 10) "Manager #",<br />
LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
FROM employees<br />
WHERE (UPPER(job_id) LIKE 'MK%' OR manager_id IS NULL)<br />
AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
ORDER BY salary DESC;<br />
<br />
</pre><br />
<br />
===4.===<br />
''YuJin''<br />
<pre><br />
SELECT RPAD(CONCAT(CONCAT(first_name,' '),last_name), 25) "Employee", job_id,<br />
LPAD(TRIM(TO_CHAR(salary, '$999,999')), 12, '=') "Salary", department_name<br />
FROM employees e JOIN departments d<br />
ON (e.department_id = d.department_id)<br />
WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
AND salary <<br />
(SELECT MAX(salary)<br />
FROM employees<br />
WHERE SUBSTR(job_id, 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
ORDER BY 1;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT SUBSTR(first_name||' '||last_name, 25) Employee, job_id,<br />
LPAD(TO_CHAR(salary,'$99,999'), 12, '=') Salary, department_name<br />
FROM employees e JOIN departments d<br />
ON (d.department_id=e.department_id)<br />
WHERE salary < (SELECT MAX(salary)<br />
FROM employees<br />
WHERE UPPER(SUBSTR(job_id,4)) NOT IN ('VP', 'PRES', 'MAN', 'MGR')<br />
)<br />
AND UPPER(department_name) IN ('MARKETING','SALES')<br />
ORDER BY first_name, last_name<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select substr(first_name ||' '|| last_name) "Employee", job_id, to_char(salary, '$999,999', 12, '=') Salary, department_name<br />
from employees e join departments d<br />
on (e.department_id = d.department_id)<br />
where upper(department_name) in ('MARKETING', 'SALES')<br />
and salary < (select max(salary)<br />
from employees<br />
where substr(job_id,4) not in ('PRES','VP','MAN','MGR'))<br />
order by "Employee";<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT SUBSTR(first_name ||' '|| last_name, 1, 25) "Employee", job_id,<br />
LPAD(TO_CHAR(salary, 'fm$999,999'), 12, '=') "Salary", department_name<br />
FROM employees e JOIN departments d<br />
ON (e.department_id = d.department_id)<br />
WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
AND salary <<br />
(SELECT MAX(salary)<br />
FROM employees<br />
WHERE SUBSTR(UPPER(job_id), 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
ORDER BY 1;<br />
</pre><br />
<br />
===5.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
AND salary ><br />
(SELECT MAX(salary)<br />
FROM employees<br />
JOIN departments USING (department_id)<br />
JOIN locations USING (location_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE salary > (SELECT MAX(salary)<br />
FROM locations JOIN departments<br />
USING (location_id)<br />
JOIN employees<br />
USING (department_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD')<br />
)<br />
AND UPPER(job_id) NOT LIKE '%PRES'<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, salary, job_id<br />
from employees<br />
where salary > (select max(salary)<br />
from employees join departments<br />
using (department_id)<br />
join locations<br />
using (location_id)<br />
where upper(city) in ('TORONTO','OXFORD'))<br />
and upper(job_id) not like '%PRES'<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
AND salary ><br />
(SELECT MAX(salary)<br />
FROM employees<br />
JOIN departments USING (department_id)<br />
JOIN locations USING (location_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
</pre><br />
<br />
===6.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, first_name, job_id, hire_date<br />
FROM employees<br />
WHERE hire_date ><br />
(SELECT MAX(hire_date)<br />
FROM employees<br />
WHERE department_id =<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'IT'))<br />
AND (department_id !=<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'EXECUTIVE')<br />
OR department_id IS NULL)<br />
ORDER BY 4 DESC;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, first_name, job_id, hire_date<br />
FROM employees e<br />
WHERE hire_date > (SELECT MAX(hire_date)<br />
FROM employees<br />
WHERE department_id = (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'IT'<br />
)<br />
)<br />
AND (department_id <> (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) ='EXECUTIVE')<br />
OR department_id IS NULL)<br />
ORDER BY hire_date DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, first_name, job_id, hire_date<br />
from employees<br />
where hire_date > (select max(hire_date)<br />
from employees<br />
where department_id = (select department_id<br />
from departments<br />
where upper(department_name) = 'IT'))<br />
and (department_id != (select department_id<br />
from departments<br />
where upper(department_name) = 'EXECUTIVE')<br />
or department_id IS NULL)<br />
order by hire_date desc;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT last_name, first_name, job_id, hire_date<br />
FROM employees<br />
WHERE hire_date ><br />
(SELECT MAX(hire_date)<br />
FROM employees<br />
WHERE department_id =<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'IT'))<br />
AND (department_id !=<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'EXECUTIVE')<br />
OR department_id IS NULL)<br />
ORDER BY hire_date DESC;<br />
</pre><br />
<br />
===7.===<br />
''YuJin''<br />
<pre><br />
SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay",<br />
MIN(salary) "Lowest Dept/Job Pay"<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%VP'<br />
AND department_id NOT IN<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) IN ('IT','SALES'))<br />
GROUP BY department_id, job_id<br />
HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
ORDER BY 1, 2;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay", MIN(salary) "Lowest Dept/Job Pay"<br />
FROM employees<br />
WHERE department_id <> ALL (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) IN ('IT','SALES')<br />
)<br />
AND job_id NOT LIKE '%VP'<br />
GROUP BY department_id, job_id<br />
HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
ORDER BY department_id, job_id<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select department_id, job_id, avg(salary) "Average Dept/Job Pay", min(salary) "Lowest Dept/Job Pay"<br />
from employees<br />
where upper(job_id) not like '%VP'<br />
and department_id != all(select department_id<br />
from departments<br />
where upper(department_name) in ('IT','SALES'))<br />
group by department_id, job_id<br />
having min(salary) between 5000 and 15000<br />
order by department_id, job_id<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay",<br />
MIN(salary) "Lowest Dept/Job Pay"<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%VP'<br />
AND department_id != ALL<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) IN ('IT','SALES'))<br />
GROUP BY department_id, job_id<br />
HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
ORDER BY department_id, job_id;<br />
</pre><br />
<br />
===8.===<br />
''YuJin''<br />
<pre><br />
SELECT department_id, department_name,<br />
RPAD(TRIM(NVL(city, 'Not Assinged Yet')), 25, ' ') "City",<br />
COUNT(DISTINCT job_id) "# of Jobs"<br />
FROM employees<br />
RIGHT OUTER JOIN departments USING (department_id)<br />
LEFT OUTER JOIN locations USING (location_id)<br />
GROUP BY department_id, department_name, city;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT department_id, department_name, SUBSTR(NVL(city,'Not Assigned Yet'),1,25) City,<br />
COUNT(DISTINCT job_id) "# of Jobs"<br />
FROM locations l RIGHT OUTER JOIN departments d<br />
USING (location_id)<br />
LEFT OUTER JOIN employees e<br />
USING (department_id)<br />
GROUP BY department_id, department_name, city<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select department_id, department_name, substr(nvl(city,'Not Assigned Yet'),1,25) City,<br />
count(distinct job_id) "# of Jobs"<br />
from employees right outer join departments<br />
using (department_id)<br />
left outer join locations<br />
using (location_id)<br />
group by department_id, department_name, city<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT department_id, department_name,<br />
SUBSTR(NVL(city, 'Not Assinged Yet'),1, 25) "City",<br />
COUNT(DISTINCT job_id) "# of Jobs"<br />
FROM employees<br />
RIGHT OUTER JOIN departments USING (department_id)<br />
LEFT OUTER JOIN locations USING (location_id)<br />
GROUP BY department_id, department_name, city;<br />
<br />
</pre></div>
Yujin.jeong
https://wiki.cdot.senecacollege.ca/w/index.php?title=J.Y.S&diff=50969
J.Y.S
2010-11-30T20:08:20Z
<p>Yujin.jeong: /* DML Statements (INSERT INTO) */</p>
<hr />
<div>This page is to efficiently manage our group assignments!<br />
== Member List == <br />
*[mailto:,,yjeong@learn.senecac.on.ca,?subject=dbs301 Email All]<br />
<br />
{| class="wikitable sortable" border="1" cellpadding="5"<br />
! First Name !! Last Name !! wiki id !! Learn e-mail !! Phone<br />
|-<br />
|[[User:Yujin.jeong | YuJin]]||Jeong||[[Special:Contributions/yujin.jeong | yujin.jeong]]||[mailto:yjeong@learn.senecac.on.ca?sujbect=dbs301 yjeong]|| 647 - 832 - 6771<br />
|-<br />
<br />
|-<br />
|Saad|| || || ||<br />
|-<br />
<br />
|-<br />
|James|| || || ||<br />
|-<br />
|}<br />
<br />
=Assignment 3 (worth 9%)=<br />
==Due Date==<br />
Thursday, December 2nd, 3:00pm<br />
Printout of all TIC charts and DDL / DML statements<br />
<br />
==Solution==<br />
==== DDL Statements (CREATE TABLE) ====<br />
1. AREA<br />
<pre><br />
CREATE TABLE AREA<br />
(<br />
AreaID NUMBER(4) CONSTRAINT area_areaid_pk PRIMARY KEY,<br />
AreaName VARCHAR2(30) NOT NULL CONSTRAINT area_areaname_uk UNIQUE,<br />
ElmSchool VARCHAR2(40),<br />
MidSchool VARCHAR2(40),<br />
HighSchool VARCHAR2(40),<br />
Comments VARCHAR2(100)<br />
);<br />
</pre><br />
2. AGENCY<br />
<pre><br />
CREATE TABLE AGENCY<br />
(<br />
AgencyID NUMBER(4) CONSTRAINT agency_agencyid_pk PRIMARY KEY,<br />
AgencyName VARCHAR2(40) NOT NULL CONSTRAINT agency_agencyname_uk UNIQUE,<br />
AgencyPhone VARCHAR2(15) NOT NULL CONSTRAINT agency_agencyphone_uk UNIQUE<br />
);<br />
</pre><br />
3. PROPERTY<br />
<pre><br />
CREATE TABLE PROPERTY<br />
(<br />
PropertyID NUMBER(6),<br />
Street VARCHAR2(40) NOT NULL,<br />
City VARCHAR2(30) NOT NULL,<br />
Province CHAR(2) NOT NULL,<br />
PostalCode CHAR(6) NOT NULL,<br />
Bedrooms NUMBER(1) NOT NULL,<br />
Bathrooms NUMBER(1) NOT NULL,<br />
ListingPrice NUMBER(6) NOT NULL,<br />
AreaID NUMBER(4) NOT NULL,<br />
CONSTRAINT property_propertyid_pk PRIMARY KEY(PropertyID),<br />
CONSTRAINT property_bedrooms_ck CHECK(Bedrooms BETWEEN 1 AND 9),<br />
CONSTRAINT property_bathrooms_ck CHECK(Bathrooms BETWEEN 1 AND 9),<br />
CONSTRAINT property_listingprice_ck CHECK(ListingPrice BETWEEN 1 AND 4999999),<br />
CONSTRAINT property_areaid_fk FOREIGN KEY(AreaID) REFERENCES AREA(AreaID)<br />
);<br />
</pre><br />
4. SINGLE<br />
<pre><br />
CREATE TABLE SINGLE<br />
(<br />
PropertyID NUMBER(6), <br />
LotSize NUMBER(8,2) NOT NULL,<br />
CONSTRAINT single_propertyID_pk PRIMARY KEY(PropertyID), <br />
CONSTRAINT single_propertyID_fk FOREIGN KEY(PropertyID) REFERENCES PROPERTY(PropertyID),<br />
CONSTRAINT single_lotsize_ck CHECK(LotSize > 0)<br />
);<br />
<br />
</pre><br />
5. CONDO<br />
<pre><br />
CREATE TABLE CONDO<br />
(<br />
PropertyID NUMBER(6),<br />
Fee NUMBER(8,2) NOT NULL, <br />
CONSTRAINT condo_propertyID_pk PRIMARY KEY(PropertyID),<br />
CONSTRAINT condo_propertyID_fk FOREIGN KEY(PropertyID) REFERENCES PROPERTY(PropertyID),<br />
CONSTRAINT condo_fee_ck CHECK(Fee > 0)<br />
);<br />
<br />
</pre><br />
6. OUTLET<br />
<pre><br />
CREATE TABLE OUTLET<br />
(<br />
OutletID NUMBER(4), <br />
OutletName VARCHAR2(40) NOT NULL,<br />
OutletPhone VARCHAR2(15) NOT NULL,<br />
OutletType CHAR(1) NOT NULL,<br />
CONSTRAINT outlet_outletid_pk PRIMARY KEY(OutletID),<br />
CONSTRAINT outlet_outlettype_ck CHECK(OutletType IN('N','M','W','F')),<br />
CONSTRAINT outlet_outletname_type_uk UNIQUE(OutletName, OutletType)<br />
);<br />
<br />
</pre><br />
7. ADVERTISEMENT<br />
<pre><br />
CREATE TABLE ADVERTISEMENT<br />
(<br />
PropertyID NUMBER(6),<br />
OutletID NUMBER(4),<br />
AdvDate DATE,<br />
AdvCost NUMBER(6) NOT NULL,<br />
CONSTRAINT ad_adid_pk PRIMARY KEY(PropertyID, OutletID),<br />
CONSTRAINT ad_propertyid_fk FOREIGN KEY(PropertyID) REFERENCES PROPERTY(PropertyID),<br />
CONSTRAINT ad_outletid_fk FOREIGN KEY(OutletID) REFERENCES OUTLET(OutletID),<br />
CONSTRAINT ad_advcost_ck CHECK(AdvCost > 0)<br />
);<br />
</pre><br />
8. CLIENT<br />
<pre><br />
CREATE TABLE CLIENT<br />
(<br />
ClientID NUMBER(6),<br />
Fname VARCHAR2(30) NOT NULL,<br />
Lname VARCHAR2(30) NOT NULL,<br />
Phone VARCHAR2(15) NOT NULL,<br />
Email VARCHAR2(40),<br />
RefID NUMBER(6),<br />
CONSTRAINT client_clientid_pk PRIMARY KEY(ClientID),<br />
CONSTRAINT client_phone_uk UNIQUE(Phone),<br />
CONSTRAINT client_email_uk UNIQUE(Email),<br />
CONSTRAINT client_refid_fk FOREIGN KEY(RefID) REFERENCES CLIENT(ClientID)<br />
);<br />
</pre><br />
9. DEED<br />
<pre><br />
CREATE TABLE DEED<br />
(<br />
PropertyID NUMBER(6),<br />
SellerID NUMBER(6),<br />
OwnPct NUMBER(5,2) NOT NULL,<br />
BuyerID NUMBER(6),<br />
BuyPrice NUMBER(7),<br />
CONSTRAINT deed_deedid_pk PRIMARY KEY(PropertyID, SellerID),<br />
CONSTRAINT deed_propertyid_fk FOREIGN KEY(PropertyID) REFERENCES PROPERTY(PropertyID),<br />
CONSTRAINT deed_sellerid_fk FOREIGN KEY(SellerID) REFERENCES CLIENT(ClientID),<br />
CONSTRAINT deed_buyerid_fk FOREIGN KEY(BuyerID) REFERENCES CLIENT(ClientID),<br />
CONSTRAINT deed_ownpct_ck CHECK(OwnPct > 0 AND OwnPct <= 100),<br />
CONSTRAINT deed_buyprice_ck CHECK(BuyPrice BETWEEN 1 AND 4999999)<br />
);<br />
<br />
</pre><br />
<br />
==== DML Statements (INSERT INTO) ====<br />
<br />
1. AREA<BR><br />
<pre><br />
INSERT ALL<br />
INTO AREA VALUES(1001, 'Bayview Village', 'Adrienne Clarkson Public School', 'Amesbury Middle School', 'Bayview Secondary School', 'Upper middle class to upper class neighborhood in Toronto.')<br />
INTO AREA VALUES(3001,'Laurelwood Elizabeth Ziegler Primary School','Waterloo Middle School','Saint David Catholic Secondary School','Close to University of Waterloo and many popular amenities.')<br />
INTO AREA VALUES(4001,'Silver Heights','Alison Park Primary School','Eastwood Middle School','King Edward Secondary School',null)<br />
INTO AREA VALUES(5001,'Kitsilano','Henry Hudson Elementary School','St George School','Kitsilano Secondary School','Very well-off area.')<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
<br />
2. AGENCY<BR><br />
<pre><br />
INSERT ALL<br />
INTO VALUES(1055,'Sutton Group Regal Realty','416.875.9873')<br />
INTO VALUES(3079,'MacDonald Realty','604.986.0231')<br />
INTO VALUES(7024,'Royal LePage Groupe Newton','514.234.9283')<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
<br />
3. PROPERTY<BR><br />
<pre><br />
INSERT ALL<br />
INTO VALUES(134982,'27 King's College Circle','Toronto','ON','M5S1A1',2,2,380000,1001,1055)<br />
INTO VALUES(149800','17 Pleasant View Dr.','Toronto','ON','M2J2H1',3,2,470000,1001)<br />
INTO VALUES(152932,'17 Barberry Pl. #1313','Toronto','ON','M8W7V4,1,1,259888,1001)<br />
INTO VALUES(495820,'776 Laurelwood Dr.','Waterloo','ON','H3A2T5',2,2,295000,3001,3079)<br />
INTO VALUES(500211,'409 Kelso Cr.','Cambridge','ON','H3Y7S3',3,2,485000,4001)<br />
INTO VALUES(139204,'3043 Crown St.','Vancouver','BC','U3J3M6',5,3,1398000,5001,7024)<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
4. SINGLE<BR><br />
<pre><br />
INSERT ALL<br />
INTO VALUES(134982,3716)<br />
INTO VALUES(149800,1005)<br />
INTO VALUES(139204,5400)<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
5. CONDO<BR><br />
<pre><br />
INSERT ALL<br />
INTO VALUES(152932,250)<br />
INTO VALUES(495820,320)<br />
INTO VALUES(500211,550)<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
6. OUTLET<BR><br />
<pre><br />
INSERT ALL<br />
INTO VALUES(1000,'Toronto Star','416.923.1782','N')<br />
INTO VALUES(2001,'Waterloo Living','519.098.9283','M')<br />
INTO VALUES(8001,'Canadian Life','416.982.0192','W')<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
7. ADVERTISEMENT<BR><br />
<pre><br />
INSERT ALL<br />
INTO VALUES(134982,1000,'25-NOV-10',350)<br />
INTO VALUES(149800,1000,'27-NOV-10',250)<br />
INTO VALUES(495820,2001,'27-NOV-10',300)<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
8. CLIENT<BR><br />
<pre><br />
INSERT ALL<br />
INTO VALUES(1010,'Andrew','Lee','647.978.0192','andrew11@hotmail.com')<br />
INTO VALUES(1011,'Daniel','Smith','416.895.9762','dsmith@gmail.com',5010)<br />
INTO VALUES(1012,'Olivia','Wilson','647.915.2738','oliviaorange@gmail.com')<br />
INTO VALUES(1013,'Jayden','Martin','519.225.1928','jmartin@rogers.com')<br />
INTO VALUES(1014,'Maria','Brown','416.182.0021','maria.brown@hotmail.com')<br />
INTO VALUES(2010,'Ethan','Roy','226.289.0394','ethanrockstar@bell.com')<br />
INTO VALUES(2011,'Sophia','Tremblay','647.297.2918','stremblay@gmail.com',5010)<br />
INTO VALUES(3010,'Ryan,Wilson','604.837.1029','wilsonryan@gmail.com')<br />
INTO VALUES(3012,'Luis','Jones','416.832.6771','luis7787@rogers.com')<br />
INTO VALUES(5010,'Mary','Anderson','647.234.5690','andersonpink@gmail.com')<br />
INTO VALUES(7010,'James','White','647.298.9182','james.white@bell.com',1010)<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
9. DEED<BR><br />
<pre><br />
INSERT ALL<br />
INTO VALUES(149800,1010,75,5010,352300)<br />
INTO VALUES(139204,1012,100,3010,1394000)<br />
INTO VALUES(134982,2011,50,1014,200000)<br />
SELECT * FROM DUAL;<br />
</pre><br />
<br />
==== CREATE VIEW ====<br />
<pre><br />
CREATE VIEW PropAreaLocSeller_VU AS<br />
SELECT (a.AreaName || ', ' || p.City || ', ' || p.Street || ', ' || p.PostalCode) "Property Location",<br />
TO_CHAR(p.ListingPrice,'$9,999,999'), sgl.LotSize || ' sqft' LotSize, s.Lname || ', ' || s.Fname, s.phone, d.OwnPct, NVL(ag.AgencyName, 'No Agency')<br />
FROM Property p<br />
JOIN Single sgl ON (p.PropertyID = sgl.PropertyID)<br />
JOIN Area ar ON (p.AreaID = a.AreaID)<br />
JOIN Agency ag ON (p.AgencyID = ag.AgencyID)<br />
JOIN Deed d ON (p.PropertyID = d.PropertyID)<br />
JOIN Client s ON (d.SellerID = s.ClientID)<br />
</pre><br />
<br />
Not Too sure if this will work out<br />
<br />
=Assignment 1=<br />
==Due Date==<br />
Thursday, October 21st, 4:00pm<br />
Printout submission only( SELECT Statements + ALL outputs)<br />
==Description==<br />
[https://cs.senecac.on.ca/~nconkic/assign1.doc Assignment1]<br />
==Solution==<br />
<pre><br />
SQL> SELECT employee_id, RPAD(CONCAT(CONCAT(last_name, ', '),first_name), 25) "Full Name",<br />
<br />
2 job_id,<br />
<br />
3 TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
<br />
4 "Start Date"<br />
<br />
5 FROM employees<br />
<br />
6 WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
<br />
7 ORDER BY 4 DESC;<br />
<br />
<br />
<br />
EMPLOYEE_ID Full Name JOB_ID Start Date <br />
<br />
----------- ------------------------- ---------- ----------------------------------------- <br />
<br />
124 Mourgos, Kevin ST_MAN November First in the year 1999 <br />
<br />
178 Grant, Kimberely SA_REP May First in the year 1999 <br />
<br />
174 Abel, Ellen SA_REP May First in the year 1996 <br />
<br />
104 Ernst, Bruce IT_PROG May First in the year 1991 <br />
<br />
<br />
<br />
SQL> SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
<br />
2 || job_id || ' will have a new salary of $' || salary * 1.15 "Happy Employees"<br />
<br />
3 FROM employees<br />
<br />
4 WHERE salary BETWEEN 5000 AND 12000<br />
<br />
5 AND job_id IN ('IT_PROG', 'ST_CLERK')<br />
<br />
6 ORDER BY employee_id;<br />
<br />
<br />
<br />
Happy Employees <br />
<br />
----------------------------------------------------------------------------------------------------<br />
<br />
Employee named Alexander Hunold who is IT_PROG will have a new salary of $10350 <br />
<br />
Employee named Bruce Ernst who is IT_PROG will have a new salary of $6900 <br />
<br />
<br />
<br />
SQL> SELECT last_name, salary, job_id,<br />
<br />
2 RPAD(NVL(TO_CHAR(manager_id), 'No Manager'), 10) "Manager #",<br />
<br />
3 LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
<br />
4 FROM employees<br />
<br />
5 WHERE (job_id LIKE 'MK%' OR manager_id IS NULL)<br />
<br />
6 AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
<br />
7 ORDER BY 2 DESC;<br />
<br />
<br />
<br />
LAST_NAME SALARY JOB_ID Manager # Total Income <br />
<br />
------------------------- ---------- ---------- ---------- ------------ <br />
<br />
King 24000 AD_PRES No Manager $288,000 <br />
<br />
Hartstein 13000 MK_MAN 100 $156,000 <br />
<br />
<br />
<br />
SQL> SELECT RPAD(CONCAT(CONCAT(first_name,' '),last_name), 25) "Employee", job_id,<br />
<br />
2 LPAD(TRIM(TO_CHAR(salary, '$999,999')), 12, '=') "Salary", department_name<br />
<br />
3 FROM employees e JOIN departments d<br />
<br />
4 ON (e.department_id = d.department_id)<br />
<br />
5 WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
<br />
6 AND salary <<br />
<br />
7 (SELECT MAX(salary)<br />
<br />
8 FROM employees<br />
<br />
9 WHERE SUBSTR(job_id, 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
<br />
10 ORDER BY 1;<br />
<br />
<br />
<br />
Employee JOB_ID Salary DEPARTMENT_NAME <br />
<br />
------------------------- ---------- ------------ ------------------------------ <br />
<br />
Eleni Zlotkey SA_MAN =====$10,500 Sales <br />
<br />
Jonathon Taylor SA_REP ======$8,600 Sales <br />
<br />
Pat Fay MK_REP ======$6,000 Marketing <br />
<br />
<br />
<br />
SQL><br />
<br />
SQL> SELECT last_name, salary, job_id<br />
<br />
2 FROM employees<br />
<br />
3 WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
<br />
4 AND salary ><br />
<br />
5 (SELECT MAX(salary)<br />
<br />
6 FROM employees<br />
<br />
7 JOIN departments USING (department_id)<br />
<br />
8 JOIN locations USING (location_id)<br />
<br />
9 WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
<br />
<br />
LAST_NAME SALARY JOB_ID <br />
<br />
------------------------- ---------- ---------- <br />
<br />
Kochhar 17000 AD_VP <br />
<br />
De Haan 17000 AD_VP <br />
<br />
<br />
<br />
SQL> SELECT last_name, first_name, job_id, hire_date<br />
<br />
2 FROM employees<br />
<br />
3 WHERE hire_date ><br />
<br />
4 (SELECT MAX(hire_date)<br />
<br />
5 FROM employees<br />
<br />
6 WHERE department_id =<br />
<br />
7 (SELECT department_id<br />
<br />
8 FROM departments<br />
<br />
9 WHERE UPPER(department_name) = 'IT'))<br />
<br />
10 AND (department_id !=<br />
<br />
11 (SELECT department_id<br />
<br />
12 FROM departments<br />
<br />
13 WHERE UPPER(department_name) = 'EXECUTIVE')<br />
<br />
14 OR department_id IS NULL)<br />
<br />
15 ORDER BY 4 DESC;<br />
<br />
<br />
<br />
LAST_NAME FIRST_NAME JOB_ID HIRE_DATE <br />
<br />
------------------------- -------------------- ---------- --------- <br />
<br />
Zlotkey Eleni SA_MAN 29-JAN-00 <br />
<br />
Mourgos Kevin ST_MAN 16-NOV-99 <br />
<br />
Grant Kimberely SA_REP 24-MAY-99 <br />
<br />
<br />
<br />
SQL> SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay",<br />
<br />
2 MIN(salary) "Lowest Dept/Job Pay"<br />
<br />
3 FROM employees<br />
<br />
4 WHERE UPPER(job_id) NOT LIKE '%VP'<br />
<br />
5 AND department_id NOT IN<br />
<br />
6 (SELECT department_id<br />
<br />
7 FROM departments<br />
<br />
8 WHERE UPPER(department_name) IN ('IT','SALES'))<br />
<br />
9 GROUP BY department_id, job_id<br />
<br />
10 HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
<br />
11 ORDER BY 1, 2;<br />
<br />
<br />
<br />
DEPARTMENT_ID JOB_ID Average Dept/Job Pay Lowest Dept/Job Pay <br />
<br />
------------- ---------- -------------------- ------------------- <br />
<br />
20 MK_MAN 13000 13000 <br />
<br />
20 MK_REP 6000 6000 <br />
<br />
50 ST_MAN 5800 5800 <br />
<br />
110 AC_ACCOUNT 8300 8300 <br />
<br />
110 AC_MGR 12000 12000 <br />
<br />
<br />
<br />
SQL> SELECT department_id, department_name,<br />
<br />
2 RPAD(TRIM(NVL(city, 'Not Assinged Yet')), 25, ' ') "City",<br />
<br />
3 COUNT(DISTINCT job_id) "# of Jobs"<br />
<br />
4 FROM employees<br />
<br />
5 RIGHT OUTER JOIN departments USING (department_id)<br />
<br />
6 LEFT OUTER JOIN locations USING (location_id)<br />
<br />
7 GROUP BY department_id, department_name, city;<br />
<br />
<br />
<br />
DEPARTMENT_ID DEPARTMENT_NAME City # of Jobs <br />
<br />
------------- ------------------------------ ------------------------- ---------- <br />
<br />
110 Accounting Seattle 2 <br />
<br />
50 Shipping South San Francisco 2 <br />
<br />
80 Sales Oxford 2 <br />
<br />
10 Administration Seattle 1 <br />
<br />
190 Contracting Seattle 0 <br />
<br />
90 Executive Seattle 2 <br />
<br />
20 Marketing Toronto 2 <br />
<br />
60 IT Southlake 1 <br />
<br />
<br />
<br />
8 rows selected.<br />
<br />
<br />
<br />
SQL> spool off<br />
</pre><br />
==SQL Statements==<br />
===1.===<br />
''YuJin''<br />
<pre><br />
SELECT employee_id, RPAD(CONCAT(CONCAT(last_name, ', '),first_name), 25) "Full Name",<br />
job_id,<br />
TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
"Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
ORDER BY 4 DESC;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT employee_id,<br />
SUBSTR(last_name ||' '|| first_name, 1, 25) "Full Name",<br />
job_id,<br />
TO_CHAR(hire_date,'fmMonth "First in the year" YYYY') "Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date,'fmMON') IN ('MAY','NOV')<br />
ORDER BY hire_date DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select employee_id "Emp#",<br />
(last_name ||', '|| first_name) "Full Name",<br />
job_id "Job",<br />
to_char(trunc(hire_date, 'MONTH'), 'FMMonth Ddspth "in the year"<br />
YYYY') "Start Date"<br />
from employees<br />
where to_char(hire_date, 'fmMonth') in ('May', 'November')<br />
order by hire_date desc;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT employee_id, SUBSTR(last_name ||' '|| first_name, 1, 25) "Full Name",<br />
job_id,<br />
TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
"Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
ORDER BY hire_date DESC;<br />
</pre><br />
<br />
===2.===<br />
''YuJin''<br />
<pre><br />
SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
|| job_id || ' will have a new salary of $' || salary * 1.15 "Happy Employees"<br />
FROM employees<br />
WHERE salary BETWEEN 5000 AND 12000<br />
AND job_id IN ('IT_PROG', 'ST_CLERK')<br />
ORDER BY employee_id;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT 'Employee named '||first_name||' '||last_name||' who is '||job_id||' will have a new salary of $'|| salary *1.15 "Happy Employees"<br />
FROM employees<br />
WHERE job_id IN ('IT_PROG','ST CLERK')<br />
AND (salary BETWEEN 5000 AND 12000)<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
Select ('Employee named ' || first_name ||' '|| last_name || ' who is ' || job_id || ' will have a new salary of ' || (salary*1.15)) "Happy Employees"<br />
From employees<br />
Where salary between 5000 and 12000<br />
And upper(job_id) in ('IT_PROG', 'ST_CLERK')<br />
order by employee_id;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
|| job_id || ' will have a new salary of ' || TO_CHAR(salary * 1.15, 'fm$999999') "Happy Employees"<br />
FROM employees<br />
WHERE salary BETWEEN 5000 AND 12000<br />
AND UPPER(job_id) IN ('IT_PROG', 'ST_CLERK')<br />
ORDER BY employee_id;<br />
</pre><br />
<br />
===3.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, salary, job_id,<br />
RPAD(NVL(TO_CHAR(manager_id), 'No Manager'), 10) "Manager #",<br />
LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
FROM employees<br />
WHERE (job_id LIKE 'MK%' OR manager_id IS NULL)<br />
AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
ORDER BY 2 DESC;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, salary, job_id, NVL(TO_CHAR(manager_id),'No Manager') Manager#,<br />
TO_CHAR(salary*12,'$999,999') "Total Income"<br />
FROM employees<br />
WHERE (manager_id IS NULL<br />
OR job_id LIKE 'MK%')<br />
AND ( salary* (NVL(commission_pct,0) + 1) + 1000 ) > 10000<br />
ORDER BY salary DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, salary, job_id, nvl(to_char(manager_id),'No Manager') Manager#,<br />
to_char(salary*12,'$999,999') "Total Income"<br />
from employees<br />
where (upper(job_id) like 'MK%' or manager_id IS NULL)<br />
and salary * (1 + nvl(commission_pct, 0)) + 1000 > 10000<br />
order by 2 desc;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT last_name, salary, job_id,<br />
SUBSTR(NVL(TO_CHAR(manager_id), 'No Manager'), 1, 10) "Manager #",<br />
LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
FROM employees<br />
WHERE (UPPER(job_id) LIKE 'MK%' OR manager_id IS NULL)<br />
AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
ORDER BY salary DESC;<br />
<br />
</pre><br />
<br />
===4.===<br />
''YuJin''<br />
<pre><br />
SELECT RPAD(CONCAT(CONCAT(first_name,' '),last_name), 25) "Employee", job_id,<br />
LPAD(TRIM(TO_CHAR(salary, '$999,999')), 12, '=') "Salary", department_name<br />
FROM employees e JOIN departments d<br />
ON (e.department_id = d.department_id)<br />
WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
AND salary <<br />
(SELECT MAX(salary)<br />
FROM employees<br />
WHERE SUBSTR(job_id, 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
ORDER BY 1;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT SUBSTR(first_name||' '||last_name, 25) Employee, job_id,<br />
LPAD(TO_CHAR(salary,'$99,999'), 12, '=') Salary, department_name<br />
FROM employees e JOIN departments d<br />
ON (d.department_id=e.department_id)<br />
WHERE salary < (SELECT MAX(salary)<br />
FROM employees<br />
WHERE UPPER(SUBSTR(job_id,4)) NOT IN ('VP', 'PRES', 'MAN', 'MGR')<br />
)<br />
AND UPPER(department_name) IN ('MARKETING','SALES')<br />
ORDER BY first_name, last_name<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select substr(first_name ||' '|| last_name) "Employee", job_id, to_char(salary, '$999,999', 12, '=') Salary, department_name<br />
from employees e join departments d<br />
on (e.department_id = d.department_id)<br />
where upper(department_name) in ('MARKETING', 'SALES')<br />
and salary < (select max(salary)<br />
from employees<br />
where substr(job_id,4) not in ('PRES','VP','MAN','MGR'))<br />
order by "Employee";<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT SUBSTR(first_name ||' '|| last_name, 1, 25) "Employee", job_id,<br />
LPAD(TO_CHAR(salary, 'fm$999,999'), 12, '=') "Salary", department_name<br />
FROM employees e JOIN departments d<br />
ON (e.department_id = d.department_id)<br />
WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
AND salary <<br />
(SELECT MAX(salary)<br />
FROM employees<br />
WHERE SUBSTR(UPPER(job_id), 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
ORDER BY 1;<br />
</pre><br />
<br />
===5.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
AND salary ><br />
(SELECT MAX(salary)<br />
FROM employees<br />
JOIN departments USING (department_id)<br />
JOIN locations USING (location_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE salary > (SELECT MAX(salary)<br />
FROM locations JOIN departments<br />
USING (location_id)<br />
JOIN employees<br />
USING (department_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD')<br />
)<br />
AND UPPER(job_id) NOT LIKE '%PRES'<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, salary, job_id<br />
from employees<br />
where salary > (select max(salary)<br />
from employees join departments<br />
using (department_id)<br />
join locations<br />
using (location_id)<br />
where upper(city) in ('TORONTO','OXFORD'))<br />
and upper(job_id) not like '%PRES'<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
AND salary ><br />
(SELECT MAX(salary)<br />
FROM employees<br />
JOIN departments USING (department_id)<br />
JOIN locations USING (location_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
</pre><br />
<br />
===6.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, first_name, job_id, hire_date<br />
FROM employees<br />
WHERE hire_date ><br />
(SELECT MAX(hire_date)<br />
FROM employees<br />
WHERE department_id =<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'IT'))<br />
AND (department_id !=<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'EXECUTIVE')<br />
OR department_id IS NULL)<br />
ORDER BY 4 DESC;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, first_name, job_id, hire_date<br />
FROM employees e<br />
WHERE hire_date > (SELECT MAX(hire_date)<br />
FROM employees<br />
WHERE department_id = (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'IT'<br />
)<br />
)<br />
AND (department_id <> (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) ='EXECUTIVE')<br />
OR department_id IS NULL)<br />
ORDER BY hire_date DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, first_name, job_id, hire_date<br />
from employees<br />
where hire_date > (select max(hire_date)<br />
from employees<br />
where department_id = (select department_id<br />
from departments<br />
where upper(department_name) = 'IT'))<br />
and (department_id != (select department_id<br />
from departments<br />
where upper(department_name) = 'EXECUTIVE')<br />
or department_id IS NULL)<br />
order by hire_date desc;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT last_name, first_name, job_id, hire_date<br />
FROM employees<br />
WHERE hire_date ><br />
(SELECT MAX(hire_date)<br />
FROM employees<br />
WHERE department_id =<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'IT'))<br />
AND (department_id !=<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'EXECUTIVE')<br />
OR department_id IS NULL)<br />
ORDER BY hire_date DESC;<br />
</pre><br />
<br />
===7.===<br />
''YuJin''<br />
<pre><br />
SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay",<br />
MIN(salary) "Lowest Dept/Job Pay"<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%VP'<br />
AND department_id NOT IN<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) IN ('IT','SALES'))<br />
GROUP BY department_id, job_id<br />
HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
ORDER BY 1, 2;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay", MIN(salary) "Lowest Dept/Job Pay"<br />
FROM employees<br />
WHERE department_id <> ALL (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) IN ('IT','SALES')<br />
)<br />
AND job_id NOT LIKE '%VP'<br />
GROUP BY department_id, job_id<br />
HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
ORDER BY department_id, job_id<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select department_id, job_id, avg(salary) "Average Dept/Job Pay", min(salary) "Lowest Dept/Job Pay"<br />
from employees<br />
where upper(job_id) not like '%VP'<br />
and department_id != all(select department_id<br />
from departments<br />
where upper(department_name) in ('IT','SALES'))<br />
group by department_id, job_id<br />
having min(salary) between 5000 and 15000<br />
order by department_id, job_id<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay",<br />
MIN(salary) "Lowest Dept/Job Pay"<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%VP'<br />
AND department_id != ALL<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) IN ('IT','SALES'))<br />
GROUP BY department_id, job_id<br />
HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
ORDER BY department_id, job_id;<br />
</pre><br />
<br />
===8.===<br />
''YuJin''<br />
<pre><br />
SELECT department_id, department_name,<br />
RPAD(TRIM(NVL(city, 'Not Assinged Yet')), 25, ' ') "City",<br />
COUNT(DISTINCT job_id) "# of Jobs"<br />
FROM employees<br />
RIGHT OUTER JOIN departments USING (department_id)<br />
LEFT OUTER JOIN locations USING (location_id)<br />
GROUP BY department_id, department_name, city;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT department_id, department_name, SUBSTR(NVL(city,'Not Assigned Yet'),1,25) City,<br />
COUNT(DISTINCT job_id) "# of Jobs"<br />
FROM locations l RIGHT OUTER JOIN departments d<br />
USING (location_id)<br />
LEFT OUTER JOIN employees e<br />
USING (department_id)<br />
GROUP BY department_id, department_name, city<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select department_id, department_name, substr(nvl(city,'Not Assigned Yet'),1,25) City,<br />
count(distinct job_id) "# of Jobs"<br />
from employees right outer join departments<br />
using (department_id)<br />
left outer join locations<br />
using (location_id)<br />
group by department_id, department_name, city<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT department_id, department_name,<br />
SUBSTR(NVL(city, 'Not Assinged Yet'),1, 25) "City",<br />
COUNT(DISTINCT job_id) "# of Jobs"<br />
FROM employees<br />
RIGHT OUTER JOIN departments USING (department_id)<br />
LEFT OUTER JOIN locations USING (location_id)<br />
GROUP BY department_id, department_name, city;<br />
<br />
</pre></div>
Yujin.jeong
https://wiki.cdot.senecacollege.ca/w/index.php?title=J.Y.S&diff=50968
J.Y.S
2010-11-30T19:43:57Z
<p>Yujin.jeong: /* CREATE VIEW */</p>
<hr />
<div>This page is to efficiently manage our group assignments!<br />
== Member List == <br />
*[mailto:,,yjeong@learn.senecac.on.ca,?subject=dbs301 Email All]<br />
<br />
{| class="wikitable sortable" border="1" cellpadding="5"<br />
! First Name !! Last Name !! wiki id !! Learn e-mail !! Phone<br />
|-<br />
|[[User:Yujin.jeong | YuJin]]||Jeong||[[Special:Contributions/yujin.jeong | yujin.jeong]]||[mailto:yjeong@learn.senecac.on.ca?sujbect=dbs301 yjeong]|| 647 - 832 - 6771<br />
|-<br />
<br />
|-<br />
|Saad|| || || ||<br />
|-<br />
<br />
|-<br />
|James|| || || ||<br />
|-<br />
|}<br />
<br />
=Assignment 3 (worth 9%)=<br />
==Due Date==<br />
Thursday, December 2nd, 3:00pm<br />
Printout of all TIC charts and DDL / DML statements<br />
<br />
==Solution==<br />
==== DDL Statements (CREATE TABLE) ====<br />
1. AREA<br />
<pre><br />
CREATE TABLE AREA<br />
(<br />
AreaID NUMBER(4) CONSTRAINT area_areaid_pk PRIMARY KEY,<br />
AreaName VARCHAR2(30) NOT NULL CONSTRAINT area_areaname_uk UNIQUE,<br />
ElmSchool VARCHAR2(40),<br />
MidSchool VARCHAR2(40),<br />
HighSchool VARCHAR2(40),<br />
Comments VARCHAR2(100)<br />
);<br />
</pre><br />
2. AGENCY<br />
<pre><br />
CREATE TABLE AGENCY<br />
(<br />
AgencyID NUMBER(4) CONSTRAINT agency_agencyid_pk PRIMARY KEY,<br />
AgencyName VARCHAR2(40) NOT NULL CONSTRAINT agency_agencyname_uk UNIQUE,<br />
AgencyPhone VARCHAR2(15) NOT NULL CONSTRAINT agency_agencyphone_uk UNIQUE<br />
);<br />
</pre><br />
3. PROPERTY<br />
<pre><br />
CREATE TABLE PROPERTY<br />
(<br />
PropertyID NUMBER(6),<br />
Street VARCHAR2(40) NOT NULL,<br />
City VARCHAR2(30) NOT NULL,<br />
Province CHAR(2) NOT NULL,<br />
PostalCode CHAR(6) NOT NULL,<br />
Bedrooms NUMBER(1) NOT NULL,<br />
Bathrooms NUMBER(1) NOT NULL,<br />
ListingPrice NUMBER(6) NOT NULL,<br />
AreaID NUMBER(4) NOT NULL,<br />
CONSTRAINT property_propertyid_pk PRIMARY KEY(PropertyID),<br />
CONSTRAINT property_bedrooms_ck CHECK(Bedrooms BETWEEN 1 AND 9),<br />
CONSTRAINT property_bathrooms_ck CHECK(Bathrooms BETWEEN 1 AND 9),<br />
CONSTRAINT property_listingprice_ck CHECK(ListingPrice BETWEEN 1 AND 4999999),<br />
CONSTRAINT property_areaid_fk FOREIGN KEY(AreaID) REFERENCES AREA(AreaID)<br />
);<br />
</pre><br />
4. SINGLE<br />
<pre><br />
CREATE TABLE SINGLE<br />
(<br />
PropertyID NUMBER(6), <br />
LotSize NUMBER(8,2) NOT NULL,<br />
CONSTRAINT single_propertyID_pk PRIMARY KEY(PropertyID), <br />
CONSTRAINT single_propertyID_fk FOREIGN KEY(PropertyID) REFERENCES PROPERTY(PropertyID),<br />
CONSTRAINT single_lotsize_ck CHECK(LotSize > 0)<br />
);<br />
<br />
</pre><br />
5. CONDO<br />
<pre><br />
CREATE TABLE CONDO<br />
(<br />
PropertyID NUMBER(6),<br />
Fee NUMBER(8,2) NOT NULL, <br />
CONSTRAINT condo_propertyID_pk PRIMARY KEY(PropertyID),<br />
CONSTRAINT condo_propertyID_fk FOREIGN KEY(PropertyID) REFERENCES PROPERTY(PropertyID),<br />
CONSTRAINT condo_fee_ck CHECK(Fee > 0)<br />
);<br />
<br />
</pre><br />
6. OUTLET<br />
<pre><br />
CREATE TABLE OUTLET<br />
(<br />
OutletID NUMBER(4), <br />
OutletName VARCHAR2(40) NOT NULL,<br />
OutletPhone VARCHAR2(15) NOT NULL,<br />
OutletType CHAR(1) NOT NULL,<br />
CONSTRAINT outlet_outletid_pk PRIMARY KEY(OutletID),<br />
CONSTRAINT outlet_outlettype_ck CHECK(OutletType IN('N','M','W','F')),<br />
CONSTRAINT outlet_outletname_type_uk UNIQUE(OutletName, OutletType)<br />
);<br />
<br />
</pre><br />
7. ADVERTISEMENT<br />
<pre><br />
CREATE TABLE ADVERTISEMENT<br />
(<br />
PropertyID NUMBER(6),<br />
OutletID NUMBER(4),<br />
AdvDate DATE,<br />
AdvCost NUMBER(6) NOT NULL,<br />
CONSTRAINT ad_adid_pk PRIMARY KEY(PropertyID, OutletID),<br />
CONSTRAINT ad_propertyid_fk FOREIGN KEY(PropertyID) REFERENCES PROPERTY(PropertyID),<br />
CONSTRAINT ad_outletid_fk FOREIGN KEY(OutletID) REFERENCES OUTLET(OutletID),<br />
CONSTRAINT ad_advcost_ck CHECK(AdvCost > 0)<br />
);<br />
</pre><br />
8. CLIENT<br />
<pre><br />
CREATE TABLE CLIENT<br />
(<br />
ClientID NUMBER(6),<br />
Fname VARCHAR2(30) NOT NULL,<br />
Lname VARCHAR2(30) NOT NULL,<br />
Phone VARCHAR2(15) NOT NULL,<br />
Email VARCHAR2(40),<br />
RefID NUMBER(6),<br />
CONSTRAINT client_clientid_pk PRIMARY KEY(ClientID),<br />
CONSTRAINT client_phone_uk UNIQUE(Phone),<br />
CONSTRAINT client_email_uk UNIQUE(Email),<br />
CONSTRAINT client_refid_fk FOREIGN KEY(RefID) REFERENCES CLIENT(ClientID)<br />
);<br />
</pre><br />
9. DEED<br />
<pre><br />
CREATE TABLE DEED<br />
(<br />
PropertyID NUMBER(6),<br />
SellerID NUMBER(6),<br />
OwnPct NUMBER(5,2) NOT NULL,<br />
BuyerID NUMBER(6),<br />
BuyPrice NUMBER(7),<br />
CONSTRAINT deed_deedid_pk PRIMARY KEY(PropertyID, SellerID),<br />
CONSTRAINT deed_propertyid_fk FOREIGN KEY(PropertyID) REFERENCES PROPERTY(PropertyID),<br />
CONSTRAINT deed_sellerid_fk FOREIGN KEY(SellerID) REFERENCES CLIENT(ClientID),<br />
CONSTRAINT deed_buyerid_fk FOREIGN KEY(BuyerID) REFERENCES CLIENT(ClientID),<br />
CONSTRAINT deed_ownpct_ck CHECK(OwnPct > 0 AND OwnPct <= 100),<br />
CONSTRAINT deed_buyprice_ck CHECK(BuyPrice BETWEEN 1 AND 4999999)<br />
);<br />
<br />
</pre><br />
<br />
==== DML Statements (INSERT INTO) ====<br />
<br />
1. AREA<BR><br />
<pre><br />
INSERT ALL<br />
INTO AREA VALUES(1001, 'Bayview Village', 'Adrienne Clarkson Public School', 'Amesbury Middle School', 'Bayview Secondary School', 'Upper middle class to upper class neighborhood in Toronto.')<br />
INTO AREA VALUES(3001,'Laurelwood Elizabeth Ziegler Primary School','Waterloo Middle School','Saint David Catholic Secondary School','Close to University of Waterloo and many popular amenities.')<br />
INTO AREA VALUES(4001,'Silver Heights','Alison Park Primary School'.'Eastwood Middle School','King Edward Secondary School',null)<br />
INTO AREA VALUES(5001,'Kitsilano','Henry Hudson Elementary School','St George School','Kitsilano Secondary School','Very well-off area.')<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
<br />
2. AGENCY<BR><br />
<pre><br />
INSERT ALL<br />
INTO VALUES(1055,'Sutton Group Regal Realty','416.875.9873')<br />
INTO VALUES(3079,'MacDonald Realty','604.986.0231')<br />
INTO VALUES(7024,'Royal LePage Groupe Newton','514.234.9283')<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
<br />
3. PROPERTY<BR><br />
<pre><br />
INSERT ALL<br />
INTO VALUES(134982,'27 King's College Circle','Toronto','ON','M5S1A1',2,2,380000,1001,1055)<br />
INTO VALUES(149800','17 Pleasant View Dr.','Toronto','ON','M2J2H1',3,2,470000,1001)<br />
INTO VALUES(152932,'17 Barberry Pl. #1313','Toronto','ON','M8W7V4,1,1,259888,1001)<br />
INTO VALUES(495820,'776 Laurelwood Dr.','Waterloo','ON','H3A2T5',2,2,295000,3001,3079)<br />
INTO VALUES(500211,'409 Kelso Cr.','Cambridge','ON','H3Y7S3',3,2,485000,4001)<br />
INTO VALUES(139204,'3043 Crown St.','Vancouver','BC','U3J3M6',5,3,1398000,5001,7024)<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
4. SINGLE<BR><br />
<pre><br />
INSERT ALL<br />
INTO VALUES(134982,3716)<br />
INTO VALUES(149800,1005)<br />
INTO VALUES(139204,5400)<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
5. CONDO<BR><br />
<pre><br />
INSERT ALL<br />
INTO VALUES(152932,250)<br />
INTO VALUES(495820,320)<br />
INTO VALUES(500211,550)<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
6. OUTLET<BR><br />
<pre><br />
INSERT ALL<br />
INTO VALUES(1000,'Toronto Star','416.923.1782','N')<br />
INTO VALUES(2001,'Waterloo Living','519.098.9283','M')<br />
INTO VALUES(8001,'Canadian Life','416.982.0192','W')<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
7. ADVERTISEMENT<BR><br />
<pre><br />
INSERT ALL<br />
INTO VALUES(134982,1000,'25-NOV-10',350)<br />
INTO VALUES(149800,1000,'27-NOV-10',250)<br />
INTO VALUES(495820,2001,'27-NOV-10',300)<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
8. CLIENT<BR><br />
<pre><br />
INSERT ALL<br />
INTO VALUES(1010,'Andrew','Lee','647.978.0192','andrew11@hotmail.com')<br />
INTO VALUES(1011,'Daniel','Smith','416.895.9762','dsmith@gmail.com',5010)<br />
INTO VALUES(1012,'Olivia','Wilson','647.915.2738','oliviaorange@gmail.com')<br />
INTO VALUES(1013,'Jayden','Martin','519.225.1928','jmartin@rogers.com')<br />
INTO VALUES(1014,'Maria','Brown','416.182.0021','maria.brown@hotmail.com')<br />
INTO VALUES(2010,'Ethan','Roy','226.289.0394','ethanrockstar@bell.com')<br />
INTO VALUES(2011,'Sophia','Tremblay','647.297.2918','stremblay@gmail.com',5010)<br />
INTO VALUES(3010,'Ryan,Wilson','604.837.1029','wilsonryan@gmail.com')<br />
INTO VALUES(3012,'Luis','Jones','416.832.6771','luis7787@rogers.com')<br />
INTO VALUES(5010,'Mary','Anderson','647.234.5690','andersonpink@gmail.com')<br />
INTO VALUES(7010,'James','White','647.298.9182','james.white@bell.com',1010)<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
9. DEED<BR><br />
<pre><br />
INSERT ALL<br />
INTO VALUES(149800,1010,75,5010,352300)<br />
INTO VALUES(139204,1012,100,3010,1394000)<br />
INTO VALUES(134982,2011,50,1014,200000)<br />
SELECT * FROM DUAL;<br />
</pre><br />
<br />
==== CREATE VIEW ====<br />
<pre><br />
CREATE VIEW PropAreaLocSeller_VU AS<br />
SELECT (a.AreaName || ', ' || p.City || ', ' || p.Street || ', ' || p.PostalCode) "Property Location",<br />
TO_CHAR(p.ListingPrice,'$9,999,999'), sgl.LotSize || ' sqft' LotSize, s.Lname || ', ' || s.Fname, s.phone, d.OwnPct, NVL(ag.AgencyName, 'No Agency')<br />
FROM Property p<br />
JOIN Single sgl ON (p.PropertyID = sgl.PropertyID)<br />
JOIN Area ar ON (p.AreaID = a.AreaID)<br />
JOIN Agency ag ON (p.AgencyID = ag.AgencyID)<br />
JOIN Deed d ON (p.PropertyID = d.PropertyID)<br />
JOIN Client s ON (d.SellerID = s.ClientID)<br />
</pre><br />
<br />
Not Too sure if this will work out<br />
<br />
=Assignment 1=<br />
==Due Date==<br />
Thursday, October 21st, 4:00pm<br />
Printout submission only( SELECT Statements + ALL outputs)<br />
==Description==<br />
[https://cs.senecac.on.ca/~nconkic/assign1.doc Assignment1]<br />
==Solution==<br />
<pre><br />
SQL> SELECT employee_id, RPAD(CONCAT(CONCAT(last_name, ', '),first_name), 25) "Full Name",<br />
<br />
2 job_id,<br />
<br />
3 TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
<br />
4 "Start Date"<br />
<br />
5 FROM employees<br />
<br />
6 WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
<br />
7 ORDER BY 4 DESC;<br />
<br />
<br />
<br />
EMPLOYEE_ID Full Name JOB_ID Start Date <br />
<br />
----------- ------------------------- ---------- ----------------------------------------- <br />
<br />
124 Mourgos, Kevin ST_MAN November First in the year 1999 <br />
<br />
178 Grant, Kimberely SA_REP May First in the year 1999 <br />
<br />
174 Abel, Ellen SA_REP May First in the year 1996 <br />
<br />
104 Ernst, Bruce IT_PROG May First in the year 1991 <br />
<br />
<br />
<br />
SQL> SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
<br />
2 || job_id || ' will have a new salary of $' || salary * 1.15 "Happy Employees"<br />
<br />
3 FROM employees<br />
<br />
4 WHERE salary BETWEEN 5000 AND 12000<br />
<br />
5 AND job_id IN ('IT_PROG', 'ST_CLERK')<br />
<br />
6 ORDER BY employee_id;<br />
<br />
<br />
<br />
Happy Employees <br />
<br />
----------------------------------------------------------------------------------------------------<br />
<br />
Employee named Alexander Hunold who is IT_PROG will have a new salary of $10350 <br />
<br />
Employee named Bruce Ernst who is IT_PROG will have a new salary of $6900 <br />
<br />
<br />
<br />
SQL> SELECT last_name, salary, job_id,<br />
<br />
2 RPAD(NVL(TO_CHAR(manager_id), 'No Manager'), 10) "Manager #",<br />
<br />
3 LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
<br />
4 FROM employees<br />
<br />
5 WHERE (job_id LIKE 'MK%' OR manager_id IS NULL)<br />
<br />
6 AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
<br />
7 ORDER BY 2 DESC;<br />
<br />
<br />
<br />
LAST_NAME SALARY JOB_ID Manager # Total Income <br />
<br />
------------------------- ---------- ---------- ---------- ------------ <br />
<br />
King 24000 AD_PRES No Manager $288,000 <br />
<br />
Hartstein 13000 MK_MAN 100 $156,000 <br />
<br />
<br />
<br />
SQL> SELECT RPAD(CONCAT(CONCAT(first_name,' '),last_name), 25) "Employee", job_id,<br />
<br />
2 LPAD(TRIM(TO_CHAR(salary, '$999,999')), 12, '=') "Salary", department_name<br />
<br />
3 FROM employees e JOIN departments d<br />
<br />
4 ON (e.department_id = d.department_id)<br />
<br />
5 WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
<br />
6 AND salary <<br />
<br />
7 (SELECT MAX(salary)<br />
<br />
8 FROM employees<br />
<br />
9 WHERE SUBSTR(job_id, 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
<br />
10 ORDER BY 1;<br />
<br />
<br />
<br />
Employee JOB_ID Salary DEPARTMENT_NAME <br />
<br />
------------------------- ---------- ------------ ------------------------------ <br />
<br />
Eleni Zlotkey SA_MAN =====$10,500 Sales <br />
<br />
Jonathon Taylor SA_REP ======$8,600 Sales <br />
<br />
Pat Fay MK_REP ======$6,000 Marketing <br />
<br />
<br />
<br />
SQL><br />
<br />
SQL> SELECT last_name, salary, job_id<br />
<br />
2 FROM employees<br />
<br />
3 WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
<br />
4 AND salary ><br />
<br />
5 (SELECT MAX(salary)<br />
<br />
6 FROM employees<br />
<br />
7 JOIN departments USING (department_id)<br />
<br />
8 JOIN locations USING (location_id)<br />
<br />
9 WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
<br />
<br />
LAST_NAME SALARY JOB_ID <br />
<br />
------------------------- ---------- ---------- <br />
<br />
Kochhar 17000 AD_VP <br />
<br />
De Haan 17000 AD_VP <br />
<br />
<br />
<br />
SQL> SELECT last_name, first_name, job_id, hire_date<br />
<br />
2 FROM employees<br />
<br />
3 WHERE hire_date ><br />
<br />
4 (SELECT MAX(hire_date)<br />
<br />
5 FROM employees<br />
<br />
6 WHERE department_id =<br />
<br />
7 (SELECT department_id<br />
<br />
8 FROM departments<br />
<br />
9 WHERE UPPER(department_name) = 'IT'))<br />
<br />
10 AND (department_id !=<br />
<br />
11 (SELECT department_id<br />
<br />
12 FROM departments<br />
<br />
13 WHERE UPPER(department_name) = 'EXECUTIVE')<br />
<br />
14 OR department_id IS NULL)<br />
<br />
15 ORDER BY 4 DESC;<br />
<br />
<br />
<br />
LAST_NAME FIRST_NAME JOB_ID HIRE_DATE <br />
<br />
------------------------- -------------------- ---------- --------- <br />
<br />
Zlotkey Eleni SA_MAN 29-JAN-00 <br />
<br />
Mourgos Kevin ST_MAN 16-NOV-99 <br />
<br />
Grant Kimberely SA_REP 24-MAY-99 <br />
<br />
<br />
<br />
SQL> SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay",<br />
<br />
2 MIN(salary) "Lowest Dept/Job Pay"<br />
<br />
3 FROM employees<br />
<br />
4 WHERE UPPER(job_id) NOT LIKE '%VP'<br />
<br />
5 AND department_id NOT IN<br />
<br />
6 (SELECT department_id<br />
<br />
7 FROM departments<br />
<br />
8 WHERE UPPER(department_name) IN ('IT','SALES'))<br />
<br />
9 GROUP BY department_id, job_id<br />
<br />
10 HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
<br />
11 ORDER BY 1, 2;<br />
<br />
<br />
<br />
DEPARTMENT_ID JOB_ID Average Dept/Job Pay Lowest Dept/Job Pay <br />
<br />
------------- ---------- -------------------- ------------------- <br />
<br />
20 MK_MAN 13000 13000 <br />
<br />
20 MK_REP 6000 6000 <br />
<br />
50 ST_MAN 5800 5800 <br />
<br />
110 AC_ACCOUNT 8300 8300 <br />
<br />
110 AC_MGR 12000 12000 <br />
<br />
<br />
<br />
SQL> SELECT department_id, department_name,<br />
<br />
2 RPAD(TRIM(NVL(city, 'Not Assinged Yet')), 25, ' ') "City",<br />
<br />
3 COUNT(DISTINCT job_id) "# of Jobs"<br />
<br />
4 FROM employees<br />
<br />
5 RIGHT OUTER JOIN departments USING (department_id)<br />
<br />
6 LEFT OUTER JOIN locations USING (location_id)<br />
<br />
7 GROUP BY department_id, department_name, city;<br />
<br />
<br />
<br />
DEPARTMENT_ID DEPARTMENT_NAME City # of Jobs <br />
<br />
------------- ------------------------------ ------------------------- ---------- <br />
<br />
110 Accounting Seattle 2 <br />
<br />
50 Shipping South San Francisco 2 <br />
<br />
80 Sales Oxford 2 <br />
<br />
10 Administration Seattle 1 <br />
<br />
190 Contracting Seattle 0 <br />
<br />
90 Executive Seattle 2 <br />
<br />
20 Marketing Toronto 2 <br />
<br />
60 IT Southlake 1 <br />
<br />
<br />
<br />
8 rows selected.<br />
<br />
<br />
<br />
SQL> spool off<br />
</pre><br />
==SQL Statements==<br />
===1.===<br />
''YuJin''<br />
<pre><br />
SELECT employee_id, RPAD(CONCAT(CONCAT(last_name, ', '),first_name), 25) "Full Name",<br />
job_id,<br />
TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
"Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
ORDER BY 4 DESC;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT employee_id,<br />
SUBSTR(last_name ||' '|| first_name, 1, 25) "Full Name",<br />
job_id,<br />
TO_CHAR(hire_date,'fmMonth "First in the year" YYYY') "Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date,'fmMON') IN ('MAY','NOV')<br />
ORDER BY hire_date DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select employee_id "Emp#",<br />
(last_name ||', '|| first_name) "Full Name",<br />
job_id "Job",<br />
to_char(trunc(hire_date, 'MONTH'), 'FMMonth Ddspth "in the year"<br />
YYYY') "Start Date"<br />
from employees<br />
where to_char(hire_date, 'fmMonth') in ('May', 'November')<br />
order by hire_date desc;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT employee_id, SUBSTR(last_name ||' '|| first_name, 1, 25) "Full Name",<br />
job_id,<br />
TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
"Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
ORDER BY hire_date DESC;<br />
</pre><br />
<br />
===2.===<br />
''YuJin''<br />
<pre><br />
SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
|| job_id || ' will have a new salary of $' || salary * 1.15 "Happy Employees"<br />
FROM employees<br />
WHERE salary BETWEEN 5000 AND 12000<br />
AND job_id IN ('IT_PROG', 'ST_CLERK')<br />
ORDER BY employee_id;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT 'Employee named '||first_name||' '||last_name||' who is '||job_id||' will have a new salary of $'|| salary *1.15 "Happy Employees"<br />
FROM employees<br />
WHERE job_id IN ('IT_PROG','ST CLERK')<br />
AND (salary BETWEEN 5000 AND 12000)<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
Select ('Employee named ' || first_name ||' '|| last_name || ' who is ' || job_id || ' will have a new salary of ' || (salary*1.15)) "Happy Employees"<br />
From employees<br />
Where salary between 5000 and 12000<br />
And upper(job_id) in ('IT_PROG', 'ST_CLERK')<br />
order by employee_id;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
|| job_id || ' will have a new salary of ' || TO_CHAR(salary * 1.15, 'fm$999999') "Happy Employees"<br />
FROM employees<br />
WHERE salary BETWEEN 5000 AND 12000<br />
AND UPPER(job_id) IN ('IT_PROG', 'ST_CLERK')<br />
ORDER BY employee_id;<br />
</pre><br />
<br />
===3.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, salary, job_id,<br />
RPAD(NVL(TO_CHAR(manager_id), 'No Manager'), 10) "Manager #",<br />
LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
FROM employees<br />
WHERE (job_id LIKE 'MK%' OR manager_id IS NULL)<br />
AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
ORDER BY 2 DESC;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, salary, job_id, NVL(TO_CHAR(manager_id),'No Manager') Manager#,<br />
TO_CHAR(salary*12,'$999,999') "Total Income"<br />
FROM employees<br />
WHERE (manager_id IS NULL<br />
OR job_id LIKE 'MK%')<br />
AND ( salary* (NVL(commission_pct,0) + 1) + 1000 ) > 10000<br />
ORDER BY salary DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, salary, job_id, nvl(to_char(manager_id),'No Manager') Manager#,<br />
to_char(salary*12,'$999,999') "Total Income"<br />
from employees<br />
where (upper(job_id) like 'MK%' or manager_id IS NULL)<br />
and salary * (1 + nvl(commission_pct, 0)) + 1000 > 10000<br />
order by 2 desc;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT last_name, salary, job_id,<br />
SUBSTR(NVL(TO_CHAR(manager_id), 'No Manager'), 1, 10) "Manager #",<br />
LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
FROM employees<br />
WHERE (UPPER(job_id) LIKE 'MK%' OR manager_id IS NULL)<br />
AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
ORDER BY salary DESC;<br />
<br />
</pre><br />
<br />
===4.===<br />
''YuJin''<br />
<pre><br />
SELECT RPAD(CONCAT(CONCAT(first_name,' '),last_name), 25) "Employee", job_id,<br />
LPAD(TRIM(TO_CHAR(salary, '$999,999')), 12, '=') "Salary", department_name<br />
FROM employees e JOIN departments d<br />
ON (e.department_id = d.department_id)<br />
WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
AND salary <<br />
(SELECT MAX(salary)<br />
FROM employees<br />
WHERE SUBSTR(job_id, 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
ORDER BY 1;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT SUBSTR(first_name||' '||last_name, 25) Employee, job_id,<br />
LPAD(TO_CHAR(salary,'$99,999'), 12, '=') Salary, department_name<br />
FROM employees e JOIN departments d<br />
ON (d.department_id=e.department_id)<br />
WHERE salary < (SELECT MAX(salary)<br />
FROM employees<br />
WHERE UPPER(SUBSTR(job_id,4)) NOT IN ('VP', 'PRES', 'MAN', 'MGR')<br />
)<br />
AND UPPER(department_name) IN ('MARKETING','SALES')<br />
ORDER BY first_name, last_name<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select substr(first_name ||' '|| last_name) "Employee", job_id, to_char(salary, '$999,999', 12, '=') Salary, department_name<br />
from employees e join departments d<br />
on (e.department_id = d.department_id)<br />
where upper(department_name) in ('MARKETING', 'SALES')<br />
and salary < (select max(salary)<br />
from employees<br />
where substr(job_id,4) not in ('PRES','VP','MAN','MGR'))<br />
order by "Employee";<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT SUBSTR(first_name ||' '|| last_name, 1, 25) "Employee", job_id,<br />
LPAD(TO_CHAR(salary, 'fm$999,999'), 12, '=') "Salary", department_name<br />
FROM employees e JOIN departments d<br />
ON (e.department_id = d.department_id)<br />
WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
AND salary <<br />
(SELECT MAX(salary)<br />
FROM employees<br />
WHERE SUBSTR(UPPER(job_id), 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
ORDER BY 1;<br />
</pre><br />
<br />
===5.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
AND salary ><br />
(SELECT MAX(salary)<br />
FROM employees<br />
JOIN departments USING (department_id)<br />
JOIN locations USING (location_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE salary > (SELECT MAX(salary)<br />
FROM locations JOIN departments<br />
USING (location_id)<br />
JOIN employees<br />
USING (department_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD')<br />
)<br />
AND UPPER(job_id) NOT LIKE '%PRES'<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, salary, job_id<br />
from employees<br />
where salary > (select max(salary)<br />
from employees join departments<br />
using (department_id)<br />
join locations<br />
using (location_id)<br />
where upper(city) in ('TORONTO','OXFORD'))<br />
and upper(job_id) not like '%PRES'<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
AND salary ><br />
(SELECT MAX(salary)<br />
FROM employees<br />
JOIN departments USING (department_id)<br />
JOIN locations USING (location_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
</pre><br />
<br />
===6.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, first_name, job_id, hire_date<br />
FROM employees<br />
WHERE hire_date ><br />
(SELECT MAX(hire_date)<br />
FROM employees<br />
WHERE department_id =<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'IT'))<br />
AND (department_id !=<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'EXECUTIVE')<br />
OR department_id IS NULL)<br />
ORDER BY 4 DESC;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, first_name, job_id, hire_date<br />
FROM employees e<br />
WHERE hire_date > (SELECT MAX(hire_date)<br />
FROM employees<br />
WHERE department_id = (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'IT'<br />
)<br />
)<br />
AND (department_id <> (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) ='EXECUTIVE')<br />
OR department_id IS NULL)<br />
ORDER BY hire_date DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, first_name, job_id, hire_date<br />
from employees<br />
where hire_date > (select max(hire_date)<br />
from employees<br />
where department_id = (select department_id<br />
from departments<br />
where upper(department_name) = 'IT'))<br />
and (department_id != (select department_id<br />
from departments<br />
where upper(department_name) = 'EXECUTIVE')<br />
or department_id IS NULL)<br />
order by hire_date desc;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT last_name, first_name, job_id, hire_date<br />
FROM employees<br />
WHERE hire_date ><br />
(SELECT MAX(hire_date)<br />
FROM employees<br />
WHERE department_id =<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'IT'))<br />
AND (department_id !=<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'EXECUTIVE')<br />
OR department_id IS NULL)<br />
ORDER BY hire_date DESC;<br />
</pre><br />
<br />
===7.===<br />
''YuJin''<br />
<pre><br />
SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay",<br />
MIN(salary) "Lowest Dept/Job Pay"<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%VP'<br />
AND department_id NOT IN<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) IN ('IT','SALES'))<br />
GROUP BY department_id, job_id<br />
HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
ORDER BY 1, 2;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay", MIN(salary) "Lowest Dept/Job Pay"<br />
FROM employees<br />
WHERE department_id <> ALL (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) IN ('IT','SALES')<br />
)<br />
AND job_id NOT LIKE '%VP'<br />
GROUP BY department_id, job_id<br />
HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
ORDER BY department_id, job_id<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select department_id, job_id, avg(salary) "Average Dept/Job Pay", min(salary) "Lowest Dept/Job Pay"<br />
from employees<br />
where upper(job_id) not like '%VP'<br />
and department_id != all(select department_id<br />
from departments<br />
where upper(department_name) in ('IT','SALES'))<br />
group by department_id, job_id<br />
having min(salary) between 5000 and 15000<br />
order by department_id, job_id<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay",<br />
MIN(salary) "Lowest Dept/Job Pay"<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%VP'<br />
AND department_id != ALL<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) IN ('IT','SALES'))<br />
GROUP BY department_id, job_id<br />
HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
ORDER BY department_id, job_id;<br />
</pre><br />
<br />
===8.===<br />
''YuJin''<br />
<pre><br />
SELECT department_id, department_name,<br />
RPAD(TRIM(NVL(city, 'Not Assinged Yet')), 25, ' ') "City",<br />
COUNT(DISTINCT job_id) "# of Jobs"<br />
FROM employees<br />
RIGHT OUTER JOIN departments USING (department_id)<br />
LEFT OUTER JOIN locations USING (location_id)<br />
GROUP BY department_id, department_name, city;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT department_id, department_name, SUBSTR(NVL(city,'Not Assigned Yet'),1,25) City,<br />
COUNT(DISTINCT job_id) "# of Jobs"<br />
FROM locations l RIGHT OUTER JOIN departments d<br />
USING (location_id)<br />
LEFT OUTER JOIN employees e<br />
USING (department_id)<br />
GROUP BY department_id, department_name, city<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select department_id, department_name, substr(nvl(city,'Not Assigned Yet'),1,25) City,<br />
count(distinct job_id) "# of Jobs"<br />
from employees right outer join departments<br />
using (department_id)<br />
left outer join locations<br />
using (location_id)<br />
group by department_id, department_name, city<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT department_id, department_name,<br />
SUBSTR(NVL(city, 'Not Assinged Yet'),1, 25) "City",<br />
COUNT(DISTINCT job_id) "# of Jobs"<br />
FROM employees<br />
RIGHT OUTER JOIN departments USING (department_id)<br />
LEFT OUTER JOIN locations USING (location_id)<br />
GROUP BY department_id, department_name, city;<br />
<br />
</pre></div>
Yujin.jeong
https://wiki.cdot.senecacollege.ca/w/index.php?title=J.Y.S&diff=50967
J.Y.S
2010-11-30T19:31:59Z
<p>Yujin.jeong: /* CREATE VIEW */</p>
<hr />
<div>This page is to efficiently manage our group assignments!<br />
== Member List == <br />
*[mailto:,,yjeong@learn.senecac.on.ca,?subject=dbs301 Email All]<br />
<br />
{| class="wikitable sortable" border="1" cellpadding="5"<br />
! First Name !! Last Name !! wiki id !! Learn e-mail !! Phone<br />
|-<br />
|[[User:Yujin.jeong | YuJin]]||Jeong||[[Special:Contributions/yujin.jeong | yujin.jeong]]||[mailto:yjeong@learn.senecac.on.ca?sujbect=dbs301 yjeong]|| 647 - 832 - 6771<br />
|-<br />
<br />
|-<br />
|Saad|| || || ||<br />
|-<br />
<br />
|-<br />
|James|| || || ||<br />
|-<br />
|}<br />
<br />
=Assignment 3 (worth 9%)=<br />
==Due Date==<br />
Thursday, December 2nd, 3:00pm<br />
Printout of all TIC charts and DDL / DML statements<br />
<br />
==Solution==<br />
==== DDL Statements (CREATE TABLE) ====<br />
1. AREA<br />
<pre><br />
CREATE TABLE AREA<br />
(<br />
AreaID NUMBER(4) CONSTRAINT area_areaid_pk PRIMARY KEY,<br />
AreaName VARCHAR2(30) NOT NULL CONSTRAINT area_areaname_uk UNIQUE,<br />
ElmSchool VARCHAR2(40),<br />
MidSchool VARCHAR2(40),<br />
HighSchool VARCHAR2(40),<br />
Comments VARCHAR2(100)<br />
);<br />
</pre><br />
2. AGENCY<br />
<pre><br />
CREATE TABLE AGENCY<br />
(<br />
AgencyID NUMBER(4) CONSTRAINT agency_agencyid_pk PRIMARY KEY,<br />
AgencyName VARCHAR2(40) NOT NULL CONSTRAINT agency_agencyname_uk UNIQUE,<br />
AgencyPhone VARCHAR2(15) NOT NULL CONSTRAINT agency_agencyphone_uk UNIQUE<br />
);<br />
</pre><br />
3. PROPERTY<br />
<pre><br />
CREATE TABLE PROPERTY<br />
(<br />
PropertyID NUMBER(6),<br />
Street VARCHAR2(40) NOT NULL,<br />
City VARCHAR2(30) NOT NULL,<br />
Province CHAR(2) NOT NULL,<br />
PostalCode CHAR(6) NOT NULL,<br />
Bedrooms NUMBER(1) NOT NULL,<br />
Bathrooms NUMBER(1) NOT NULL,<br />
ListingPrice NUMBER(6) NOT NULL,<br />
AreaID NUMBER(4) NOT NULL,<br />
CONSTRAINT property_propertyid_pk PRIMARY KEY(PropertyID),<br />
CONSTRAINT property_bedrooms_ck CHECK(Bedrooms BETWEEN 1 AND 9),<br />
CONSTRAINT property_bathrooms_ck CHECK(Bathrooms BETWEEN 1 AND 9),<br />
CONSTRAINT property_listingprice_ck CHECK(ListingPrice BETWEEN 1 AND 4999999),<br />
CONSTRAINT property_areaid_fk FOREIGN KEY(AreaID) REFERENCES AREA(AreaID)<br />
);<br />
</pre><br />
4. SINGLE<br />
<pre><br />
CREATE TABLE SINGLE<br />
(<br />
PropertyID NUMBER(6), <br />
LotSize NUMBER(8,2) NOT NULL,<br />
CONSTRAINT single_propertyID_pk PRIMARY KEY(PropertyID), <br />
CONSTRAINT single_propertyID_fk FOREIGN KEY(PropertyID) REFERENCES PROPERTY(PropertyID),<br />
CONSTRAINT single_lotsize_ck CHECK(LotSize > 0)<br />
);<br />
<br />
</pre><br />
5. CONDO<br />
<pre><br />
CREATE TABLE CONDO<br />
(<br />
PropertyID NUMBER(6),<br />
Fee NUMBER(8,2) NOT NULL, <br />
CONSTRAINT condo_propertyID_pk PRIMARY KEY(PropertyID),<br />
CONSTRAINT condo_propertyID_fk FOREIGN KEY(PropertyID) REFERENCES PROPERTY(PropertyID),<br />
CONSTRAINT condo_fee_ck CHECK(Fee > 0)<br />
);<br />
<br />
</pre><br />
6. OUTLET<br />
<pre><br />
CREATE TABLE OUTLET<br />
(<br />
OutletID NUMBER(4), <br />
OutletName VARCHAR2(40) NOT NULL,<br />
OutletPhone VARCHAR2(15) NOT NULL,<br />
OutletType CHAR(1) NOT NULL,<br />
CONSTRAINT outlet_outletid_pk PRIMARY KEY(OutletID),<br />
CONSTRAINT outlet_outlettype_ck CHECK(OutletType IN('N','M','W','F')),<br />
CONSTRAINT outlet_outletname_type_uk UNIQUE(OutletName, OutletType)<br />
);<br />
<br />
</pre><br />
7. ADVERTISEMENT<br />
<pre><br />
CREATE TABLE ADVERTISEMENT<br />
(<br />
PropertyID NUMBER(6),<br />
OutletID NUMBER(4),<br />
AdvDate DATE,<br />
AdvCost NUMBER(6) NOT NULL,<br />
CONSTRAINT ad_adid_pk PRIMARY KEY(PropertyID, OutletID),<br />
CONSTRAINT ad_propertyid_fk FOREIGN KEY(PropertyID) REFERENCES PROPERTY(PropertyID),<br />
CONSTRAINT ad_outletid_fk FOREIGN KEY(OutletID) REFERENCES OUTLET(OutletID),<br />
CONSTRAINT ad_advcost_ck CHECK(AdvCost > 0)<br />
);<br />
</pre><br />
8. CLIENT<br />
<pre><br />
CREATE TABLE CLIENT<br />
(<br />
ClientID NUMBER(6),<br />
Fname VARCHAR2(30) NOT NULL,<br />
Lname VARCHAR2(30) NOT NULL,<br />
Phone VARCHAR2(15) NOT NULL,<br />
Email VARCHAR2(40),<br />
RefID NUMBER(6),<br />
CONSTRAINT client_clientid_pk PRIMARY KEY(ClientID),<br />
CONSTRAINT client_phone_uk UNIQUE(Phone),<br />
CONSTRAINT client_email_uk UNIQUE(Email),<br />
CONSTRAINT client_refid_fk FOREIGN KEY(RefID) REFERENCES CLIENT(ClientID)<br />
);<br />
</pre><br />
9. DEED<br />
<pre><br />
CREATE TABLE DEED<br />
(<br />
PropertyID NUMBER(6),<br />
SellerID NUMBER(6),<br />
OwnPct NUMBER(5,2) NOT NULL,<br />
BuyerID NUMBER(6),<br />
BuyPrice NUMBER(7),<br />
CONSTRAINT deed_deedid_pk PRIMARY KEY(PropertyID, SellerID),<br />
CONSTRAINT deed_propertyid_fk FOREIGN KEY(PropertyID) REFERENCES PROPERTY(PropertyID),<br />
CONSTRAINT deed_sellerid_fk FOREIGN KEY(SellerID) REFERENCES CLIENT(ClientID),<br />
CONSTRAINT deed_buyerid_fk FOREIGN KEY(BuyerID) REFERENCES CLIENT(ClientID),<br />
CONSTRAINT deed_ownpct_ck CHECK(OwnPct > 0 AND OwnPct <= 100),<br />
CONSTRAINT deed_buyprice_ck CHECK(BuyPrice BETWEEN 1 AND 4999999)<br />
);<br />
<br />
</pre><br />
<br />
==== DML Statements (INSERT INTO) ====<br />
<br />
1. AREA<BR><br />
<pre><br />
INSERT ALL<br />
INTO AREA VALUES(1001, 'Bayview Village', 'Adrienne Clarkson Public School', 'Amesbury Middle School', 'Bayview Secondary School', 'Upper middle class to upper class neighborhood in Toronto.')<br />
INTO AREA VALUES(3001,'Laurelwood Elizabeth Ziegler Primary School','Waterloo Middle School','Saint David Catholic Secondary School','Close to University of Waterloo and many popular amenities.')<br />
INTO AREA VALUES(4001,'Silver Heights','Alison Park Primary School'.'Eastwood Middle School','King Edward Secondary School',null)<br />
INTO AREA VALUES(5001,'Kitsilano','Henry Hudson Elementary School','St George School','Kitsilano Secondary School','Very well-off area.')<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
<br />
2. AGENCY<BR><br />
<pre><br />
INSERT ALL<br />
INTO VALUES(1055,'Sutton Group Regal Realty','416.875.9873')<br />
INTO VALUES(3079,'MacDonald Realty','604.986.0231')<br />
INTO VALUES(7024,'Royal LePage Groupe Newton','514.234.9283')<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
<br />
3. PROPERTY<BR><br />
<pre><br />
INSERT ALL<br />
INTO VALUES(134982,'27 King's College Circle','Toronto','ON','M5S1A1',2,2,380000,1001,1055)<br />
INTO VALUES(149800','17 Pleasant View Dr.','Toronto','ON','M2J2H1',3,2,470000,1001)<br />
INTO VALUES(152932,'17 Barberry Pl. #1313','Toronto','ON','M8W7V4,1,1,259888,1001)<br />
INTO VALUES(495820,'776 Laurelwood Dr.','Waterloo','ON','H3A2T5',2,2,295000,3001,3079)<br />
INTO VALUES(500211,'409 Kelso Cr.','Cambridge','ON','H3Y7S3',3,2,485000,4001)<br />
INTO VALUES(139204,'3043 Crown St.','Vancouver','BC','U3J3M6',5,3,1398000,5001,7024)<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
4. SINGLE<BR><br />
<pre><br />
INSERT ALL<br />
INTO VALUES(134982,3716)<br />
INTO VALUES(149800,1005)<br />
INTO VALUES(139204,5400)<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
5. CONDO<BR><br />
<pre><br />
INSERT ALL<br />
INTO VALUES(152932,250)<br />
INTO VALUES(495820,320)<br />
INTO VALUES(500211,550)<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
6. OUTLET<BR><br />
<pre><br />
INSERT ALL<br />
INTO VALUES(1000,'Toronto Star','416.923.1782','N')<br />
INTO VALUES(2001,'Waterloo Living','519.098.9283','M')<br />
INTO VALUES(8001,'Canadian Life','416.982.0192','W')<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
7. ADVERTISEMENT<BR><br />
<pre><br />
INSERT ALL<br />
INTO VALUES(134982,1000,'25-NOV-10',350)<br />
INTO VALUES(149800,1000,'27-NOV-10',250)<br />
INTO VALUES(495820,2001,'27-NOV-10',300)<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
8. CLIENT<BR><br />
<pre><br />
INSERT ALL<br />
INTO VALUES(1010,'Andrew','Lee','647.978.0192','andrew11@hotmail.com')<br />
INTO VALUES(1011,'Daniel','Smith','416.895.9762','dsmith@gmail.com',5010)<br />
INTO VALUES(1012,'Olivia','Wilson','647.915.2738','oliviaorange@gmail.com')<br />
INTO VALUES(1013,'Jayden','Martin','519.225.1928','jmartin@rogers.com')<br />
INTO VALUES(1014,'Maria','Brown','416.182.0021','maria.brown@hotmail.com')<br />
INTO VALUES(2010,'Ethan','Roy','226.289.0394','ethanrockstar@bell.com')<br />
INTO VALUES(2011,'Sophia','Tremblay','647.297.2918','stremblay@gmail.com',5010)<br />
INTO VALUES(3010,'Ryan,Wilson','604.837.1029','wilsonryan@gmail.com')<br />
INTO VALUES(3012,'Luis','Jones','416.832.6771','luis7787@rogers.com')<br />
INTO VALUES(5010,'Mary','Anderson','647.234.5690','andersonpink@gmail.com')<br />
INTO VALUES(7010,'James','White','647.298.9182','james.white@bell.com',1010)<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
9. DEED<BR><br />
<pre><br />
INSERT ALL<br />
INTO VALUES(149800,1010,75,5010,352300)<br />
INTO VALUES(139204,1012,100,3010,1394000)<br />
INTO VALUES(134982,2011,50,1014,200000)<br />
SELECT * FROM DUAL;<br />
</pre><br />
<br />
==== CREATE VIEW ====<br />
<pre><br />
CREATE VIEW PropAreaLocSeller_VU AS<br />
SELECT (a.AreaName || p.City || p.Street || p.PostalCode) "Property Location", p.ListingPrice, sgl.LotSize,<br />
s.Lname || ', ' || s.Fname, s.phone, d.OwnPct, ag.AgencyName<br />
FROM Property p<br />
JOIN Single sgl ON (p.PropertyID = sgl.PropertyID)<br />
JOIN Area ar ON (p.AreaID = a.AreaID)<br />
JOIN Agency ag ON (p.AgencyID = ag.AgencyID)<br />
JOIN Deed d ON (p.PropertyID = d.PropertyID)<br />
JOIN Client s ON (d.SellerID = s.ClientID)<br />
</pre><br />
<br />
=Assignment 1=<br />
==Due Date==<br />
Thursday, October 21st, 4:00pm<br />
Printout submission only( SELECT Statements + ALL outputs)<br />
==Description==<br />
[https://cs.senecac.on.ca/~nconkic/assign1.doc Assignment1]<br />
==Solution==<br />
<pre><br />
SQL> SELECT employee_id, RPAD(CONCAT(CONCAT(last_name, ', '),first_name), 25) "Full Name",<br />
<br />
2 job_id,<br />
<br />
3 TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
<br />
4 "Start Date"<br />
<br />
5 FROM employees<br />
<br />
6 WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
<br />
7 ORDER BY 4 DESC;<br />
<br />
<br />
<br />
EMPLOYEE_ID Full Name JOB_ID Start Date <br />
<br />
----------- ------------------------- ---------- ----------------------------------------- <br />
<br />
124 Mourgos, Kevin ST_MAN November First in the year 1999 <br />
<br />
178 Grant, Kimberely SA_REP May First in the year 1999 <br />
<br />
174 Abel, Ellen SA_REP May First in the year 1996 <br />
<br />
104 Ernst, Bruce IT_PROG May First in the year 1991 <br />
<br />
<br />
<br />
SQL> SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
<br />
2 || job_id || ' will have a new salary of $' || salary * 1.15 "Happy Employees"<br />
<br />
3 FROM employees<br />
<br />
4 WHERE salary BETWEEN 5000 AND 12000<br />
<br />
5 AND job_id IN ('IT_PROG', 'ST_CLERK')<br />
<br />
6 ORDER BY employee_id;<br />
<br />
<br />
<br />
Happy Employees <br />
<br />
----------------------------------------------------------------------------------------------------<br />
<br />
Employee named Alexander Hunold who is IT_PROG will have a new salary of $10350 <br />
<br />
Employee named Bruce Ernst who is IT_PROG will have a new salary of $6900 <br />
<br />
<br />
<br />
SQL> SELECT last_name, salary, job_id,<br />
<br />
2 RPAD(NVL(TO_CHAR(manager_id), 'No Manager'), 10) "Manager #",<br />
<br />
3 LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
<br />
4 FROM employees<br />
<br />
5 WHERE (job_id LIKE 'MK%' OR manager_id IS NULL)<br />
<br />
6 AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
<br />
7 ORDER BY 2 DESC;<br />
<br />
<br />
<br />
LAST_NAME SALARY JOB_ID Manager # Total Income <br />
<br />
------------------------- ---------- ---------- ---------- ------------ <br />
<br />
King 24000 AD_PRES No Manager $288,000 <br />
<br />
Hartstein 13000 MK_MAN 100 $156,000 <br />
<br />
<br />
<br />
SQL> SELECT RPAD(CONCAT(CONCAT(first_name,' '),last_name), 25) "Employee", job_id,<br />
<br />
2 LPAD(TRIM(TO_CHAR(salary, '$999,999')), 12, '=') "Salary", department_name<br />
<br />
3 FROM employees e JOIN departments d<br />
<br />
4 ON (e.department_id = d.department_id)<br />
<br />
5 WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
<br />
6 AND salary <<br />
<br />
7 (SELECT MAX(salary)<br />
<br />
8 FROM employees<br />
<br />
9 WHERE SUBSTR(job_id, 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
<br />
10 ORDER BY 1;<br />
<br />
<br />
<br />
Employee JOB_ID Salary DEPARTMENT_NAME <br />
<br />
------------------------- ---------- ------------ ------------------------------ <br />
<br />
Eleni Zlotkey SA_MAN =====$10,500 Sales <br />
<br />
Jonathon Taylor SA_REP ======$8,600 Sales <br />
<br />
Pat Fay MK_REP ======$6,000 Marketing <br />
<br />
<br />
<br />
SQL><br />
<br />
SQL> SELECT last_name, salary, job_id<br />
<br />
2 FROM employees<br />
<br />
3 WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
<br />
4 AND salary ><br />
<br />
5 (SELECT MAX(salary)<br />
<br />
6 FROM employees<br />
<br />
7 JOIN departments USING (department_id)<br />
<br />
8 JOIN locations USING (location_id)<br />
<br />
9 WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
<br />
<br />
LAST_NAME SALARY JOB_ID <br />
<br />
------------------------- ---------- ---------- <br />
<br />
Kochhar 17000 AD_VP <br />
<br />
De Haan 17000 AD_VP <br />
<br />
<br />
<br />
SQL> SELECT last_name, first_name, job_id, hire_date<br />
<br />
2 FROM employees<br />
<br />
3 WHERE hire_date ><br />
<br />
4 (SELECT MAX(hire_date)<br />
<br />
5 FROM employees<br />
<br />
6 WHERE department_id =<br />
<br />
7 (SELECT department_id<br />
<br />
8 FROM departments<br />
<br />
9 WHERE UPPER(department_name) = 'IT'))<br />
<br />
10 AND (department_id !=<br />
<br />
11 (SELECT department_id<br />
<br />
12 FROM departments<br />
<br />
13 WHERE UPPER(department_name) = 'EXECUTIVE')<br />
<br />
14 OR department_id IS NULL)<br />
<br />
15 ORDER BY 4 DESC;<br />
<br />
<br />
<br />
LAST_NAME FIRST_NAME JOB_ID HIRE_DATE <br />
<br />
------------------------- -------------------- ---------- --------- <br />
<br />
Zlotkey Eleni SA_MAN 29-JAN-00 <br />
<br />
Mourgos Kevin ST_MAN 16-NOV-99 <br />
<br />
Grant Kimberely SA_REP 24-MAY-99 <br />
<br />
<br />
<br />
SQL> SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay",<br />
<br />
2 MIN(salary) "Lowest Dept/Job Pay"<br />
<br />
3 FROM employees<br />
<br />
4 WHERE UPPER(job_id) NOT LIKE '%VP'<br />
<br />
5 AND department_id NOT IN<br />
<br />
6 (SELECT department_id<br />
<br />
7 FROM departments<br />
<br />
8 WHERE UPPER(department_name) IN ('IT','SALES'))<br />
<br />
9 GROUP BY department_id, job_id<br />
<br />
10 HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
<br />
11 ORDER BY 1, 2;<br />
<br />
<br />
<br />
DEPARTMENT_ID JOB_ID Average Dept/Job Pay Lowest Dept/Job Pay <br />
<br />
------------- ---------- -------------------- ------------------- <br />
<br />
20 MK_MAN 13000 13000 <br />
<br />
20 MK_REP 6000 6000 <br />
<br />
50 ST_MAN 5800 5800 <br />
<br />
110 AC_ACCOUNT 8300 8300 <br />
<br />
110 AC_MGR 12000 12000 <br />
<br />
<br />
<br />
SQL> SELECT department_id, department_name,<br />
<br />
2 RPAD(TRIM(NVL(city, 'Not Assinged Yet')), 25, ' ') "City",<br />
<br />
3 COUNT(DISTINCT job_id) "# of Jobs"<br />
<br />
4 FROM employees<br />
<br />
5 RIGHT OUTER JOIN departments USING (department_id)<br />
<br />
6 LEFT OUTER JOIN locations USING (location_id)<br />
<br />
7 GROUP BY department_id, department_name, city;<br />
<br />
<br />
<br />
DEPARTMENT_ID DEPARTMENT_NAME City # of Jobs <br />
<br />
------------- ------------------------------ ------------------------- ---------- <br />
<br />
110 Accounting Seattle 2 <br />
<br />
50 Shipping South San Francisco 2 <br />
<br />
80 Sales Oxford 2 <br />
<br />
10 Administration Seattle 1 <br />
<br />
190 Contracting Seattle 0 <br />
<br />
90 Executive Seattle 2 <br />
<br />
20 Marketing Toronto 2 <br />
<br />
60 IT Southlake 1 <br />
<br />
<br />
<br />
8 rows selected.<br />
<br />
<br />
<br />
SQL> spool off<br />
</pre><br />
==SQL Statements==<br />
===1.===<br />
''YuJin''<br />
<pre><br />
SELECT employee_id, RPAD(CONCAT(CONCAT(last_name, ', '),first_name), 25) "Full Name",<br />
job_id,<br />
TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
"Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
ORDER BY 4 DESC;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT employee_id,<br />
SUBSTR(last_name ||' '|| first_name, 1, 25) "Full Name",<br />
job_id,<br />
TO_CHAR(hire_date,'fmMonth "First in the year" YYYY') "Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date,'fmMON') IN ('MAY','NOV')<br />
ORDER BY hire_date DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select employee_id "Emp#",<br />
(last_name ||', '|| first_name) "Full Name",<br />
job_id "Job",<br />
to_char(trunc(hire_date, 'MONTH'), 'FMMonth Ddspth "in the year"<br />
YYYY') "Start Date"<br />
from employees<br />
where to_char(hire_date, 'fmMonth') in ('May', 'November')<br />
order by hire_date desc;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT employee_id, SUBSTR(last_name ||' '|| first_name, 1, 25) "Full Name",<br />
job_id,<br />
TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
"Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
ORDER BY hire_date DESC;<br />
</pre><br />
<br />
===2.===<br />
''YuJin''<br />
<pre><br />
SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
|| job_id || ' will have a new salary of $' || salary * 1.15 "Happy Employees"<br />
FROM employees<br />
WHERE salary BETWEEN 5000 AND 12000<br />
AND job_id IN ('IT_PROG', 'ST_CLERK')<br />
ORDER BY employee_id;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT 'Employee named '||first_name||' '||last_name||' who is '||job_id||' will have a new salary of $'|| salary *1.15 "Happy Employees"<br />
FROM employees<br />
WHERE job_id IN ('IT_PROG','ST CLERK')<br />
AND (salary BETWEEN 5000 AND 12000)<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
Select ('Employee named ' || first_name ||' '|| last_name || ' who is ' || job_id || ' will have a new salary of ' || (salary*1.15)) "Happy Employees"<br />
From employees<br />
Where salary between 5000 and 12000<br />
And upper(job_id) in ('IT_PROG', 'ST_CLERK')<br />
order by employee_id;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
|| job_id || ' will have a new salary of ' || TO_CHAR(salary * 1.15, 'fm$999999') "Happy Employees"<br />
FROM employees<br />
WHERE salary BETWEEN 5000 AND 12000<br />
AND UPPER(job_id) IN ('IT_PROG', 'ST_CLERK')<br />
ORDER BY employee_id;<br />
</pre><br />
<br />
===3.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, salary, job_id,<br />
RPAD(NVL(TO_CHAR(manager_id), 'No Manager'), 10) "Manager #",<br />
LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
FROM employees<br />
WHERE (job_id LIKE 'MK%' OR manager_id IS NULL)<br />
AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
ORDER BY 2 DESC;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, salary, job_id, NVL(TO_CHAR(manager_id),'No Manager') Manager#,<br />
TO_CHAR(salary*12,'$999,999') "Total Income"<br />
FROM employees<br />
WHERE (manager_id IS NULL<br />
OR job_id LIKE 'MK%')<br />
AND ( salary* (NVL(commission_pct,0) + 1) + 1000 ) > 10000<br />
ORDER BY salary DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, salary, job_id, nvl(to_char(manager_id),'No Manager') Manager#,<br />
to_char(salary*12,'$999,999') "Total Income"<br />
from employees<br />
where (upper(job_id) like 'MK%' or manager_id IS NULL)<br />
and salary * (1 + nvl(commission_pct, 0)) + 1000 > 10000<br />
order by 2 desc;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT last_name, salary, job_id,<br />
SUBSTR(NVL(TO_CHAR(manager_id), 'No Manager'), 1, 10) "Manager #",<br />
LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
FROM employees<br />
WHERE (UPPER(job_id) LIKE 'MK%' OR manager_id IS NULL)<br />
AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
ORDER BY salary DESC;<br />
<br />
</pre><br />
<br />
===4.===<br />
''YuJin''<br />
<pre><br />
SELECT RPAD(CONCAT(CONCAT(first_name,' '),last_name), 25) "Employee", job_id,<br />
LPAD(TRIM(TO_CHAR(salary, '$999,999')), 12, '=') "Salary", department_name<br />
FROM employees e JOIN departments d<br />
ON (e.department_id = d.department_id)<br />
WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
AND salary <<br />
(SELECT MAX(salary)<br />
FROM employees<br />
WHERE SUBSTR(job_id, 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
ORDER BY 1;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT SUBSTR(first_name||' '||last_name, 25) Employee, job_id,<br />
LPAD(TO_CHAR(salary,'$99,999'), 12, '=') Salary, department_name<br />
FROM employees e JOIN departments d<br />
ON (d.department_id=e.department_id)<br />
WHERE salary < (SELECT MAX(salary)<br />
FROM employees<br />
WHERE UPPER(SUBSTR(job_id,4)) NOT IN ('VP', 'PRES', 'MAN', 'MGR')<br />
)<br />
AND UPPER(department_name) IN ('MARKETING','SALES')<br />
ORDER BY first_name, last_name<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select substr(first_name ||' '|| last_name) "Employee", job_id, to_char(salary, '$999,999', 12, '=') Salary, department_name<br />
from employees e join departments d<br />
on (e.department_id = d.department_id)<br />
where upper(department_name) in ('MARKETING', 'SALES')<br />
and salary < (select max(salary)<br />
from employees<br />
where substr(job_id,4) not in ('PRES','VP','MAN','MGR'))<br />
order by "Employee";<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT SUBSTR(first_name ||' '|| last_name, 1, 25) "Employee", job_id,<br />
LPAD(TO_CHAR(salary, 'fm$999,999'), 12, '=') "Salary", department_name<br />
FROM employees e JOIN departments d<br />
ON (e.department_id = d.department_id)<br />
WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
AND salary <<br />
(SELECT MAX(salary)<br />
FROM employees<br />
WHERE SUBSTR(UPPER(job_id), 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
ORDER BY 1;<br />
</pre><br />
<br />
===5.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
AND salary ><br />
(SELECT MAX(salary)<br />
FROM employees<br />
JOIN departments USING (department_id)<br />
JOIN locations USING (location_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE salary > (SELECT MAX(salary)<br />
FROM locations JOIN departments<br />
USING (location_id)<br />
JOIN employees<br />
USING (department_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD')<br />
)<br />
AND UPPER(job_id) NOT LIKE '%PRES'<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, salary, job_id<br />
from employees<br />
where salary > (select max(salary)<br />
from employees join departments<br />
using (department_id)<br />
join locations<br />
using (location_id)<br />
where upper(city) in ('TORONTO','OXFORD'))<br />
and upper(job_id) not like '%PRES'<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
AND salary ><br />
(SELECT MAX(salary)<br />
FROM employees<br />
JOIN departments USING (department_id)<br />
JOIN locations USING (location_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
</pre><br />
<br />
===6.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, first_name, job_id, hire_date<br />
FROM employees<br />
WHERE hire_date ><br />
(SELECT MAX(hire_date)<br />
FROM employees<br />
WHERE department_id =<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'IT'))<br />
AND (department_id !=<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'EXECUTIVE')<br />
OR department_id IS NULL)<br />
ORDER BY 4 DESC;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, first_name, job_id, hire_date<br />
FROM employees e<br />
WHERE hire_date > (SELECT MAX(hire_date)<br />
FROM employees<br />
WHERE department_id = (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'IT'<br />
)<br />
)<br />
AND (department_id <> (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) ='EXECUTIVE')<br />
OR department_id IS NULL)<br />
ORDER BY hire_date DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, first_name, job_id, hire_date<br />
from employees<br />
where hire_date > (select max(hire_date)<br />
from employees<br />
where department_id = (select department_id<br />
from departments<br />
where upper(department_name) = 'IT'))<br />
and (department_id != (select department_id<br />
from departments<br />
where upper(department_name) = 'EXECUTIVE')<br />
or department_id IS NULL)<br />
order by hire_date desc;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT last_name, first_name, job_id, hire_date<br />
FROM employees<br />
WHERE hire_date ><br />
(SELECT MAX(hire_date)<br />
FROM employees<br />
WHERE department_id =<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'IT'))<br />
AND (department_id !=<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'EXECUTIVE')<br />
OR department_id IS NULL)<br />
ORDER BY hire_date DESC;<br />
</pre><br />
<br />
===7.===<br />
''YuJin''<br />
<pre><br />
SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay",<br />
MIN(salary) "Lowest Dept/Job Pay"<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%VP'<br />
AND department_id NOT IN<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) IN ('IT','SALES'))<br />
GROUP BY department_id, job_id<br />
HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
ORDER BY 1, 2;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay", MIN(salary) "Lowest Dept/Job Pay"<br />
FROM employees<br />
WHERE department_id <> ALL (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) IN ('IT','SALES')<br />
)<br />
AND job_id NOT LIKE '%VP'<br />
GROUP BY department_id, job_id<br />
HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
ORDER BY department_id, job_id<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select department_id, job_id, avg(salary) "Average Dept/Job Pay", min(salary) "Lowest Dept/Job Pay"<br />
from employees<br />
where upper(job_id) not like '%VP'<br />
and department_id != all(select department_id<br />
from departments<br />
where upper(department_name) in ('IT','SALES'))<br />
group by department_id, job_id<br />
having min(salary) between 5000 and 15000<br />
order by department_id, job_id<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay",<br />
MIN(salary) "Lowest Dept/Job Pay"<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%VP'<br />
AND department_id != ALL<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) IN ('IT','SALES'))<br />
GROUP BY department_id, job_id<br />
HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
ORDER BY department_id, job_id;<br />
</pre><br />
<br />
===8.===<br />
''YuJin''<br />
<pre><br />
SELECT department_id, department_name,<br />
RPAD(TRIM(NVL(city, 'Not Assinged Yet')), 25, ' ') "City",<br />
COUNT(DISTINCT job_id) "# of Jobs"<br />
FROM employees<br />
RIGHT OUTER JOIN departments USING (department_id)<br />
LEFT OUTER JOIN locations USING (location_id)<br />
GROUP BY department_id, department_name, city;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT department_id, department_name, SUBSTR(NVL(city,'Not Assigned Yet'),1,25) City,<br />
COUNT(DISTINCT job_id) "# of Jobs"<br />
FROM locations l RIGHT OUTER JOIN departments d<br />
USING (location_id)<br />
LEFT OUTER JOIN employees e<br />
USING (department_id)<br />
GROUP BY department_id, department_name, city<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select department_id, department_name, substr(nvl(city,'Not Assigned Yet'),1,25) City,<br />
count(distinct job_id) "# of Jobs"<br />
from employees right outer join departments<br />
using (department_id)<br />
left outer join locations<br />
using (location_id)<br />
group by department_id, department_name, city<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT department_id, department_name,<br />
SUBSTR(NVL(city, 'Not Assinged Yet'),1, 25) "City",<br />
COUNT(DISTINCT job_id) "# of Jobs"<br />
FROM employees<br />
RIGHT OUTER JOIN departments USING (department_id)<br />
LEFT OUTER JOIN locations USING (location_id)<br />
GROUP BY department_id, department_name, city;<br />
<br />
</pre></div>
Yujin.jeong
https://wiki.cdot.senecacollege.ca/w/index.php?title=J.Y.S&diff=50964
J.Y.S
2010-11-30T19:20:18Z
<p>Yujin.jeong: /* DML Statements (INSERT INTO) */</p>
<hr />
<div>This page is to efficiently manage our group assignments!<br />
== Member List == <br />
*[mailto:,,yjeong@learn.senecac.on.ca,?subject=dbs301 Email All]<br />
<br />
{| class="wikitable sortable" border="1" cellpadding="5"<br />
! First Name !! Last Name !! wiki id !! Learn e-mail !! Phone<br />
|-<br />
|[[User:Yujin.jeong | YuJin]]||Jeong||[[Special:Contributions/yujin.jeong | yujin.jeong]]||[mailto:yjeong@learn.senecac.on.ca?sujbect=dbs301 yjeong]|| 647 - 832 - 6771<br />
|-<br />
<br />
|-<br />
|Saad|| || || ||<br />
|-<br />
<br />
|-<br />
|James|| || || ||<br />
|-<br />
|}<br />
<br />
=Assignment 3 (worth 9%)=<br />
==Due Date==<br />
Thursday, December 2nd, 3:00pm<br />
Printout of all TIC charts and DDL / DML statements<br />
<br />
==Solution==<br />
==== DDL Statements (CREATE TABLE) ====<br />
1. AREA<br />
<pre><br />
CREATE TABLE AREA<br />
(<br />
AreaID NUMBER(4) CONSTRAINT area_areaid_pk PRIMARY KEY,<br />
AreaName VARCHAR2(30) NOT NULL CONSTRAINT area_areaname_uk UNIQUE,<br />
ElmSchool VARCHAR2(40),<br />
MidSchool VARCHAR2(40),<br />
HighSchool VARCHAR2(40),<br />
Comments VARCHAR2(100)<br />
);<br />
</pre><br />
2. AGENCY<br />
<pre><br />
CREATE TABLE AGENCY<br />
(<br />
AgencyID NUMBER(4) CONSTRAINT agency_agencyid_pk PRIMARY KEY,<br />
AgencyName VARCHAR2(40) NOT NULL CONSTRAINT agency_agencyname_uk UNIQUE,<br />
AgencyPhone VARCHAR2(15) NOT NULL CONSTRAINT agency_agencyphone_uk UNIQUE<br />
);<br />
</pre><br />
3. PROPERTY<br />
<pre><br />
CREATE TABLE PROPERTY<br />
(<br />
PropertyID NUMBER(6),<br />
Street VARCHAR2(40) NOT NULL,<br />
City VARCHAR2(30) NOT NULL,<br />
Province CHAR(2) NOT NULL,<br />
PostalCode CHAR(6) NOT NULL,<br />
Bedrooms NUMBER(1) NOT NULL,<br />
Bathrooms NUMBER(1) NOT NULL,<br />
ListingPrice NUMBER(6) NOT NULL,<br />
AreaID NUMBER(4) NOT NULL,<br />
CONSTRAINT property_propertyid_pk PRIMARY KEY(PropertyID),<br />
CONSTRAINT property_bedrooms_ck CHECK(Bedrooms BETWEEN 1 AND 9),<br />
CONSTRAINT property_bathrooms_ck CHECK(Bathrooms BETWEEN 1 AND 9),<br />
CONSTRAINT property_listingprice_ck CHECK(ListingPrice BETWEEN 1 AND 4999999),<br />
CONSTRAINT property_areaid_fk FOREIGN KEY(AreaID) REFERENCES AREA(AreaID)<br />
);<br />
</pre><br />
4. SINGLE<br />
<pre><br />
CREATE TABLE SINGLE<br />
(<br />
PropertyID NUMBER(6), <br />
LotSize NUMBER(8,2) NOT NULL,<br />
CONSTRAINT single_propertyID_pk PRIMARY KEY(PropertyID), <br />
CONSTRAINT single_propertyID_fk FOREIGN KEY(PropertyID) REFERENCES PROPERTY(PropertyID),<br />
CONSTRAINT single_lotsize_ck CHECK(LotSize > 0)<br />
);<br />
<br />
</pre><br />
5. CONDO<br />
<pre><br />
CREATE TABLE CONDO<br />
(<br />
PropertyID NUMBER(6),<br />
Fee NUMBER(8,2) NOT NULL, <br />
CONSTRAINT condo_propertyID_pk PRIMARY KEY(PropertyID),<br />
CONSTRAINT condo_propertyID_fk FOREIGN KEY(PropertyID) REFERENCES PROPERTY(PropertyID),<br />
CONSTRAINT condo_fee_ck CHECK(Fee > 0)<br />
);<br />
<br />
</pre><br />
6. OUTLET<br />
<pre><br />
CREATE TABLE OUTLET<br />
(<br />
OutletID NUMBER(4), <br />
OutletName VARCHAR2(40) NOT NULL,<br />
OutletPhone VARCHAR2(15) NOT NULL,<br />
OutletType CHAR(1) NOT NULL,<br />
CONSTRAINT outlet_outletid_pk PRIMARY KEY(OutletID),<br />
CONSTRAINT outlet_outlettype_ck CHECK(OutletType IN('N','M','W','F')),<br />
CONSTRAINT outlet_outletname_type_uk UNIQUE(OutletName, OutletType)<br />
);<br />
<br />
</pre><br />
7. ADVERTISEMENT<br />
<pre><br />
CREATE TABLE ADVERTISEMENT<br />
(<br />
PropertyID NUMBER(6),<br />
OutletID NUMBER(4),<br />
AdvDate DATE,<br />
AdvCost NUMBER(6) NOT NULL,<br />
CONSTRAINT ad_adid_pk PRIMARY KEY(PropertyID, OutletID),<br />
CONSTRAINT ad_propertyid_fk FOREIGN KEY(PropertyID) REFERENCES PROPERTY(PropertyID),<br />
CONSTRAINT ad_outletid_fk FOREIGN KEY(OutletID) REFERENCES OUTLET(OutletID),<br />
CONSTRAINT ad_advcost_ck CHECK(AdvCost > 0)<br />
);<br />
</pre><br />
8. CLIENT<br />
<pre><br />
CREATE TABLE CLIENT<br />
(<br />
ClientID NUMBER(6),<br />
Fname VARCHAR2(30) NOT NULL,<br />
Lname VARCHAR2(30) NOT NULL,<br />
Phone VARCHAR2(15) NOT NULL,<br />
Email VARCHAR2(40),<br />
RefID NUMBER(6),<br />
CONSTRAINT client_clientid_pk PRIMARY KEY(ClientID),<br />
CONSTRAINT client_phone_uk UNIQUE(Phone),<br />
CONSTRAINT client_email_uk UNIQUE(Email),<br />
CONSTRAINT client_refid_fk FOREIGN KEY(RefID) REFERENCES CLIENT(ClientID)<br />
);<br />
</pre><br />
9. DEED<br />
<pre><br />
CREATE TABLE DEED<br />
(<br />
PropertyID NUMBER(6),<br />
SellerID NUMBER(6),<br />
OwnPct NUMBER(5,2) NOT NULL,<br />
BuyerID NUMBER(6),<br />
BuyPrice NUMBER(7),<br />
CONSTRAINT deed_deedid_pk PRIMARY KEY(PropertyID, SellerID),<br />
CONSTRAINT deed_propertyid_fk FOREIGN KEY(PropertyID) REFERENCES PROPERTY(PropertyID),<br />
CONSTRAINT deed_sellerid_fk FOREIGN KEY(SellerID) REFERENCES CLIENT(ClientID),<br />
CONSTRAINT deed_buyerid_fk FOREIGN KEY(BuyerID) REFERENCES CLIENT(ClientID),<br />
CONSTRAINT deed_ownpct_ck CHECK(OwnPct > 0 AND OwnPct <= 100),<br />
CONSTRAINT deed_buyprice_ck CHECK(BuyPrice BETWEEN 1 AND 4999999)<br />
);<br />
<br />
</pre><br />
<br />
==== DML Statements (INSERT INTO) ====<br />
<br />
1. AREA<BR><br />
<pre><br />
INSERT ALL<br />
INTO AREA VALUES(1001, 'Bayview Village', 'Adrienne Clarkson Public School', 'Amesbury Middle School', 'Bayview Secondary School', 'Upper middle class to upper class neighborhood in Toronto.')<br />
INTO AREA VALUES(3001,'Laurelwood Elizabeth Ziegler Primary School','Waterloo Middle School','Saint David Catholic Secondary School','Close to University of Waterloo and many popular amenities.')<br />
INTO AREA VALUES(4001,'Silver Heights','Alison Park Primary School'.'Eastwood Middle School','King Edward Secondary School',null)<br />
INTO AREA VALUES(5001,'Kitsilano','Henry Hudson Elementary School','St George School','Kitsilano Secondary School','Very well-off area.')<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
<br />
2. AGENCY<BR><br />
<pre><br />
INSERT ALL<br />
INTO VALUES(1055,'Sutton Group Regal Realty','416.875.9873')<br />
INTO VALUES(3079,'MacDonald Realty','604.986.0231')<br />
INTO VALUES(7024,'Royal LePage Groupe Newton','514.234.9283')<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
<br />
3. PROPERTY<BR><br />
<pre><br />
INSERT ALL<br />
INTO VALUES(134982,'27 King's College Circle','Toronto','ON','M5S1A1',2,2,380000,1001,1055)<br />
INTO VALUES(149800','17 Pleasant View Dr.','Toronto','ON','M2J2H1',3,2,470000,1001)<br />
INTO VALUES(152932,'17 Barberry Pl. #1313','Toronto','ON','M8W7V4,1,1,259888,1001)<br />
INTO VALUES(495820,'776 Laurelwood Dr.','Waterloo','ON','H3A2T5',2,2,295000,3001,3079)<br />
INTO VALUES(500211,'409 Kelso Cr.','Cambridge','ON','H3Y7S3',3,2,485000,4001)<br />
INTO VALUES(139204,'3043 Crown St.','Vancouver','BC','U3J3M6',5,3,1398000,5001,7024)<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
4. SINGLE<BR><br />
<pre><br />
INSERT ALL<br />
INTO VALUES(134982,3716)<br />
INTO VALUES(149800,1005)<br />
INTO VALUES(139204,5400)<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
5. CONDO<BR><br />
<pre><br />
INSERT ALL<br />
INTO VALUES(152932,250)<br />
INTO VALUES(495820,320)<br />
INTO VALUES(500211,550)<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
6. OUTLET<BR><br />
<pre><br />
INSERT ALL<br />
INTO VALUES(1000,'Toronto Star','416.923.1782','N')<br />
INTO VALUES(2001,'Waterloo Living','519.098.9283','M')<br />
INTO VALUES(8001,'Canadian Life','416.982.0192','W')<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
7. ADVERTISEMENT<BR><br />
<pre><br />
INSERT ALL<br />
INTO VALUES(134982,1000,'25-NOV-10',350)<br />
INTO VALUES(149800,1000,'27-NOV-10',250)<br />
INTO VALUES(495820,2001,'27-NOV-10',300)<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
8. CLIENT<BR><br />
<pre><br />
INSERT ALL<br />
INTO VALUES(1010,'Andrew','Lee','647.978.0192','andrew11@hotmail.com')<br />
INTO VALUES(1011,'Daniel','Smith','416.895.9762','dsmith@gmail.com',5010)<br />
INTO VALUES(1012,'Olivia','Wilson','647.915.2738','oliviaorange@gmail.com')<br />
INTO VALUES(1013,'Jayden','Martin','519.225.1928','jmartin@rogers.com')<br />
INTO VALUES(1014,'Maria','Brown','416.182.0021','maria.brown@hotmail.com')<br />
INTO VALUES(2010,'Ethan','Roy','226.289.0394','ethanrockstar@bell.com')<br />
INTO VALUES(2011,'Sophia','Tremblay','647.297.2918','stremblay@gmail.com',5010)<br />
INTO VALUES(3010,'Ryan,Wilson','604.837.1029','wilsonryan@gmail.com')<br />
INTO VALUES(3012,'Luis','Jones','416.832.6771','luis7787@rogers.com')<br />
INTO VALUES(5010,'Mary','Anderson','647.234.5690','andersonpink@gmail.com')<br />
INTO VALUES(7010,'James','White','647.298.9182','james.white@bell.com',1010)<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
9. DEED<BR><br />
<pre><br />
INSERT ALL<br />
INTO VALUES(149800,1010,75,5010,352300)<br />
INTO VALUES(139204,1012,100,3010,1394000)<br />
INTO VALUES(134982,2011,50,1014,200000)<br />
SELECT * FROM DUAL;<br />
</pre><br />
<br />
==== CREATE VIEW ====<br />
<br />
=Assignment 1=<br />
==Due Date==<br />
Thursday, October 21st, 4:00pm<br />
Printout submission only( SELECT Statements + ALL outputs)<br />
==Description==<br />
[https://cs.senecac.on.ca/~nconkic/assign1.doc Assignment1]<br />
==Solution==<br />
<pre><br />
SQL> SELECT employee_id, RPAD(CONCAT(CONCAT(last_name, ', '),first_name), 25) "Full Name",<br />
<br />
2 job_id,<br />
<br />
3 TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
<br />
4 "Start Date"<br />
<br />
5 FROM employees<br />
<br />
6 WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
<br />
7 ORDER BY 4 DESC;<br />
<br />
<br />
<br />
EMPLOYEE_ID Full Name JOB_ID Start Date <br />
<br />
----------- ------------------------- ---------- ----------------------------------------- <br />
<br />
124 Mourgos, Kevin ST_MAN November First in the year 1999 <br />
<br />
178 Grant, Kimberely SA_REP May First in the year 1999 <br />
<br />
174 Abel, Ellen SA_REP May First in the year 1996 <br />
<br />
104 Ernst, Bruce IT_PROG May First in the year 1991 <br />
<br />
<br />
<br />
SQL> SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
<br />
2 || job_id || ' will have a new salary of $' || salary * 1.15 "Happy Employees"<br />
<br />
3 FROM employees<br />
<br />
4 WHERE salary BETWEEN 5000 AND 12000<br />
<br />
5 AND job_id IN ('IT_PROG', 'ST_CLERK')<br />
<br />
6 ORDER BY employee_id;<br />
<br />
<br />
<br />
Happy Employees <br />
<br />
----------------------------------------------------------------------------------------------------<br />
<br />
Employee named Alexander Hunold who is IT_PROG will have a new salary of $10350 <br />
<br />
Employee named Bruce Ernst who is IT_PROG will have a new salary of $6900 <br />
<br />
<br />
<br />
SQL> SELECT last_name, salary, job_id,<br />
<br />
2 RPAD(NVL(TO_CHAR(manager_id), 'No Manager'), 10) "Manager #",<br />
<br />
3 LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
<br />
4 FROM employees<br />
<br />
5 WHERE (job_id LIKE 'MK%' OR manager_id IS NULL)<br />
<br />
6 AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
<br />
7 ORDER BY 2 DESC;<br />
<br />
<br />
<br />
LAST_NAME SALARY JOB_ID Manager # Total Income <br />
<br />
------------------------- ---------- ---------- ---------- ------------ <br />
<br />
King 24000 AD_PRES No Manager $288,000 <br />
<br />
Hartstein 13000 MK_MAN 100 $156,000 <br />
<br />
<br />
<br />
SQL> SELECT RPAD(CONCAT(CONCAT(first_name,' '),last_name), 25) "Employee", job_id,<br />
<br />
2 LPAD(TRIM(TO_CHAR(salary, '$999,999')), 12, '=') "Salary", department_name<br />
<br />
3 FROM employees e JOIN departments d<br />
<br />
4 ON (e.department_id = d.department_id)<br />
<br />
5 WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
<br />
6 AND salary <<br />
<br />
7 (SELECT MAX(salary)<br />
<br />
8 FROM employees<br />
<br />
9 WHERE SUBSTR(job_id, 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
<br />
10 ORDER BY 1;<br />
<br />
<br />
<br />
Employee JOB_ID Salary DEPARTMENT_NAME <br />
<br />
------------------------- ---------- ------------ ------------------------------ <br />
<br />
Eleni Zlotkey SA_MAN =====$10,500 Sales <br />
<br />
Jonathon Taylor SA_REP ======$8,600 Sales <br />
<br />
Pat Fay MK_REP ======$6,000 Marketing <br />
<br />
<br />
<br />
SQL><br />
<br />
SQL> SELECT last_name, salary, job_id<br />
<br />
2 FROM employees<br />
<br />
3 WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
<br />
4 AND salary ><br />
<br />
5 (SELECT MAX(salary)<br />
<br />
6 FROM employees<br />
<br />
7 JOIN departments USING (department_id)<br />
<br />
8 JOIN locations USING (location_id)<br />
<br />
9 WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
<br />
<br />
LAST_NAME SALARY JOB_ID <br />
<br />
------------------------- ---------- ---------- <br />
<br />
Kochhar 17000 AD_VP <br />
<br />
De Haan 17000 AD_VP <br />
<br />
<br />
<br />
SQL> SELECT last_name, first_name, job_id, hire_date<br />
<br />
2 FROM employees<br />
<br />
3 WHERE hire_date ><br />
<br />
4 (SELECT MAX(hire_date)<br />
<br />
5 FROM employees<br />
<br />
6 WHERE department_id =<br />
<br />
7 (SELECT department_id<br />
<br />
8 FROM departments<br />
<br />
9 WHERE UPPER(department_name) = 'IT'))<br />
<br />
10 AND (department_id !=<br />
<br />
11 (SELECT department_id<br />
<br />
12 FROM departments<br />
<br />
13 WHERE UPPER(department_name) = 'EXECUTIVE')<br />
<br />
14 OR department_id IS NULL)<br />
<br />
15 ORDER BY 4 DESC;<br />
<br />
<br />
<br />
LAST_NAME FIRST_NAME JOB_ID HIRE_DATE <br />
<br />
------------------------- -------------------- ---------- --------- <br />
<br />
Zlotkey Eleni SA_MAN 29-JAN-00 <br />
<br />
Mourgos Kevin ST_MAN 16-NOV-99 <br />
<br />
Grant Kimberely SA_REP 24-MAY-99 <br />
<br />
<br />
<br />
SQL> SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay",<br />
<br />
2 MIN(salary) "Lowest Dept/Job Pay"<br />
<br />
3 FROM employees<br />
<br />
4 WHERE UPPER(job_id) NOT LIKE '%VP'<br />
<br />
5 AND department_id NOT IN<br />
<br />
6 (SELECT department_id<br />
<br />
7 FROM departments<br />
<br />
8 WHERE UPPER(department_name) IN ('IT','SALES'))<br />
<br />
9 GROUP BY department_id, job_id<br />
<br />
10 HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
<br />
11 ORDER BY 1, 2;<br />
<br />
<br />
<br />
DEPARTMENT_ID JOB_ID Average Dept/Job Pay Lowest Dept/Job Pay <br />
<br />
------------- ---------- -------------------- ------------------- <br />
<br />
20 MK_MAN 13000 13000 <br />
<br />
20 MK_REP 6000 6000 <br />
<br />
50 ST_MAN 5800 5800 <br />
<br />
110 AC_ACCOUNT 8300 8300 <br />
<br />
110 AC_MGR 12000 12000 <br />
<br />
<br />
<br />
SQL> SELECT department_id, department_name,<br />
<br />
2 RPAD(TRIM(NVL(city, 'Not Assinged Yet')), 25, ' ') "City",<br />
<br />
3 COUNT(DISTINCT job_id) "# of Jobs"<br />
<br />
4 FROM employees<br />
<br />
5 RIGHT OUTER JOIN departments USING (department_id)<br />
<br />
6 LEFT OUTER JOIN locations USING (location_id)<br />
<br />
7 GROUP BY department_id, department_name, city;<br />
<br />
<br />
<br />
DEPARTMENT_ID DEPARTMENT_NAME City # of Jobs <br />
<br />
------------- ------------------------------ ------------------------- ---------- <br />
<br />
110 Accounting Seattle 2 <br />
<br />
50 Shipping South San Francisco 2 <br />
<br />
80 Sales Oxford 2 <br />
<br />
10 Administration Seattle 1 <br />
<br />
190 Contracting Seattle 0 <br />
<br />
90 Executive Seattle 2 <br />
<br />
20 Marketing Toronto 2 <br />
<br />
60 IT Southlake 1 <br />
<br />
<br />
<br />
8 rows selected.<br />
<br />
<br />
<br />
SQL> spool off<br />
</pre><br />
==SQL Statements==<br />
===1.===<br />
''YuJin''<br />
<pre><br />
SELECT employee_id, RPAD(CONCAT(CONCAT(last_name, ', '),first_name), 25) "Full Name",<br />
job_id,<br />
TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
"Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
ORDER BY 4 DESC;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT employee_id,<br />
SUBSTR(last_name ||' '|| first_name, 1, 25) "Full Name",<br />
job_id,<br />
TO_CHAR(hire_date,'fmMonth "First in the year" YYYY') "Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date,'fmMON') IN ('MAY','NOV')<br />
ORDER BY hire_date DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select employee_id "Emp#",<br />
(last_name ||', '|| first_name) "Full Name",<br />
job_id "Job",<br />
to_char(trunc(hire_date, 'MONTH'), 'FMMonth Ddspth "in the year"<br />
YYYY') "Start Date"<br />
from employees<br />
where to_char(hire_date, 'fmMonth') in ('May', 'November')<br />
order by hire_date desc;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT employee_id, SUBSTR(last_name ||' '|| first_name, 1, 25) "Full Name",<br />
job_id,<br />
TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
"Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
ORDER BY hire_date DESC;<br />
</pre><br />
<br />
===2.===<br />
''YuJin''<br />
<pre><br />
SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
|| job_id || ' will have a new salary of $' || salary * 1.15 "Happy Employees"<br />
FROM employees<br />
WHERE salary BETWEEN 5000 AND 12000<br />
AND job_id IN ('IT_PROG', 'ST_CLERK')<br />
ORDER BY employee_id;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT 'Employee named '||first_name||' '||last_name||' who is '||job_id||' will have a new salary of $'|| salary *1.15 "Happy Employees"<br />
FROM employees<br />
WHERE job_id IN ('IT_PROG','ST CLERK')<br />
AND (salary BETWEEN 5000 AND 12000)<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
Select ('Employee named ' || first_name ||' '|| last_name || ' who is ' || job_id || ' will have a new salary of ' || (salary*1.15)) "Happy Employees"<br />
From employees<br />
Where salary between 5000 and 12000<br />
And upper(job_id) in ('IT_PROG', 'ST_CLERK')<br />
order by employee_id;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
|| job_id || ' will have a new salary of ' || TO_CHAR(salary * 1.15, 'fm$999999') "Happy Employees"<br />
FROM employees<br />
WHERE salary BETWEEN 5000 AND 12000<br />
AND UPPER(job_id) IN ('IT_PROG', 'ST_CLERK')<br />
ORDER BY employee_id;<br />
</pre><br />
<br />
===3.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, salary, job_id,<br />
RPAD(NVL(TO_CHAR(manager_id), 'No Manager'), 10) "Manager #",<br />
LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
FROM employees<br />
WHERE (job_id LIKE 'MK%' OR manager_id IS NULL)<br />
AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
ORDER BY 2 DESC;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, salary, job_id, NVL(TO_CHAR(manager_id),'No Manager') Manager#,<br />
TO_CHAR(salary*12,'$999,999') "Total Income"<br />
FROM employees<br />
WHERE (manager_id IS NULL<br />
OR job_id LIKE 'MK%')<br />
AND ( salary* (NVL(commission_pct,0) + 1) + 1000 ) > 10000<br />
ORDER BY salary DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, salary, job_id, nvl(to_char(manager_id),'No Manager') Manager#,<br />
to_char(salary*12,'$999,999') "Total Income"<br />
from employees<br />
where (upper(job_id) like 'MK%' or manager_id IS NULL)<br />
and salary * (1 + nvl(commission_pct, 0)) + 1000 > 10000<br />
order by 2 desc;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT last_name, salary, job_id,<br />
SUBSTR(NVL(TO_CHAR(manager_id), 'No Manager'), 1, 10) "Manager #",<br />
LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
FROM employees<br />
WHERE (UPPER(job_id) LIKE 'MK%' OR manager_id IS NULL)<br />
AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
ORDER BY salary DESC;<br />
<br />
</pre><br />
<br />
===4.===<br />
''YuJin''<br />
<pre><br />
SELECT RPAD(CONCAT(CONCAT(first_name,' '),last_name), 25) "Employee", job_id,<br />
LPAD(TRIM(TO_CHAR(salary, '$999,999')), 12, '=') "Salary", department_name<br />
FROM employees e JOIN departments d<br />
ON (e.department_id = d.department_id)<br />
WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
AND salary <<br />
(SELECT MAX(salary)<br />
FROM employees<br />
WHERE SUBSTR(job_id, 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
ORDER BY 1;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT SUBSTR(first_name||' '||last_name, 25) Employee, job_id,<br />
LPAD(TO_CHAR(salary,'$99,999'), 12, '=') Salary, department_name<br />
FROM employees e JOIN departments d<br />
ON (d.department_id=e.department_id)<br />
WHERE salary < (SELECT MAX(salary)<br />
FROM employees<br />
WHERE UPPER(SUBSTR(job_id,4)) NOT IN ('VP', 'PRES', 'MAN', 'MGR')<br />
)<br />
AND UPPER(department_name) IN ('MARKETING','SALES')<br />
ORDER BY first_name, last_name<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select substr(first_name ||' '|| last_name) "Employee", job_id, to_char(salary, '$999,999', 12, '=') Salary, department_name<br />
from employees e join departments d<br />
on (e.department_id = d.department_id)<br />
where upper(department_name) in ('MARKETING', 'SALES')<br />
and salary < (select max(salary)<br />
from employees<br />
where substr(job_id,4) not in ('PRES','VP','MAN','MGR'))<br />
order by "Employee";<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT SUBSTR(first_name ||' '|| last_name, 1, 25) "Employee", job_id,<br />
LPAD(TO_CHAR(salary, 'fm$999,999'), 12, '=') "Salary", department_name<br />
FROM employees e JOIN departments d<br />
ON (e.department_id = d.department_id)<br />
WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
AND salary <<br />
(SELECT MAX(salary)<br />
FROM employees<br />
WHERE SUBSTR(UPPER(job_id), 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
ORDER BY 1;<br />
</pre><br />
<br />
===5.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
AND salary ><br />
(SELECT MAX(salary)<br />
FROM employees<br />
JOIN departments USING (department_id)<br />
JOIN locations USING (location_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE salary > (SELECT MAX(salary)<br />
FROM locations JOIN departments<br />
USING (location_id)<br />
JOIN employees<br />
USING (department_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD')<br />
)<br />
AND UPPER(job_id) NOT LIKE '%PRES'<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, salary, job_id<br />
from employees<br />
where salary > (select max(salary)<br />
from employees join departments<br />
using (department_id)<br />
join locations<br />
using (location_id)<br />
where upper(city) in ('TORONTO','OXFORD'))<br />
and upper(job_id) not like '%PRES'<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
AND salary ><br />
(SELECT MAX(salary)<br />
FROM employees<br />
JOIN departments USING (department_id)<br />
JOIN locations USING (location_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
</pre><br />
<br />
===6.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, first_name, job_id, hire_date<br />
FROM employees<br />
WHERE hire_date ><br />
(SELECT MAX(hire_date)<br />
FROM employees<br />
WHERE department_id =<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'IT'))<br />
AND (department_id !=<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'EXECUTIVE')<br />
OR department_id IS NULL)<br />
ORDER BY 4 DESC;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, first_name, job_id, hire_date<br />
FROM employees e<br />
WHERE hire_date > (SELECT MAX(hire_date)<br />
FROM employees<br />
WHERE department_id = (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'IT'<br />
)<br />
)<br />
AND (department_id <> (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) ='EXECUTIVE')<br />
OR department_id IS NULL)<br />
ORDER BY hire_date DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, first_name, job_id, hire_date<br />
from employees<br />
where hire_date > (select max(hire_date)<br />
from employees<br />
where department_id = (select department_id<br />
from departments<br />
where upper(department_name) = 'IT'))<br />
and (department_id != (select department_id<br />
from departments<br />
where upper(department_name) = 'EXECUTIVE')<br />
or department_id IS NULL)<br />
order by hire_date desc;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT last_name, first_name, job_id, hire_date<br />
FROM employees<br />
WHERE hire_date ><br />
(SELECT MAX(hire_date)<br />
FROM employees<br />
WHERE department_id =<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'IT'))<br />
AND (department_id !=<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'EXECUTIVE')<br />
OR department_id IS NULL)<br />
ORDER BY hire_date DESC;<br />
</pre><br />
<br />
===7.===<br />
''YuJin''<br />
<pre><br />
SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay",<br />
MIN(salary) "Lowest Dept/Job Pay"<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%VP'<br />
AND department_id NOT IN<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) IN ('IT','SALES'))<br />
GROUP BY department_id, job_id<br />
HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
ORDER BY 1, 2;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay", MIN(salary) "Lowest Dept/Job Pay"<br />
FROM employees<br />
WHERE department_id <> ALL (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) IN ('IT','SALES')<br />
)<br />
AND job_id NOT LIKE '%VP'<br />
GROUP BY department_id, job_id<br />
HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
ORDER BY department_id, job_id<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select department_id, job_id, avg(salary) "Average Dept/Job Pay", min(salary) "Lowest Dept/Job Pay"<br />
from employees<br />
where upper(job_id) not like '%VP'<br />
and department_id != all(select department_id<br />
from departments<br />
where upper(department_name) in ('IT','SALES'))<br />
group by department_id, job_id<br />
having min(salary) between 5000 and 15000<br />
order by department_id, job_id<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay",<br />
MIN(salary) "Lowest Dept/Job Pay"<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%VP'<br />
AND department_id != ALL<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) IN ('IT','SALES'))<br />
GROUP BY department_id, job_id<br />
HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
ORDER BY department_id, job_id;<br />
</pre><br />
<br />
===8.===<br />
''YuJin''<br />
<pre><br />
SELECT department_id, department_name,<br />
RPAD(TRIM(NVL(city, 'Not Assinged Yet')), 25, ' ') "City",<br />
COUNT(DISTINCT job_id) "# of Jobs"<br />
FROM employees<br />
RIGHT OUTER JOIN departments USING (department_id)<br />
LEFT OUTER JOIN locations USING (location_id)<br />
GROUP BY department_id, department_name, city;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT department_id, department_name, SUBSTR(NVL(city,'Not Assigned Yet'),1,25) City,<br />
COUNT(DISTINCT job_id) "# of Jobs"<br />
FROM locations l RIGHT OUTER JOIN departments d<br />
USING (location_id)<br />
LEFT OUTER JOIN employees e<br />
USING (department_id)<br />
GROUP BY department_id, department_name, city<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select department_id, department_name, substr(nvl(city,'Not Assigned Yet'),1,25) City,<br />
count(distinct job_id) "# of Jobs"<br />
from employees right outer join departments<br />
using (department_id)<br />
left outer join locations<br />
using (location_id)<br />
group by department_id, department_name, city<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT department_id, department_name,<br />
SUBSTR(NVL(city, 'Not Assinged Yet'),1, 25) "City",<br />
COUNT(DISTINCT job_id) "# of Jobs"<br />
FROM employees<br />
RIGHT OUTER JOIN departments USING (department_id)<br />
LEFT OUTER JOIN locations USING (location_id)<br />
GROUP BY department_id, department_name, city;<br />
<br />
</pre></div>
Yujin.jeong
https://wiki.cdot.senecacollege.ca/w/index.php?title=J.Y.S&diff=50959
J.Y.S
2010-11-30T18:20:51Z
<p>Yujin.jeong: /* DML Statements (INSERT INTO) */</p>
<hr />
<div>This page is to efficiently manage our group assignments!<br />
== Member List == <br />
*[mailto:,,yjeong@learn.senecac.on.ca,?subject=dbs301 Email All]<br />
<br />
{| class="wikitable sortable" border="1" cellpadding="5"<br />
! First Name !! Last Name !! wiki id !! Learn e-mail !! Phone<br />
|-<br />
|[[User:Yujin.jeong | YuJin]]||Jeong||[[Special:Contributions/yujin.jeong | yujin.jeong]]||[mailto:yjeong@learn.senecac.on.ca?sujbect=dbs301 yjeong]|| 647 - 832 - 6771<br />
|-<br />
<br />
|-<br />
|Saad|| || || ||<br />
|-<br />
<br />
|-<br />
|James|| || || ||<br />
|-<br />
|}<br />
<br />
=Assignment 3 (worth 9%)=<br />
==Due Date==<br />
Thursday, December 2nd, 3:00pm<br />
Printout of all TIC charts and DDL / DML statements<br />
<br />
==Solution==<br />
==== DDL Statements (CREATE TABLE) ====<br />
1. AREA<br />
<pre><br />
CREATE TABLE AREA<br />
(<br />
AreaID NUMBER(4) CONSTRAINT area_areaid_pk PRIMARY KEY,<br />
AreaName VARCHAR2(30) NOT NULL CONSTRAINT area_areaname_uk UNIQUE,<br />
ElmSchool VARCHAR2(40),<br />
MidSchool VARCHAR2(40),<br />
HighSchool VARCHAR2(40),<br />
Comments VARCHAR2(100)<br />
);<br />
</pre><br />
2. AGENCY<br />
<pre><br />
CREATE TABLE AGENCY<br />
(<br />
AgencyID NUMBER(4) CONSTRAINT agency_agencyid_pk PRIMARY KEY,<br />
AgencyName VARCHAR2(40) NOT NULL CONSTRAINT agency_agencyname_uk UNIQUE,<br />
AgencyPhone VARCHAR2(15) NOT NULL CONSTRAINT agency_agencyphone_uk UNIQUE<br />
);<br />
</pre><br />
3. PROPERTY<br />
<pre><br />
CREATE TABLE PROPERTY<br />
(<br />
PropertyID NUMBER(6),<br />
Street VARCHAR2(40) NOT NULL,<br />
City VARCHAR2(30) NOT NULL,<br />
Province CHAR(2) NOT NULL,<br />
PostalCode CHAR(6) NOT NULL,<br />
Bedrooms NUMBER(1) NOT NULL,<br />
Bathrooms NUMBER(1) NOT NULL,<br />
ListingPrice NUMBER(6) NOT NULL,<br />
AreaID NUMBER(4) NOT NULL,<br />
CONSTRAINT property_propertyid_pk PRIMARY KEY(PropertyID),<br />
CONSTRAINT property_bedrooms_ck CHECK(Bedrooms BETWEEN 1 AND 9),<br />
CONSTRAINT property_bathrooms_ck CHECK(Bathrooms BETWEEN 1 AND 9),<br />
CONSTRAINT property_listingprice_ck CHECK(ListingPrice BETWEEN 1 AND 4999999),<br />
CONSTRAINT property_areaid_fk FOREIGN KEY(AreaID) REFERENCES AREA(AreaID)<br />
);<br />
</pre><br />
4. SINGLE<br />
<pre><br />
CREATE TABLE SINGLE<br />
(<br />
PropertyID NUMBER(6), <br />
LotSize NUMBER(8,2) NOT NULL,<br />
CONSTRAINT single_propertyID_pk PRIMARY KEY(PropertyID), <br />
CONSTRAINT single_propertyID_fk FOREIGN KEY(PropertyID) REFERENCES PROPERTY(PropertyID),<br />
CONSTRAINT single_lotsize_ck CHECK(LotSize > 0)<br />
);<br />
<br />
</pre><br />
5. CONDO<br />
<pre><br />
CREATE TABLE CONDO<br />
(<br />
PropertyID NUMBER(6),<br />
Fee NUMBER(8,2) NOT NULL, <br />
CONSTRAINT condo_propertyID_pk PRIMARY KEY(PropertyID),<br />
CONSTRAINT condo_propertyID_fk FOREIGN KEY(PropertyID) REFERENCES PROPERTY(PropertyID),<br />
CONSTRAINT condo_fee_ck CHECK(Fee > 0)<br />
);<br />
<br />
</pre><br />
6. OUTLET<br />
<pre><br />
CREATE TABLE OUTLET<br />
(<br />
OutletID NUMBER(4), <br />
OutletName VARCHAR2(40) NOT NULL,<br />
OutletPhone VARCHAR2(15) NOT NULL,<br />
OutletType CHAR(1) NOT NULL,<br />
CONSTRAINT outlet_outletid_pk PRIMARY KEY(OutletID),<br />
CONSTRAINT outlet_outlettype_ck CHECK(OutletType IN('N','M','W','F')),<br />
CONSTRAINT outlet_outletname_type_uk UNIQUE(OutletName, OutletType)<br />
);<br />
<br />
</pre><br />
7. ADVERTISEMENT<br />
<pre><br />
CREATE TABLE ADVERTISEMENT<br />
(<br />
PropertyID NUMBER(6),<br />
OutletID NUMBER(4),<br />
AdvDate DATE,<br />
AdvCost NUMBER(6) NOT NULL,<br />
CONSTRAINT ad_adid_pk PRIMARY KEY(PropertyID, OutletID),<br />
CONSTRAINT ad_propertyid_fk FOREIGN KEY(PropertyID) REFERENCES PROPERTY(PropertyID),<br />
CONSTRAINT ad_outletid_fk FOREIGN KEY(OutletID) REFERENCES OUTLET(OutletID),<br />
CONSTRAINT ad_advcost_ck CHECK(AdvCost > 0)<br />
);<br />
</pre><br />
8. CLIENT<br />
<pre><br />
CREATE TABLE CLIENT<br />
(<br />
ClientID NUMBER(6),<br />
Fname VARCHAR2(30) NOT NULL,<br />
Lname VARCHAR2(30) NOT NULL,<br />
Phone VARCHAR2(15) NOT NULL,<br />
Email VARCHAR2(40),<br />
RefID NUMBER(6),<br />
CONSTRAINT client_clientid_pk PRIMARY KEY(ClientID),<br />
CONSTRAINT client_phone_uk UNIQUE(Phone),<br />
CONSTRAINT client_email_uk UNIQUE(Email),<br />
CONSTRAINT client_refid_fk FOREIGN KEY(RefID) REFERENCES CLIENT(ClientID)<br />
);<br />
</pre><br />
9. DEED<br />
<pre><br />
CREATE TABLE DEED<br />
(<br />
PropertyID NUMBER(6),<br />
SellerID NUMBER(6),<br />
OwnPct NUMBER(5,2) NOT NULL,<br />
BuyerID NUMBER(6),<br />
BuyPrice NUMBER(7),<br />
CONSTRAINT deed_deedid_pk PRIMARY KEY(PropertyID, SellerID),<br />
CONSTRAINT deed_propertyid_fk FOREIGN KEY(PropertyID) REFERENCES PROPERTY(PropertyID),<br />
CONSTRAINT deed_sellerid_fk FOREIGN KEY(SellerID) REFERENCES CLIENT(ClientID),<br />
CONSTRAINT deed_buyerid_fk FOREIGN KEY(BuyerID) REFERENCES CLIENT(ClientID),<br />
CONSTRAINT deed_ownpct_ck CHECK(OwnPct > 0 AND OwnPct <= 100),<br />
CONSTRAINT deed_buyprice_ck CHECK(BuyPrice BETWEEN 1 AND 4999999)<br />
);<br />
<br />
</pre><br />
<br />
==== DML Statements (INSERT INTO) ====<br />
<br />
1. AREA<BR><br />
<pre><br />
INSERT ALL<br />
INTO AREA VALUES(1001, 'Bayview Village', 'Adrienne Clarkson Public School', 'Amesbury Middle School', 'Bayview Secondary School', 'Upper middle class to upper class neighborhood in Toronto.')<br />
INTO AREA VALUES(3001,'Laurelwood Elizabeth Ziegler Primary School','Waterloo Middle School','Saint David Catholic Secondary School','Close to University of Waterloo and many popular amenities.')<br />
INTO AREA VALUES(4001,'Silver Heights','Alison Park Primary School'.'Eastwood Middle School','King Edward Secondary School',null)<br />
INTO AREA VALUES(5001,'Kitsilano','Henry Hudson Elementary School','St George School','Kitsilano Secondary School','Very well-off area.')<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
<br />
2. AGENCY<BR><br />
<pre><br />
INSERT ALL<br />
INTO VALUES(1055,'Sutton Group Regal Realty','416.875.9873')<br />
INTO VALUES(3079,'MacDonald Realty','604.986.0231')<br />
INTO VALUES(7024,'Royal LePage Groupe Newton','514.234.9283')<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
<br />
3. PROPERTY<BR><br />
<pre><br />
INSERT ALL<br />
INTO VALUES(134982,'27 King's College Circle','Toronto','ON','M5S1A1',2,2,380000,1001,1055)<br />
INTO VALUES(149800','17 Pleasant View Dr.','Toronto','ON','M2J2H1',3,2,470000,1001)<br />
INTO VALUES(152932,'17 Barberry Pl. #1313','Toronto','ON','M8W7V4,1,1,259888,1001)<br />
INTO VALUES(495820,'776 Laurelwood Dr.','Waterloo','ON','H3A2T5',2,2,295000,3001,3079)<br />
INTO VALUES(500211,'409 Kelso Cr.','Cambridge','ON','H3Y7S3',3,2,485000,4001)<br />
INTO VALUES(139204,'3043 Crown St.','Vancouver','BC','U3J3M6',5,3,1398000,5001,7024)<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
4. SINGLE<BR><br />
<pre><br />
INSERT ALL<br />
INTO VALUES()<br />
INTO VALUES()<br />
INTO VALUES()<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
5. CONDO<BR><br />
<pre><br />
INSERT ALL<br />
INTO VALUES()<br />
INTO VALUES()<br />
INTO VALUES()<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
6. OUTLET<BR><br />
<pre><br />
INSERT ALL<br />
INTO VALUES()<br />
INTO VALUES()<br />
INTO VALUES()<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
7. ADVERTISEMENT<BR><br />
<pre><br />
INSERT ALL<br />
INTO VALUES()<br />
INTO VALUES()<br />
INTO VALUES()<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
8. CLIENT<BR><br />
<pre><br />
INSERT ALL<br />
INTO VALUES()<br />
INTO VALUES()<br />
INTO VALUES()<br />
INTO VALUES()<br />
INTO VALUES()<br />
INTO VALUES()<br />
INTO VALUES()<br />
INTO VALUES()<br />
INTO VALUES()<br />
INTO VALUES()<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
9. DEED<BR><br />
<pre><br />
INSERT ALL<br />
INTO VALUES()<br />
INTO VALUES()<br />
INTO VALUES()<br />
SELECT * FROM DUAL;<br />
</pre><br />
<br />
==== CREATE VIEW ====<br />
<br />
=Assignment 1=<br />
==Due Date==<br />
Thursday, October 21st, 4:00pm<br />
Printout submission only( SELECT Statements + ALL outputs)<br />
==Description==<br />
[https://cs.senecac.on.ca/~nconkic/assign1.doc Assignment1]<br />
==Solution==<br />
<pre><br />
SQL> SELECT employee_id, RPAD(CONCAT(CONCAT(last_name, ', '),first_name), 25) "Full Name",<br />
<br />
2 job_id,<br />
<br />
3 TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
<br />
4 "Start Date"<br />
<br />
5 FROM employees<br />
<br />
6 WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
<br />
7 ORDER BY 4 DESC;<br />
<br />
<br />
<br />
EMPLOYEE_ID Full Name JOB_ID Start Date <br />
<br />
----------- ------------------------- ---------- ----------------------------------------- <br />
<br />
124 Mourgos, Kevin ST_MAN November First in the year 1999 <br />
<br />
178 Grant, Kimberely SA_REP May First in the year 1999 <br />
<br />
174 Abel, Ellen SA_REP May First in the year 1996 <br />
<br />
104 Ernst, Bruce IT_PROG May First in the year 1991 <br />
<br />
<br />
<br />
SQL> SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
<br />
2 || job_id || ' will have a new salary of $' || salary * 1.15 "Happy Employees"<br />
<br />
3 FROM employees<br />
<br />
4 WHERE salary BETWEEN 5000 AND 12000<br />
<br />
5 AND job_id IN ('IT_PROG', 'ST_CLERK')<br />
<br />
6 ORDER BY employee_id;<br />
<br />
<br />
<br />
Happy Employees <br />
<br />
----------------------------------------------------------------------------------------------------<br />
<br />
Employee named Alexander Hunold who is IT_PROG will have a new salary of $10350 <br />
<br />
Employee named Bruce Ernst who is IT_PROG will have a new salary of $6900 <br />
<br />
<br />
<br />
SQL> SELECT last_name, salary, job_id,<br />
<br />
2 RPAD(NVL(TO_CHAR(manager_id), 'No Manager'), 10) "Manager #",<br />
<br />
3 LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
<br />
4 FROM employees<br />
<br />
5 WHERE (job_id LIKE 'MK%' OR manager_id IS NULL)<br />
<br />
6 AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
<br />
7 ORDER BY 2 DESC;<br />
<br />
<br />
<br />
LAST_NAME SALARY JOB_ID Manager # Total Income <br />
<br />
------------------------- ---------- ---------- ---------- ------------ <br />
<br />
King 24000 AD_PRES No Manager $288,000 <br />
<br />
Hartstein 13000 MK_MAN 100 $156,000 <br />
<br />
<br />
<br />
SQL> SELECT RPAD(CONCAT(CONCAT(first_name,' '),last_name), 25) "Employee", job_id,<br />
<br />
2 LPAD(TRIM(TO_CHAR(salary, '$999,999')), 12, '=') "Salary", department_name<br />
<br />
3 FROM employees e JOIN departments d<br />
<br />
4 ON (e.department_id = d.department_id)<br />
<br />
5 WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
<br />
6 AND salary <<br />
<br />
7 (SELECT MAX(salary)<br />
<br />
8 FROM employees<br />
<br />
9 WHERE SUBSTR(job_id, 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
<br />
10 ORDER BY 1;<br />
<br />
<br />
<br />
Employee JOB_ID Salary DEPARTMENT_NAME <br />
<br />
------------------------- ---------- ------------ ------------------------------ <br />
<br />
Eleni Zlotkey SA_MAN =====$10,500 Sales <br />
<br />
Jonathon Taylor SA_REP ======$8,600 Sales <br />
<br />
Pat Fay MK_REP ======$6,000 Marketing <br />
<br />
<br />
<br />
SQL><br />
<br />
SQL> SELECT last_name, salary, job_id<br />
<br />
2 FROM employees<br />
<br />
3 WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
<br />
4 AND salary ><br />
<br />
5 (SELECT MAX(salary)<br />
<br />
6 FROM employees<br />
<br />
7 JOIN departments USING (department_id)<br />
<br />
8 JOIN locations USING (location_id)<br />
<br />
9 WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
<br />
<br />
LAST_NAME SALARY JOB_ID <br />
<br />
------------------------- ---------- ---------- <br />
<br />
Kochhar 17000 AD_VP <br />
<br />
De Haan 17000 AD_VP <br />
<br />
<br />
<br />
SQL> SELECT last_name, first_name, job_id, hire_date<br />
<br />
2 FROM employees<br />
<br />
3 WHERE hire_date ><br />
<br />
4 (SELECT MAX(hire_date)<br />
<br />
5 FROM employees<br />
<br />
6 WHERE department_id =<br />
<br />
7 (SELECT department_id<br />
<br />
8 FROM departments<br />
<br />
9 WHERE UPPER(department_name) = 'IT'))<br />
<br />
10 AND (department_id !=<br />
<br />
11 (SELECT department_id<br />
<br />
12 FROM departments<br />
<br />
13 WHERE UPPER(department_name) = 'EXECUTIVE')<br />
<br />
14 OR department_id IS NULL)<br />
<br />
15 ORDER BY 4 DESC;<br />
<br />
<br />
<br />
LAST_NAME FIRST_NAME JOB_ID HIRE_DATE <br />
<br />
------------------------- -------------------- ---------- --------- <br />
<br />
Zlotkey Eleni SA_MAN 29-JAN-00 <br />
<br />
Mourgos Kevin ST_MAN 16-NOV-99 <br />
<br />
Grant Kimberely SA_REP 24-MAY-99 <br />
<br />
<br />
<br />
SQL> SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay",<br />
<br />
2 MIN(salary) "Lowest Dept/Job Pay"<br />
<br />
3 FROM employees<br />
<br />
4 WHERE UPPER(job_id) NOT LIKE '%VP'<br />
<br />
5 AND department_id NOT IN<br />
<br />
6 (SELECT department_id<br />
<br />
7 FROM departments<br />
<br />
8 WHERE UPPER(department_name) IN ('IT','SALES'))<br />
<br />
9 GROUP BY department_id, job_id<br />
<br />
10 HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
<br />
11 ORDER BY 1, 2;<br />
<br />
<br />
<br />
DEPARTMENT_ID JOB_ID Average Dept/Job Pay Lowest Dept/Job Pay <br />
<br />
------------- ---------- -------------------- ------------------- <br />
<br />
20 MK_MAN 13000 13000 <br />
<br />
20 MK_REP 6000 6000 <br />
<br />
50 ST_MAN 5800 5800 <br />
<br />
110 AC_ACCOUNT 8300 8300 <br />
<br />
110 AC_MGR 12000 12000 <br />
<br />
<br />
<br />
SQL> SELECT department_id, department_name,<br />
<br />
2 RPAD(TRIM(NVL(city, 'Not Assinged Yet')), 25, ' ') "City",<br />
<br />
3 COUNT(DISTINCT job_id) "# of Jobs"<br />
<br />
4 FROM employees<br />
<br />
5 RIGHT OUTER JOIN departments USING (department_id)<br />
<br />
6 LEFT OUTER JOIN locations USING (location_id)<br />
<br />
7 GROUP BY department_id, department_name, city;<br />
<br />
<br />
<br />
DEPARTMENT_ID DEPARTMENT_NAME City # of Jobs <br />
<br />
------------- ------------------------------ ------------------------- ---------- <br />
<br />
110 Accounting Seattle 2 <br />
<br />
50 Shipping South San Francisco 2 <br />
<br />
80 Sales Oxford 2 <br />
<br />
10 Administration Seattle 1 <br />
<br />
190 Contracting Seattle 0 <br />
<br />
90 Executive Seattle 2 <br />
<br />
20 Marketing Toronto 2 <br />
<br />
60 IT Southlake 1 <br />
<br />
<br />
<br />
8 rows selected.<br />
<br />
<br />
<br />
SQL> spool off<br />
</pre><br />
==SQL Statements==<br />
===1.===<br />
''YuJin''<br />
<pre><br />
SELECT employee_id, RPAD(CONCAT(CONCAT(last_name, ', '),first_name), 25) "Full Name",<br />
job_id,<br />
TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
"Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
ORDER BY 4 DESC;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT employee_id,<br />
SUBSTR(last_name ||' '|| first_name, 1, 25) "Full Name",<br />
job_id,<br />
TO_CHAR(hire_date,'fmMonth "First in the year" YYYY') "Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date,'fmMON') IN ('MAY','NOV')<br />
ORDER BY hire_date DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select employee_id "Emp#",<br />
(last_name ||', '|| first_name) "Full Name",<br />
job_id "Job",<br />
to_char(trunc(hire_date, 'MONTH'), 'FMMonth Ddspth "in the year"<br />
YYYY') "Start Date"<br />
from employees<br />
where to_char(hire_date, 'fmMonth') in ('May', 'November')<br />
order by hire_date desc;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT employee_id, SUBSTR(last_name ||' '|| first_name, 1, 25) "Full Name",<br />
job_id,<br />
TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
"Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
ORDER BY hire_date DESC;<br />
</pre><br />
<br />
===2.===<br />
''YuJin''<br />
<pre><br />
SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
|| job_id || ' will have a new salary of $' || salary * 1.15 "Happy Employees"<br />
FROM employees<br />
WHERE salary BETWEEN 5000 AND 12000<br />
AND job_id IN ('IT_PROG', 'ST_CLERK')<br />
ORDER BY employee_id;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT 'Employee named '||first_name||' '||last_name||' who is '||job_id||' will have a new salary of $'|| salary *1.15 "Happy Employees"<br />
FROM employees<br />
WHERE job_id IN ('IT_PROG','ST CLERK')<br />
AND (salary BETWEEN 5000 AND 12000)<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
Select ('Employee named ' || first_name ||' '|| last_name || ' who is ' || job_id || ' will have a new salary of ' || (salary*1.15)) "Happy Employees"<br />
From employees<br />
Where salary between 5000 and 12000<br />
And upper(job_id) in ('IT_PROG', 'ST_CLERK')<br />
order by employee_id;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
|| job_id || ' will have a new salary of ' || TO_CHAR(salary * 1.15, 'fm$999999') "Happy Employees"<br />
FROM employees<br />
WHERE salary BETWEEN 5000 AND 12000<br />
AND UPPER(job_id) IN ('IT_PROG', 'ST_CLERK')<br />
ORDER BY employee_id;<br />
</pre><br />
<br />
===3.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, salary, job_id,<br />
RPAD(NVL(TO_CHAR(manager_id), 'No Manager'), 10) "Manager #",<br />
LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
FROM employees<br />
WHERE (job_id LIKE 'MK%' OR manager_id IS NULL)<br />
AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
ORDER BY 2 DESC;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, salary, job_id, NVL(TO_CHAR(manager_id),'No Manager') Manager#,<br />
TO_CHAR(salary*12,'$999,999') "Total Income"<br />
FROM employees<br />
WHERE (manager_id IS NULL<br />
OR job_id LIKE 'MK%')<br />
AND ( salary* (NVL(commission_pct,0) + 1) + 1000 ) > 10000<br />
ORDER BY salary DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, salary, job_id, nvl(to_char(manager_id),'No Manager') Manager#,<br />
to_char(salary*12,'$999,999') "Total Income"<br />
from employees<br />
where (upper(job_id) like 'MK%' or manager_id IS NULL)<br />
and salary * (1 + nvl(commission_pct, 0)) + 1000 > 10000<br />
order by 2 desc;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT last_name, salary, job_id,<br />
SUBSTR(NVL(TO_CHAR(manager_id), 'No Manager'), 1, 10) "Manager #",<br />
LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
FROM employees<br />
WHERE (UPPER(job_id) LIKE 'MK%' OR manager_id IS NULL)<br />
AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
ORDER BY salary DESC;<br />
<br />
</pre><br />
<br />
===4.===<br />
''YuJin''<br />
<pre><br />
SELECT RPAD(CONCAT(CONCAT(first_name,' '),last_name), 25) "Employee", job_id,<br />
LPAD(TRIM(TO_CHAR(salary, '$999,999')), 12, '=') "Salary", department_name<br />
FROM employees e JOIN departments d<br />
ON (e.department_id = d.department_id)<br />
WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
AND salary <<br />
(SELECT MAX(salary)<br />
FROM employees<br />
WHERE SUBSTR(job_id, 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
ORDER BY 1;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT SUBSTR(first_name||' '||last_name, 25) Employee, job_id,<br />
LPAD(TO_CHAR(salary,'$99,999'), 12, '=') Salary, department_name<br />
FROM employees e JOIN departments d<br />
ON (d.department_id=e.department_id)<br />
WHERE salary < (SELECT MAX(salary)<br />
FROM employees<br />
WHERE UPPER(SUBSTR(job_id,4)) NOT IN ('VP', 'PRES', 'MAN', 'MGR')<br />
)<br />
AND UPPER(department_name) IN ('MARKETING','SALES')<br />
ORDER BY first_name, last_name<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select substr(first_name ||' '|| last_name) "Employee", job_id, to_char(salary, '$999,999', 12, '=') Salary, department_name<br />
from employees e join departments d<br />
on (e.department_id = d.department_id)<br />
where upper(department_name) in ('MARKETING', 'SALES')<br />
and salary < (select max(salary)<br />
from employees<br />
where substr(job_id,4) not in ('PRES','VP','MAN','MGR'))<br />
order by "Employee";<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT SUBSTR(first_name ||' '|| last_name, 1, 25) "Employee", job_id,<br />
LPAD(TO_CHAR(salary, 'fm$999,999'), 12, '=') "Salary", department_name<br />
FROM employees e JOIN departments d<br />
ON (e.department_id = d.department_id)<br />
WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
AND salary <<br />
(SELECT MAX(salary)<br />
FROM employees<br />
WHERE SUBSTR(UPPER(job_id), 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
ORDER BY 1;<br />
</pre><br />
<br />
===5.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
AND salary ><br />
(SELECT MAX(salary)<br />
FROM employees<br />
JOIN departments USING (department_id)<br />
JOIN locations USING (location_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE salary > (SELECT MAX(salary)<br />
FROM locations JOIN departments<br />
USING (location_id)<br />
JOIN employees<br />
USING (department_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD')<br />
)<br />
AND UPPER(job_id) NOT LIKE '%PRES'<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, salary, job_id<br />
from employees<br />
where salary > (select max(salary)<br />
from employees join departments<br />
using (department_id)<br />
join locations<br />
using (location_id)<br />
where upper(city) in ('TORONTO','OXFORD'))<br />
and upper(job_id) not like '%PRES'<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
AND salary ><br />
(SELECT MAX(salary)<br />
FROM employees<br />
JOIN departments USING (department_id)<br />
JOIN locations USING (location_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
</pre><br />
<br />
===6.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, first_name, job_id, hire_date<br />
FROM employees<br />
WHERE hire_date ><br />
(SELECT MAX(hire_date)<br />
FROM employees<br />
WHERE department_id =<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'IT'))<br />
AND (department_id !=<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'EXECUTIVE')<br />
OR department_id IS NULL)<br />
ORDER BY 4 DESC;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, first_name, job_id, hire_date<br />
FROM employees e<br />
WHERE hire_date > (SELECT MAX(hire_date)<br />
FROM employees<br />
WHERE department_id = (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'IT'<br />
)<br />
)<br />
AND (department_id <> (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) ='EXECUTIVE')<br />
OR department_id IS NULL)<br />
ORDER BY hire_date DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, first_name, job_id, hire_date<br />
from employees<br />
where hire_date > (select max(hire_date)<br />
from employees<br />
where department_id = (select department_id<br />
from departments<br />
where upper(department_name) = 'IT'))<br />
and (department_id != (select department_id<br />
from departments<br />
where upper(department_name) = 'EXECUTIVE')<br />
or department_id IS NULL)<br />
order by hire_date desc;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT last_name, first_name, job_id, hire_date<br />
FROM employees<br />
WHERE hire_date ><br />
(SELECT MAX(hire_date)<br />
FROM employees<br />
WHERE department_id =<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'IT'))<br />
AND (department_id !=<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'EXECUTIVE')<br />
OR department_id IS NULL)<br />
ORDER BY hire_date DESC;<br />
</pre><br />
<br />
===7.===<br />
''YuJin''<br />
<pre><br />
SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay",<br />
MIN(salary) "Lowest Dept/Job Pay"<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%VP'<br />
AND department_id NOT IN<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) IN ('IT','SALES'))<br />
GROUP BY department_id, job_id<br />
HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
ORDER BY 1, 2;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay", MIN(salary) "Lowest Dept/Job Pay"<br />
FROM employees<br />
WHERE department_id <> ALL (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) IN ('IT','SALES')<br />
)<br />
AND job_id NOT LIKE '%VP'<br />
GROUP BY department_id, job_id<br />
HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
ORDER BY department_id, job_id<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select department_id, job_id, avg(salary) "Average Dept/Job Pay", min(salary) "Lowest Dept/Job Pay"<br />
from employees<br />
where upper(job_id) not like '%VP'<br />
and department_id != all(select department_id<br />
from departments<br />
where upper(department_name) in ('IT','SALES'))<br />
group by department_id, job_id<br />
having min(salary) between 5000 and 15000<br />
order by department_id, job_id<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay",<br />
MIN(salary) "Lowest Dept/Job Pay"<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%VP'<br />
AND department_id != ALL<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) IN ('IT','SALES'))<br />
GROUP BY department_id, job_id<br />
HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
ORDER BY department_id, job_id;<br />
</pre><br />
<br />
===8.===<br />
''YuJin''<br />
<pre><br />
SELECT department_id, department_name,<br />
RPAD(TRIM(NVL(city, 'Not Assinged Yet')), 25, ' ') "City",<br />
COUNT(DISTINCT job_id) "# of Jobs"<br />
FROM employees<br />
RIGHT OUTER JOIN departments USING (department_id)<br />
LEFT OUTER JOIN locations USING (location_id)<br />
GROUP BY department_id, department_name, city;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT department_id, department_name, SUBSTR(NVL(city,'Not Assigned Yet'),1,25) City,<br />
COUNT(DISTINCT job_id) "# of Jobs"<br />
FROM locations l RIGHT OUTER JOIN departments d<br />
USING (location_id)<br />
LEFT OUTER JOIN employees e<br />
USING (department_id)<br />
GROUP BY department_id, department_name, city<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select department_id, department_name, substr(nvl(city,'Not Assigned Yet'),1,25) City,<br />
count(distinct job_id) "# of Jobs"<br />
from employees right outer join departments<br />
using (department_id)<br />
left outer join locations<br />
using (location_id)<br />
group by department_id, department_name, city<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT department_id, department_name,<br />
SUBSTR(NVL(city, 'Not Assinged Yet'),1, 25) "City",<br />
COUNT(DISTINCT job_id) "# of Jobs"<br />
FROM employees<br />
RIGHT OUTER JOIN departments USING (department_id)<br />
LEFT OUTER JOIN locations USING (location_id)<br />
GROUP BY department_id, department_name, city;<br />
<br />
</pre></div>
Yujin.jeong
https://wiki.cdot.senecacollege.ca/w/index.php?title=J.Y.S&diff=50958
J.Y.S
2010-11-30T18:14:31Z
<p>Yujin.jeong: /* DML Statements (INSERT INTO) */</p>
<hr />
<div>This page is to efficiently manage our group assignments!<br />
== Member List == <br />
*[mailto:,,yjeong@learn.senecac.on.ca,?subject=dbs301 Email All]<br />
<br />
{| class="wikitable sortable" border="1" cellpadding="5"<br />
! First Name !! Last Name !! wiki id !! Learn e-mail !! Phone<br />
|-<br />
|[[User:Yujin.jeong | YuJin]]||Jeong||[[Special:Contributions/yujin.jeong | yujin.jeong]]||[mailto:yjeong@learn.senecac.on.ca?sujbect=dbs301 yjeong]|| 647 - 832 - 6771<br />
|-<br />
<br />
|-<br />
|Saad|| || || ||<br />
|-<br />
<br />
|-<br />
|James|| || || ||<br />
|-<br />
|}<br />
<br />
=Assignment 3 (worth 9%)=<br />
==Due Date==<br />
Thursday, December 2nd, 3:00pm<br />
Printout of all TIC charts and DDL / DML statements<br />
<br />
==Solution==<br />
==== DDL Statements (CREATE TABLE) ====<br />
1. AREA<br />
<pre><br />
CREATE TABLE AREA<br />
(<br />
AreaID NUMBER(4) CONSTRAINT area_areaid_pk PRIMARY KEY,<br />
AreaName VARCHAR2(30) NOT NULL CONSTRAINT area_areaname_uk UNIQUE,<br />
ElmSchool VARCHAR2(40),<br />
MidSchool VARCHAR2(40),<br />
HighSchool VARCHAR2(40),<br />
Comments VARCHAR2(100)<br />
);<br />
</pre><br />
2. AGENCY<br />
<pre><br />
CREATE TABLE AGENCY<br />
(<br />
AgencyID NUMBER(4) CONSTRAINT agency_agencyid_pk PRIMARY KEY,<br />
AgencyName VARCHAR2(40) NOT NULL CONSTRAINT agency_agencyname_uk UNIQUE,<br />
AgencyPhone VARCHAR2(15) NOT NULL CONSTRAINT agency_agencyphone_uk UNIQUE<br />
);<br />
</pre><br />
3. PROPERTY<br />
<pre><br />
CREATE TABLE PROPERTY<br />
(<br />
PropertyID NUMBER(6),<br />
Street VARCHAR2(40) NOT NULL,<br />
City VARCHAR2(30) NOT NULL,<br />
Province CHAR(2) NOT NULL,<br />
PostalCode CHAR(6) NOT NULL,<br />
Bedrooms NUMBER(1) NOT NULL,<br />
Bathrooms NUMBER(1) NOT NULL,<br />
ListingPrice NUMBER(6) NOT NULL,<br />
AreaID NUMBER(4) NOT NULL,<br />
CONSTRAINT property_propertyid_pk PRIMARY KEY(PropertyID),<br />
CONSTRAINT property_bedrooms_ck CHECK(Bedrooms BETWEEN 1 AND 9),<br />
CONSTRAINT property_bathrooms_ck CHECK(Bathrooms BETWEEN 1 AND 9),<br />
CONSTRAINT property_listingprice_ck CHECK(ListingPrice BETWEEN 1 AND 4999999),<br />
CONSTRAINT property_areaid_fk FOREIGN KEY(AreaID) REFERENCES AREA(AreaID)<br />
);<br />
</pre><br />
4. SINGLE<br />
<pre><br />
CREATE TABLE SINGLE<br />
(<br />
PropertyID NUMBER(6), <br />
LotSize NUMBER(8,2) NOT NULL,<br />
CONSTRAINT single_propertyID_pk PRIMARY KEY(PropertyID), <br />
CONSTRAINT single_propertyID_fk FOREIGN KEY(PropertyID) REFERENCES PROPERTY(PropertyID),<br />
CONSTRAINT single_lotsize_ck CHECK(LotSize > 0)<br />
);<br />
<br />
</pre><br />
5. CONDO<br />
<pre><br />
CREATE TABLE CONDO<br />
(<br />
PropertyID NUMBER(6),<br />
Fee NUMBER(8,2) NOT NULL, <br />
CONSTRAINT condo_propertyID_pk PRIMARY KEY(PropertyID),<br />
CONSTRAINT condo_propertyID_fk FOREIGN KEY(PropertyID) REFERENCES PROPERTY(PropertyID),<br />
CONSTRAINT condo_fee_ck CHECK(Fee > 0)<br />
);<br />
<br />
</pre><br />
6. OUTLET<br />
<pre><br />
CREATE TABLE OUTLET<br />
(<br />
OutletID NUMBER(4), <br />
OutletName VARCHAR2(40) NOT NULL,<br />
OutletPhone VARCHAR2(15) NOT NULL,<br />
OutletType CHAR(1) NOT NULL,<br />
CONSTRAINT outlet_outletid_pk PRIMARY KEY(OutletID),<br />
CONSTRAINT outlet_outlettype_ck CHECK(OutletType IN('N','M','W','F')),<br />
CONSTRAINT outlet_outletname_type_uk UNIQUE(OutletName, OutletType)<br />
);<br />
<br />
</pre><br />
7. ADVERTISEMENT<br />
<pre><br />
CREATE TABLE ADVERTISEMENT<br />
(<br />
PropertyID NUMBER(6),<br />
OutletID NUMBER(4),<br />
AdvDate DATE,<br />
AdvCost NUMBER(6) NOT NULL,<br />
CONSTRAINT ad_adid_pk PRIMARY KEY(PropertyID, OutletID),<br />
CONSTRAINT ad_propertyid_fk FOREIGN KEY(PropertyID) REFERENCES PROPERTY(PropertyID),<br />
CONSTRAINT ad_outletid_fk FOREIGN KEY(OutletID) REFERENCES OUTLET(OutletID),<br />
CONSTRAINT ad_advcost_ck CHECK(AdvCost > 0)<br />
);<br />
</pre><br />
8. CLIENT<br />
<pre><br />
CREATE TABLE CLIENT<br />
(<br />
ClientID NUMBER(6),<br />
Fname VARCHAR2(30) NOT NULL,<br />
Lname VARCHAR2(30) NOT NULL,<br />
Phone VARCHAR2(15) NOT NULL,<br />
Email VARCHAR2(40),<br />
RefID NUMBER(6),<br />
CONSTRAINT client_clientid_pk PRIMARY KEY(ClientID),<br />
CONSTRAINT client_phone_uk UNIQUE(Phone),<br />
CONSTRAINT client_email_uk UNIQUE(Email),<br />
CONSTRAINT client_refid_fk FOREIGN KEY(RefID) REFERENCES CLIENT(ClientID)<br />
);<br />
</pre><br />
9. DEED<br />
<pre><br />
CREATE TABLE DEED<br />
(<br />
PropertyID NUMBER(6),<br />
SellerID NUMBER(6),<br />
OwnPct NUMBER(5,2) NOT NULL,<br />
BuyerID NUMBER(6),<br />
BuyPrice NUMBER(7),<br />
CONSTRAINT deed_deedid_pk PRIMARY KEY(PropertyID, SellerID),<br />
CONSTRAINT deed_propertyid_fk FOREIGN KEY(PropertyID) REFERENCES PROPERTY(PropertyID),<br />
CONSTRAINT deed_sellerid_fk FOREIGN KEY(SellerID) REFERENCES CLIENT(ClientID),<br />
CONSTRAINT deed_buyerid_fk FOREIGN KEY(BuyerID) REFERENCES CLIENT(ClientID),<br />
CONSTRAINT deed_ownpct_ck CHECK(OwnPct > 0 AND OwnPct <= 100),<br />
CONSTRAINT deed_buyprice_ck CHECK(BuyPrice BETWEEN 1 AND 4999999)<br />
);<br />
<br />
</pre><br />
<br />
==== DML Statements (INSERT INTO) ====<br />
<br />
1. AREA<BR><br />
<pre><br />
INSERT ALL<br />
INTO AREA VALUES(1001, 'Bayview Village', 'Adrienne Clarkson Public School', 'Amesbury Middle School', 'Bayview Secondary School', 'Upper middle class to upper class neighborhood in Toronto.')<br />
INTO AREA VALUES(3001,'Laurelwood Elizabeth Ziegler Primary School','Waterloo Middle School','Saint David Catholic Secondary School','Close to University of Waterloo and many popular amenities.')<br />
INTO AREA VALUES(4001,'Silver Heights','Alison Park Primary School'.'Eastwood Middle School','King Edward Secondary School',null)<br />
INTO AREA VALUES(5001,'Kitsilano','Henry Hudson Elementary School','St George School','Kitsilano Secondary School','Very well-off area.')<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
<br />
2. AGENCY<BR><br />
<pre><br />
INSERT ALL<br />
INTO VALUES()<br />
INTO VALUES()<br />
INTO VALUES()<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
<br />
3. PROPERTY<BR><br />
<pre><br />
INSERT ALL<br />
INTO VALUES()<br />
INTO VALUES()<br />
INTO VALUES()<br />
INTO VALUES()<br />
INTO VALUES()<br />
INTO VALUES()<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
4. SINGLE<BR><br />
<pre><br />
INSERT ALL<br />
INTO VALUES()<br />
INTO VALUES()<br />
INTO VALUES()<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
5. CONDO<BR><br />
<pre><br />
INSERT ALL<br />
INTO VALUES()<br />
INTO VALUES()<br />
INTO VALUES()<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
6. OUTLET<BR><br />
<pre><br />
INSERT ALL<br />
INTO VALUES()<br />
INTO VALUES()<br />
INTO VALUES()<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
7. ADVERTISEMENT<BR><br />
<pre><br />
INSERT ALL<br />
INTO VALUES()<br />
INTO VALUES()<br />
INTO VALUES()<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
8. CLIENT<BR><br />
<pre><br />
INSERT ALL<br />
INTO VALUES()<br />
INTO VALUES()<br />
INTO VALUES()<br />
INTO VALUES()<br />
INTO VALUES()<br />
INTO VALUES()<br />
INTO VALUES()<br />
INTO VALUES()<br />
INTO VALUES()<br />
INTO VALUES()<br />
SELECT * FROM DUAL;<br />
</pre><br />
<BR><br />
9. DEED<BR><br />
<pre><br />
INSERT ALL<br />
INTO VALUES()<br />
INTO VALUES()<br />
INTO VALUES()<br />
SELECT * FROM DUAL;<br />
</pre><br />
<br />
==== CREATE VIEW ====<br />
<br />
=Assignment 1=<br />
==Due Date==<br />
Thursday, October 21st, 4:00pm<br />
Printout submission only( SELECT Statements + ALL outputs)<br />
==Description==<br />
[https://cs.senecac.on.ca/~nconkic/assign1.doc Assignment1]<br />
==Solution==<br />
<pre><br />
SQL> SELECT employee_id, RPAD(CONCAT(CONCAT(last_name, ', '),first_name), 25) "Full Name",<br />
<br />
2 job_id,<br />
<br />
3 TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
<br />
4 "Start Date"<br />
<br />
5 FROM employees<br />
<br />
6 WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
<br />
7 ORDER BY 4 DESC;<br />
<br />
<br />
<br />
EMPLOYEE_ID Full Name JOB_ID Start Date <br />
<br />
----------- ------------------------- ---------- ----------------------------------------- <br />
<br />
124 Mourgos, Kevin ST_MAN November First in the year 1999 <br />
<br />
178 Grant, Kimberely SA_REP May First in the year 1999 <br />
<br />
174 Abel, Ellen SA_REP May First in the year 1996 <br />
<br />
104 Ernst, Bruce IT_PROG May First in the year 1991 <br />
<br />
<br />
<br />
SQL> SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
<br />
2 || job_id || ' will have a new salary of $' || salary * 1.15 "Happy Employees"<br />
<br />
3 FROM employees<br />
<br />
4 WHERE salary BETWEEN 5000 AND 12000<br />
<br />
5 AND job_id IN ('IT_PROG', 'ST_CLERK')<br />
<br />
6 ORDER BY employee_id;<br />
<br />
<br />
<br />
Happy Employees <br />
<br />
----------------------------------------------------------------------------------------------------<br />
<br />
Employee named Alexander Hunold who is IT_PROG will have a new salary of $10350 <br />
<br />
Employee named Bruce Ernst who is IT_PROG will have a new salary of $6900 <br />
<br />
<br />
<br />
SQL> SELECT last_name, salary, job_id,<br />
<br />
2 RPAD(NVL(TO_CHAR(manager_id), 'No Manager'), 10) "Manager #",<br />
<br />
3 LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
<br />
4 FROM employees<br />
<br />
5 WHERE (job_id LIKE 'MK%' OR manager_id IS NULL)<br />
<br />
6 AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
<br />
7 ORDER BY 2 DESC;<br />
<br />
<br />
<br />
LAST_NAME SALARY JOB_ID Manager # Total Income <br />
<br />
------------------------- ---------- ---------- ---------- ------------ <br />
<br />
King 24000 AD_PRES No Manager $288,000 <br />
<br />
Hartstein 13000 MK_MAN 100 $156,000 <br />
<br />
<br />
<br />
SQL> SELECT RPAD(CONCAT(CONCAT(first_name,' '),last_name), 25) "Employee", job_id,<br />
<br />
2 LPAD(TRIM(TO_CHAR(salary, '$999,999')), 12, '=') "Salary", department_name<br />
<br />
3 FROM employees e JOIN departments d<br />
<br />
4 ON (e.department_id = d.department_id)<br />
<br />
5 WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
<br />
6 AND salary <<br />
<br />
7 (SELECT MAX(salary)<br />
<br />
8 FROM employees<br />
<br />
9 WHERE SUBSTR(job_id, 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
<br />
10 ORDER BY 1;<br />
<br />
<br />
<br />
Employee JOB_ID Salary DEPARTMENT_NAME <br />
<br />
------------------------- ---------- ------------ ------------------------------ <br />
<br />
Eleni Zlotkey SA_MAN =====$10,500 Sales <br />
<br />
Jonathon Taylor SA_REP ======$8,600 Sales <br />
<br />
Pat Fay MK_REP ======$6,000 Marketing <br />
<br />
<br />
<br />
SQL><br />
<br />
SQL> SELECT last_name, salary, job_id<br />
<br />
2 FROM employees<br />
<br />
3 WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
<br />
4 AND salary ><br />
<br />
5 (SELECT MAX(salary)<br />
<br />
6 FROM employees<br />
<br />
7 JOIN departments USING (department_id)<br />
<br />
8 JOIN locations USING (location_id)<br />
<br />
9 WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
<br />
<br />
LAST_NAME SALARY JOB_ID <br />
<br />
------------------------- ---------- ---------- <br />
<br />
Kochhar 17000 AD_VP <br />
<br />
De Haan 17000 AD_VP <br />
<br />
<br />
<br />
SQL> SELECT last_name, first_name, job_id, hire_date<br />
<br />
2 FROM employees<br />
<br />
3 WHERE hire_date ><br />
<br />
4 (SELECT MAX(hire_date)<br />
<br />
5 FROM employees<br />
<br />
6 WHERE department_id =<br />
<br />
7 (SELECT department_id<br />
<br />
8 FROM departments<br />
<br />
9 WHERE UPPER(department_name) = 'IT'))<br />
<br />
10 AND (department_id !=<br />
<br />
11 (SELECT department_id<br />
<br />
12 FROM departments<br />
<br />
13 WHERE UPPER(department_name) = 'EXECUTIVE')<br />
<br />
14 OR department_id IS NULL)<br />
<br />
15 ORDER BY 4 DESC;<br />
<br />
<br />
<br />
LAST_NAME FIRST_NAME JOB_ID HIRE_DATE <br />
<br />
------------------------- -------------------- ---------- --------- <br />
<br />
Zlotkey Eleni SA_MAN 29-JAN-00 <br />
<br />
Mourgos Kevin ST_MAN 16-NOV-99 <br />
<br />
Grant Kimberely SA_REP 24-MAY-99 <br />
<br />
<br />
<br />
SQL> SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay",<br />
<br />
2 MIN(salary) "Lowest Dept/Job Pay"<br />
<br />
3 FROM employees<br />
<br />
4 WHERE UPPER(job_id) NOT LIKE '%VP'<br />
<br />
5 AND department_id NOT IN<br />
<br />
6 (SELECT department_id<br />
<br />
7 FROM departments<br />
<br />
8 WHERE UPPER(department_name) IN ('IT','SALES'))<br />
<br />
9 GROUP BY department_id, job_id<br />
<br />
10 HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
<br />
11 ORDER BY 1, 2;<br />
<br />
<br />
<br />
DEPARTMENT_ID JOB_ID Average Dept/Job Pay Lowest Dept/Job Pay <br />
<br />
------------- ---------- -------------------- ------------------- <br />
<br />
20 MK_MAN 13000 13000 <br />
<br />
20 MK_REP 6000 6000 <br />
<br />
50 ST_MAN 5800 5800 <br />
<br />
110 AC_ACCOUNT 8300 8300 <br />
<br />
110 AC_MGR 12000 12000 <br />
<br />
<br />
<br />
SQL> SELECT department_id, department_name,<br />
<br />
2 RPAD(TRIM(NVL(city, 'Not Assinged Yet')), 25, ' ') "City",<br />
<br />
3 COUNT(DISTINCT job_id) "# of Jobs"<br />
<br />
4 FROM employees<br />
<br />
5 RIGHT OUTER JOIN departments USING (department_id)<br />
<br />
6 LEFT OUTER JOIN locations USING (location_id)<br />
<br />
7 GROUP BY department_id, department_name, city;<br />
<br />
<br />
<br />
DEPARTMENT_ID DEPARTMENT_NAME City # of Jobs <br />
<br />
------------- ------------------------------ ------------------------- ---------- <br />
<br />
110 Accounting Seattle 2 <br />
<br />
50 Shipping South San Francisco 2 <br />
<br />
80 Sales Oxford 2 <br />
<br />
10 Administration Seattle 1 <br />
<br />
190 Contracting Seattle 0 <br />
<br />
90 Executive Seattle 2 <br />
<br />
20 Marketing Toronto 2 <br />
<br />
60 IT Southlake 1 <br />
<br />
<br />
<br />
8 rows selected.<br />
<br />
<br />
<br />
SQL> spool off<br />
</pre><br />
==SQL Statements==<br />
===1.===<br />
''YuJin''<br />
<pre><br />
SELECT employee_id, RPAD(CONCAT(CONCAT(last_name, ', '),first_name), 25) "Full Name",<br />
job_id,<br />
TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
"Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
ORDER BY 4 DESC;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT employee_id,<br />
SUBSTR(last_name ||' '|| first_name, 1, 25) "Full Name",<br />
job_id,<br />
TO_CHAR(hire_date,'fmMonth "First in the year" YYYY') "Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date,'fmMON') IN ('MAY','NOV')<br />
ORDER BY hire_date DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select employee_id "Emp#",<br />
(last_name ||', '|| first_name) "Full Name",<br />
job_id "Job",<br />
to_char(trunc(hire_date, 'MONTH'), 'FMMonth Ddspth "in the year"<br />
YYYY') "Start Date"<br />
from employees<br />
where to_char(hire_date, 'fmMonth') in ('May', 'November')<br />
order by hire_date desc;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT employee_id, SUBSTR(last_name ||' '|| first_name, 1, 25) "Full Name",<br />
job_id,<br />
TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
"Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
ORDER BY hire_date DESC;<br />
</pre><br />
<br />
===2.===<br />
''YuJin''<br />
<pre><br />
SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
|| job_id || ' will have a new salary of $' || salary * 1.15 "Happy Employees"<br />
FROM employees<br />
WHERE salary BETWEEN 5000 AND 12000<br />
AND job_id IN ('IT_PROG', 'ST_CLERK')<br />
ORDER BY employee_id;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT 'Employee named '||first_name||' '||last_name||' who is '||job_id||' will have a new salary of $'|| salary *1.15 "Happy Employees"<br />
FROM employees<br />
WHERE job_id IN ('IT_PROG','ST CLERK')<br />
AND (salary BETWEEN 5000 AND 12000)<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
Select ('Employee named ' || first_name ||' '|| last_name || ' who is ' || job_id || ' will have a new salary of ' || (salary*1.15)) "Happy Employees"<br />
From employees<br />
Where salary between 5000 and 12000<br />
And upper(job_id) in ('IT_PROG', 'ST_CLERK')<br />
order by employee_id;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
|| job_id || ' will have a new salary of ' || TO_CHAR(salary * 1.15, 'fm$999999') "Happy Employees"<br />
FROM employees<br />
WHERE salary BETWEEN 5000 AND 12000<br />
AND UPPER(job_id) IN ('IT_PROG', 'ST_CLERK')<br />
ORDER BY employee_id;<br />
</pre><br />
<br />
===3.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, salary, job_id,<br />
RPAD(NVL(TO_CHAR(manager_id), 'No Manager'), 10) "Manager #",<br />
LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
FROM employees<br />
WHERE (job_id LIKE 'MK%' OR manager_id IS NULL)<br />
AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
ORDER BY 2 DESC;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, salary, job_id, NVL(TO_CHAR(manager_id),'No Manager') Manager#,<br />
TO_CHAR(salary*12,'$999,999') "Total Income"<br />
FROM employees<br />
WHERE (manager_id IS NULL<br />
OR job_id LIKE 'MK%')<br />
AND ( salary* (NVL(commission_pct,0) + 1) + 1000 ) > 10000<br />
ORDER BY salary DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, salary, job_id, nvl(to_char(manager_id),'No Manager') Manager#,<br />
to_char(salary*12,'$999,999') "Total Income"<br />
from employees<br />
where (upper(job_id) like 'MK%' or manager_id IS NULL)<br />
and salary * (1 + nvl(commission_pct, 0)) + 1000 > 10000<br />
order by 2 desc;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT last_name, salary, job_id,<br />
SUBSTR(NVL(TO_CHAR(manager_id), 'No Manager'), 1, 10) "Manager #",<br />
LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
FROM employees<br />
WHERE (UPPER(job_id) LIKE 'MK%' OR manager_id IS NULL)<br />
AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
ORDER BY salary DESC;<br />
<br />
</pre><br />
<br />
===4.===<br />
''YuJin''<br />
<pre><br />
SELECT RPAD(CONCAT(CONCAT(first_name,' '),last_name), 25) "Employee", job_id,<br />
LPAD(TRIM(TO_CHAR(salary, '$999,999')), 12, '=') "Salary", department_name<br />
FROM employees e JOIN departments d<br />
ON (e.department_id = d.department_id)<br />
WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
AND salary <<br />
(SELECT MAX(salary)<br />
FROM employees<br />
WHERE SUBSTR(job_id, 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
ORDER BY 1;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT SUBSTR(first_name||' '||last_name, 25) Employee, job_id,<br />
LPAD(TO_CHAR(salary,'$99,999'), 12, '=') Salary, department_name<br />
FROM employees e JOIN departments d<br />
ON (d.department_id=e.department_id)<br />
WHERE salary < (SELECT MAX(salary)<br />
FROM employees<br />
WHERE UPPER(SUBSTR(job_id,4)) NOT IN ('VP', 'PRES', 'MAN', 'MGR')<br />
)<br />
AND UPPER(department_name) IN ('MARKETING','SALES')<br />
ORDER BY first_name, last_name<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select substr(first_name ||' '|| last_name) "Employee", job_id, to_char(salary, '$999,999', 12, '=') Salary, department_name<br />
from employees e join departments d<br />
on (e.department_id = d.department_id)<br />
where upper(department_name) in ('MARKETING', 'SALES')<br />
and salary < (select max(salary)<br />
from employees<br />
where substr(job_id,4) not in ('PRES','VP','MAN','MGR'))<br />
order by "Employee";<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT SUBSTR(first_name ||' '|| last_name, 1, 25) "Employee", job_id,<br />
LPAD(TO_CHAR(salary, 'fm$999,999'), 12, '=') "Salary", department_name<br />
FROM employees e JOIN departments d<br />
ON (e.department_id = d.department_id)<br />
WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
AND salary <<br />
(SELECT MAX(salary)<br />
FROM employees<br />
WHERE SUBSTR(UPPER(job_id), 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
ORDER BY 1;<br />
</pre><br />
<br />
===5.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
AND salary ><br />
(SELECT MAX(salary)<br />
FROM employees<br />
JOIN departments USING (department_id)<br />
JOIN locations USING (location_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE salary > (SELECT MAX(salary)<br />
FROM locations JOIN departments<br />
USING (location_id)<br />
JOIN employees<br />
USING (department_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD')<br />
)<br />
AND UPPER(job_id) NOT LIKE '%PRES'<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, salary, job_id<br />
from employees<br />
where salary > (select max(salary)<br />
from employees join departments<br />
using (department_id)<br />
join locations<br />
using (location_id)<br />
where upper(city) in ('TORONTO','OXFORD'))<br />
and upper(job_id) not like '%PRES'<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
AND salary ><br />
(SELECT MAX(salary)<br />
FROM employees<br />
JOIN departments USING (department_id)<br />
JOIN locations USING (location_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
</pre><br />
<br />
===6.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, first_name, job_id, hire_date<br />
FROM employees<br />
WHERE hire_date ><br />
(SELECT MAX(hire_date)<br />
FROM employees<br />
WHERE department_id =<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'IT'))<br />
AND (department_id !=<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'EXECUTIVE')<br />
OR department_id IS NULL)<br />
ORDER BY 4 DESC;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, first_name, job_id, hire_date<br />
FROM employees e<br />
WHERE hire_date > (SELECT MAX(hire_date)<br />
FROM employees<br />
WHERE department_id = (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'IT'<br />
)<br />
)<br />
AND (department_id <> (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) ='EXECUTIVE')<br />
OR department_id IS NULL)<br />
ORDER BY hire_date DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, first_name, job_id, hire_date<br />
from employees<br />
where hire_date > (select max(hire_date)<br />
from employees<br />
where department_id = (select department_id<br />
from departments<br />
where upper(department_name) = 'IT'))<br />
and (department_id != (select department_id<br />
from departments<br />
where upper(department_name) = 'EXECUTIVE')<br />
or department_id IS NULL)<br />
order by hire_date desc;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT last_name, first_name, job_id, hire_date<br />
FROM employees<br />
WHERE hire_date ><br />
(SELECT MAX(hire_date)<br />
FROM employees<br />
WHERE department_id =<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'IT'))<br />
AND (department_id !=<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'EXECUTIVE')<br />
OR department_id IS NULL)<br />
ORDER BY hire_date DESC;<br />
</pre><br />
<br />
===7.===<br />
''YuJin''<br />
<pre><br />
SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay",<br />
MIN(salary) "Lowest Dept/Job Pay"<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%VP'<br />
AND department_id NOT IN<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) IN ('IT','SALES'))<br />
GROUP BY department_id, job_id<br />
HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
ORDER BY 1, 2;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay", MIN(salary) "Lowest Dept/Job Pay"<br />
FROM employees<br />
WHERE department_id <> ALL (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) IN ('IT','SALES')<br />
)<br />
AND job_id NOT LIKE '%VP'<br />
GROUP BY department_id, job_id<br />
HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
ORDER BY department_id, job_id<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select department_id, job_id, avg(salary) "Average Dept/Job Pay", min(salary) "Lowest Dept/Job Pay"<br />
from employees<br />
where upper(job_id) not like '%VP'<br />
and department_id != all(select department_id<br />
from departments<br />
where upper(department_name) in ('IT','SALES'))<br />
group by department_id, job_id<br />
having min(salary) between 5000 and 15000<br />
order by department_id, job_id<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay",<br />
MIN(salary) "Lowest Dept/Job Pay"<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%VP'<br />
AND department_id != ALL<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) IN ('IT','SALES'))<br />
GROUP BY department_id, job_id<br />
HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
ORDER BY department_id, job_id;<br />
</pre><br />
<br />
===8.===<br />
''YuJin''<br />
<pre><br />
SELECT department_id, department_name,<br />
RPAD(TRIM(NVL(city, 'Not Assinged Yet')), 25, ' ') "City",<br />
COUNT(DISTINCT job_id) "# of Jobs"<br />
FROM employees<br />
RIGHT OUTER JOIN departments USING (department_id)<br />
LEFT OUTER JOIN locations USING (location_id)<br />
GROUP BY department_id, department_name, city;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT department_id, department_name, SUBSTR(NVL(city,'Not Assigned Yet'),1,25) City,<br />
COUNT(DISTINCT job_id) "# of Jobs"<br />
FROM locations l RIGHT OUTER JOIN departments d<br />
USING (location_id)<br />
LEFT OUTER JOIN employees e<br />
USING (department_id)<br />
GROUP BY department_id, department_name, city<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select department_id, department_name, substr(nvl(city,'Not Assigned Yet'),1,25) City,<br />
count(distinct job_id) "# of Jobs"<br />
from employees right outer join departments<br />
using (department_id)<br />
left outer join locations<br />
using (location_id)<br />
group by department_id, department_name, city<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT department_id, department_name,<br />
SUBSTR(NVL(city, 'Not Assinged Yet'),1, 25) "City",<br />
COUNT(DISTINCT job_id) "# of Jobs"<br />
FROM employees<br />
RIGHT OUTER JOIN departments USING (department_id)<br />
LEFT OUTER JOIN locations USING (location_id)<br />
GROUP BY department_id, department_name, city;<br />
<br />
</pre></div>
Yujin.jeong
https://wiki.cdot.senecacollege.ca/w/index.php?title=J.Y.S&diff=50957
J.Y.S
2010-11-30T18:13:15Z
<p>Yujin.jeong: /* DML Statements (INSERT INTO) */</p>
<hr />
<div>This page is to efficiently manage our group assignments!<br />
== Member List == <br />
*[mailto:,,yjeong@learn.senecac.on.ca,?subject=dbs301 Email All]<br />
<br />
{| class="wikitable sortable" border="1" cellpadding="5"<br />
! First Name !! Last Name !! wiki id !! Learn e-mail !! Phone<br />
|-<br />
|[[User:Yujin.jeong | YuJin]]||Jeong||[[Special:Contributions/yujin.jeong | yujin.jeong]]||[mailto:yjeong@learn.senecac.on.ca?sujbect=dbs301 yjeong]|| 647 - 832 - 6771<br />
|-<br />
<br />
|-<br />
|Saad|| || || ||<br />
|-<br />
<br />
|-<br />
|James|| || || ||<br />
|-<br />
|}<br />
<br />
=Assignment 3 (worth 9%)=<br />
==Due Date==<br />
Thursday, December 2nd, 3:00pm<br />
Printout of all TIC charts and DDL / DML statements<br />
<br />
==Solution==<br />
==== DDL Statements (CREATE TABLE) ====<br />
1. AREA<br />
<pre><br />
CREATE TABLE AREA<br />
(<br />
AreaID NUMBER(4) CONSTRAINT area_areaid_pk PRIMARY KEY,<br />
AreaName VARCHAR2(30) NOT NULL CONSTRAINT area_areaname_uk UNIQUE,<br />
ElmSchool VARCHAR2(40),<br />
MidSchool VARCHAR2(40),<br />
HighSchool VARCHAR2(40),<br />
Comments VARCHAR2(100)<br />
);<br />
</pre><br />
2. AGENCY<br />
<pre><br />
CREATE TABLE AGENCY<br />
(<br />
AgencyID NUMBER(4) CONSTRAINT agency_agencyid_pk PRIMARY KEY,<br />
AgencyName VARCHAR2(40) NOT NULL CONSTRAINT agency_agencyname_uk UNIQUE,<br />
AgencyPhone VARCHAR2(15) NOT NULL CONSTRAINT agency_agencyphone_uk UNIQUE<br />
);<br />
</pre><br />
3. PROPERTY<br />
<pre><br />
CREATE TABLE PROPERTY<br />
(<br />
PropertyID NUMBER(6),<br />
Street VARCHAR2(40) NOT NULL,<br />
City VARCHAR2(30) NOT NULL,<br />
Province CHAR(2) NOT NULL,<br />
PostalCode CHAR(6) NOT NULL,<br />
Bedrooms NUMBER(1) NOT NULL,<br />
Bathrooms NUMBER(1) NOT NULL,<br />
ListingPrice NUMBER(6) NOT NULL,<br />
AreaID NUMBER(4) NOT NULL,<br />
CONSTRAINT property_propertyid_pk PRIMARY KEY(PropertyID),<br />
CONSTRAINT property_bedrooms_ck CHECK(Bedrooms BETWEEN 1 AND 9),<br />
CONSTRAINT property_bathrooms_ck CHECK(Bathrooms BETWEEN 1 AND 9),<br />
CONSTRAINT property_listingprice_ck CHECK(ListingPrice BETWEEN 1 AND 4999999),<br />
CONSTRAINT property_areaid_fk FOREIGN KEY(AreaID) REFERENCES AREA(AreaID)<br />
);<br />
</pre><br />
4. SINGLE<br />
<pre><br />
CREATE TABLE SINGLE<br />
(<br />
PropertyID NUMBER(6), <br />
LotSize NUMBER(8,2) NOT NULL,<br />
CONSTRAINT single_propertyID_pk PRIMARY KEY(PropertyID), <br />
CONSTRAINT single_propertyID_fk FOREIGN KEY(PropertyID) REFERENCES PROPERTY(PropertyID),<br />
CONSTRAINT single_lotsize_ck CHECK(LotSize > 0)<br />
);<br />
<br />
</pre><br />
5. CONDO<br />
<pre><br />
CREATE TABLE CONDO<br />
(<br />
PropertyID NUMBER(6),<br />
Fee NUMBER(8,2) NOT NULL, <br />
CONSTRAINT condo_propertyID_pk PRIMARY KEY(PropertyID),<br />
CONSTRAINT condo_propertyID_fk FOREIGN KEY(PropertyID) REFERENCES PROPERTY(PropertyID),<br />
CONSTRAINT condo_fee_ck CHECK(Fee > 0)<br />
);<br />
<br />
</pre><br />
6. OUTLET<br />
<pre><br />
CREATE TABLE OUTLET<br />
(<br />
OutletID NUMBER(4), <br />
OutletName VARCHAR2(40) NOT NULL,<br />
OutletPhone VARCHAR2(15) NOT NULL,<br />
OutletType CHAR(1) NOT NULL,<br />
CONSTRAINT outlet_outletid_pk PRIMARY KEY(OutletID),<br />
CONSTRAINT outlet_outlettype_ck CHECK(OutletType IN('N','M','W','F')),<br />
CONSTRAINT outlet_outletname_type_uk UNIQUE(OutletName, OutletType)<br />
);<br />
<br />
</pre><br />
7. ADVERTISEMENT<br />
<pre><br />
CREATE TABLE ADVERTISEMENT<br />
(<br />
PropertyID NUMBER(6),<br />
OutletID NUMBER(4),<br />
AdvDate DATE,<br />
AdvCost NUMBER(6) NOT NULL,<br />
CONSTRAINT ad_adid_pk PRIMARY KEY(PropertyID, OutletID),<br />
CONSTRAINT ad_propertyid_fk FOREIGN KEY(PropertyID) REFERENCES PROPERTY(PropertyID),<br />
CONSTRAINT ad_outletid_fk FOREIGN KEY(OutletID) REFERENCES OUTLET(OutletID),<br />
CONSTRAINT ad_advcost_ck CHECK(AdvCost > 0)<br />
);<br />
</pre><br />
8. CLIENT<br />
<pre><br />
CREATE TABLE CLIENT<br />
(<br />
ClientID NUMBER(6),<br />
Fname VARCHAR2(30) NOT NULL,<br />
Lname VARCHAR2(30) NOT NULL,<br />
Phone VARCHAR2(15) NOT NULL,<br />
Email VARCHAR2(40),<br />
RefID NUMBER(6),<br />
CONSTRAINT client_clientid_pk PRIMARY KEY(ClientID),<br />
CONSTRAINT client_phone_uk UNIQUE(Phone),<br />
CONSTRAINT client_email_uk UNIQUE(Email),<br />
CONSTRAINT client_refid_fk FOREIGN KEY(RefID) REFERENCES CLIENT(ClientID)<br />
);<br />
</pre><br />
9. DEED<br />
<pre><br />
CREATE TABLE DEED<br />
(<br />
PropertyID NUMBER(6),<br />
SellerID NUMBER(6),<br />
OwnPct NUMBER(5,2) NOT NULL,<br />
BuyerID NUMBER(6),<br />
BuyPrice NUMBER(7),<br />
CONSTRAINT deed_deedid_pk PRIMARY KEY(PropertyID, SellerID),<br />
CONSTRAINT deed_propertyid_fk FOREIGN KEY(PropertyID) REFERENCES PROPERTY(PropertyID),<br />
CONSTRAINT deed_sellerid_fk FOREIGN KEY(SellerID) REFERENCES CLIENT(ClientID),<br />
CONSTRAINT deed_buyerid_fk FOREIGN KEY(BuyerID) REFERENCES CLIENT(ClientID),<br />
CONSTRAINT deed_ownpct_ck CHECK(OwnPct > 0 AND OwnPct <= 100),<br />
CONSTRAINT deed_buyprice_ck CHECK(BuyPrice BETWEEN 1 AND 4999999)<br />
);<br />
<br />
</pre><br />
<br />
==== DML Statements (INSERT INTO) ====<br />
<br />
1. AREA<BR><br />
<br />
INSERT ALL<br />
INTO AREA VALUES(1001, 'Bayview Village', 'Adrienne Clarkson Public School', 'Amesbury Middle School', 'Bayview Secondary School', 'Upper middle class to upper class neighborhood in Toronto.')<br />
INTO AREA VALUES(3001,'Laurelwood Elizabeth Ziegler Primary School','Waterloo Middle School','Saint David Catholic Secondary School','Close to University of Waterloo and many popular amenities.')<br />
INTO AREA VALUES(4001,'Silver Heights','Alison Park Primary School'.'Eastwood Middle School','King Edward Secondary School',null)<br />
INTO AREA VALUES(5001,'Kitsilano','Henry Hudson Elementary School','St George School','Kitsilano Secondary School','Very well-off area.')<br />
SELECT * FROM DUAL;<br />
<BR><br />
<br />
2. AGENCY<BR><br />
INSERT ALL<br />
INTO VALUES()<br />
INTO VALUES()<br />
INTO VALUES()<br />
SELECT * FROM DUAL;<br />
<BR><br />
<br />
3. PROPERTY<BR><br />
INSERT ALL<br />
INTO VALUES()<br />
INTO VALUES()<br />
INTO VALUES()<br />
INTO VALUES()<br />
INTO VALUES()<br />
INTO VALUES()<br />
SELECT * FROM DUAL;<br />
<br />
4. SINGLE<BR><br />
INSERT ALL<br />
INTO VALUES()<br />
INTO VALUES()<br />
INTO VALUES()<br />
SELECT * FROM DUAL;<br />
<BR><br />
5. CONDO<BR><br />
INSERT ALL<br />
INTO VALUES()<br />
INTO VALUES()<br />
INTO VALUES()<br />
SELECT * FROM DUAL;<br />
<BR><br />
6. OUTLET<BR><br />
INSERT ALL<br />
INTO VALUES()<br />
INTO VALUES()<br />
INTO VALUES()<br />
SELECT * FROM DUAL;<br />
<BR><br />
7. ADVERTISEMENT<BR><br />
INSERT ALL<br />
INTO VALUES()<br />
INTO VALUES()<br />
INTO VALUES()<br />
SELECT * FROM DUAL;<br />
<BR><br />
8. CLIENT<BR><br />
INSERT ALL<br />
INTO VALUES()<br />
INTO VALUES()<br />
INTO VALUES()<br />
INTO VALUES()<br />
INTO VALUES()<br />
INTO VALUES()<br />
INTO VALUES()<br />
INTO VALUES()<br />
INTO VALUES()<br />
INTO VALUES()<br />
SELECT * FROM DUAL;<br />
<BR><br />
9. DEED<BR><br />
INSERT ALL<br />
INTO VALUES()<br />
INTO VALUES()<br />
INTO VALUES()<br />
SELECT * FROM DUAL;<br />
<br />
==== CREATE VIEW ====<br />
<br />
=Assignment 1=<br />
==Due Date==<br />
Thursday, October 21st, 4:00pm<br />
Printout submission only( SELECT Statements + ALL outputs)<br />
==Description==<br />
[https://cs.senecac.on.ca/~nconkic/assign1.doc Assignment1]<br />
==Solution==<br />
<pre><br />
SQL> SELECT employee_id, RPAD(CONCAT(CONCAT(last_name, ', '),first_name), 25) "Full Name",<br />
<br />
2 job_id,<br />
<br />
3 TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
<br />
4 "Start Date"<br />
<br />
5 FROM employees<br />
<br />
6 WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
<br />
7 ORDER BY 4 DESC;<br />
<br />
<br />
<br />
EMPLOYEE_ID Full Name JOB_ID Start Date <br />
<br />
----------- ------------------------- ---------- ----------------------------------------- <br />
<br />
124 Mourgos, Kevin ST_MAN November First in the year 1999 <br />
<br />
178 Grant, Kimberely SA_REP May First in the year 1999 <br />
<br />
174 Abel, Ellen SA_REP May First in the year 1996 <br />
<br />
104 Ernst, Bruce IT_PROG May First in the year 1991 <br />
<br />
<br />
<br />
SQL> SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
<br />
2 || job_id || ' will have a new salary of $' || salary * 1.15 "Happy Employees"<br />
<br />
3 FROM employees<br />
<br />
4 WHERE salary BETWEEN 5000 AND 12000<br />
<br />
5 AND job_id IN ('IT_PROG', 'ST_CLERK')<br />
<br />
6 ORDER BY employee_id;<br />
<br />
<br />
<br />
Happy Employees <br />
<br />
----------------------------------------------------------------------------------------------------<br />
<br />
Employee named Alexander Hunold who is IT_PROG will have a new salary of $10350 <br />
<br />
Employee named Bruce Ernst who is IT_PROG will have a new salary of $6900 <br />
<br />
<br />
<br />
SQL> SELECT last_name, salary, job_id,<br />
<br />
2 RPAD(NVL(TO_CHAR(manager_id), 'No Manager'), 10) "Manager #",<br />
<br />
3 LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
<br />
4 FROM employees<br />
<br />
5 WHERE (job_id LIKE 'MK%' OR manager_id IS NULL)<br />
<br />
6 AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
<br />
7 ORDER BY 2 DESC;<br />
<br />
<br />
<br />
LAST_NAME SALARY JOB_ID Manager # Total Income <br />
<br />
------------------------- ---------- ---------- ---------- ------------ <br />
<br />
King 24000 AD_PRES No Manager $288,000 <br />
<br />
Hartstein 13000 MK_MAN 100 $156,000 <br />
<br />
<br />
<br />
SQL> SELECT RPAD(CONCAT(CONCAT(first_name,' '),last_name), 25) "Employee", job_id,<br />
<br />
2 LPAD(TRIM(TO_CHAR(salary, '$999,999')), 12, '=') "Salary", department_name<br />
<br />
3 FROM employees e JOIN departments d<br />
<br />
4 ON (e.department_id = d.department_id)<br />
<br />
5 WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
<br />
6 AND salary <<br />
<br />
7 (SELECT MAX(salary)<br />
<br />
8 FROM employees<br />
<br />
9 WHERE SUBSTR(job_id, 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
<br />
10 ORDER BY 1;<br />
<br />
<br />
<br />
Employee JOB_ID Salary DEPARTMENT_NAME <br />
<br />
------------------------- ---------- ------------ ------------------------------ <br />
<br />
Eleni Zlotkey SA_MAN =====$10,500 Sales <br />
<br />
Jonathon Taylor SA_REP ======$8,600 Sales <br />
<br />
Pat Fay MK_REP ======$6,000 Marketing <br />
<br />
<br />
<br />
SQL><br />
<br />
SQL> SELECT last_name, salary, job_id<br />
<br />
2 FROM employees<br />
<br />
3 WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
<br />
4 AND salary ><br />
<br />
5 (SELECT MAX(salary)<br />
<br />
6 FROM employees<br />
<br />
7 JOIN departments USING (department_id)<br />
<br />
8 JOIN locations USING (location_id)<br />
<br />
9 WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
<br />
<br />
LAST_NAME SALARY JOB_ID <br />
<br />
------------------------- ---------- ---------- <br />
<br />
Kochhar 17000 AD_VP <br />
<br />
De Haan 17000 AD_VP <br />
<br />
<br />
<br />
SQL> SELECT last_name, first_name, job_id, hire_date<br />
<br />
2 FROM employees<br />
<br />
3 WHERE hire_date ><br />
<br />
4 (SELECT MAX(hire_date)<br />
<br />
5 FROM employees<br />
<br />
6 WHERE department_id =<br />
<br />
7 (SELECT department_id<br />
<br />
8 FROM departments<br />
<br />
9 WHERE UPPER(department_name) = 'IT'))<br />
<br />
10 AND (department_id !=<br />
<br />
11 (SELECT department_id<br />
<br />
12 FROM departments<br />
<br />
13 WHERE UPPER(department_name) = 'EXECUTIVE')<br />
<br />
14 OR department_id IS NULL)<br />
<br />
15 ORDER BY 4 DESC;<br />
<br />
<br />
<br />
LAST_NAME FIRST_NAME JOB_ID HIRE_DATE <br />
<br />
------------------------- -------------------- ---------- --------- <br />
<br />
Zlotkey Eleni SA_MAN 29-JAN-00 <br />
<br />
Mourgos Kevin ST_MAN 16-NOV-99 <br />
<br />
Grant Kimberely SA_REP 24-MAY-99 <br />
<br />
<br />
<br />
SQL> SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay",<br />
<br />
2 MIN(salary) "Lowest Dept/Job Pay"<br />
<br />
3 FROM employees<br />
<br />
4 WHERE UPPER(job_id) NOT LIKE '%VP'<br />
<br />
5 AND department_id NOT IN<br />
<br />
6 (SELECT department_id<br />
<br />
7 FROM departments<br />
<br />
8 WHERE UPPER(department_name) IN ('IT','SALES'))<br />
<br />
9 GROUP BY department_id, job_id<br />
<br />
10 HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
<br />
11 ORDER BY 1, 2;<br />
<br />
<br />
<br />
DEPARTMENT_ID JOB_ID Average Dept/Job Pay Lowest Dept/Job Pay <br />
<br />
------------- ---------- -------------------- ------------------- <br />
<br />
20 MK_MAN 13000 13000 <br />
<br />
20 MK_REP 6000 6000 <br />
<br />
50 ST_MAN 5800 5800 <br />
<br />
110 AC_ACCOUNT 8300 8300 <br />
<br />
110 AC_MGR 12000 12000 <br />
<br />
<br />
<br />
SQL> SELECT department_id, department_name,<br />
<br />
2 RPAD(TRIM(NVL(city, 'Not Assinged Yet')), 25, ' ') "City",<br />
<br />
3 COUNT(DISTINCT job_id) "# of Jobs"<br />
<br />
4 FROM employees<br />
<br />
5 RIGHT OUTER JOIN departments USING (department_id)<br />
<br />
6 LEFT OUTER JOIN locations USING (location_id)<br />
<br />
7 GROUP BY department_id, department_name, city;<br />
<br />
<br />
<br />
DEPARTMENT_ID DEPARTMENT_NAME City # of Jobs <br />
<br />
------------- ------------------------------ ------------------------- ---------- <br />
<br />
110 Accounting Seattle 2 <br />
<br />
50 Shipping South San Francisco 2 <br />
<br />
80 Sales Oxford 2 <br />
<br />
10 Administration Seattle 1 <br />
<br />
190 Contracting Seattle 0 <br />
<br />
90 Executive Seattle 2 <br />
<br />
20 Marketing Toronto 2 <br />
<br />
60 IT Southlake 1 <br />
<br />
<br />
<br />
8 rows selected.<br />
<br />
<br />
<br />
SQL> spool off<br />
</pre><br />
==SQL Statements==<br />
===1.===<br />
''YuJin''<br />
<pre><br />
SELECT employee_id, RPAD(CONCAT(CONCAT(last_name, ', '),first_name), 25) "Full Name",<br />
job_id,<br />
TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
"Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
ORDER BY 4 DESC;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT employee_id,<br />
SUBSTR(last_name ||' '|| first_name, 1, 25) "Full Name",<br />
job_id,<br />
TO_CHAR(hire_date,'fmMonth "First in the year" YYYY') "Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date,'fmMON') IN ('MAY','NOV')<br />
ORDER BY hire_date DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select employee_id "Emp#",<br />
(last_name ||', '|| first_name) "Full Name",<br />
job_id "Job",<br />
to_char(trunc(hire_date, 'MONTH'), 'FMMonth Ddspth "in the year"<br />
YYYY') "Start Date"<br />
from employees<br />
where to_char(hire_date, 'fmMonth') in ('May', 'November')<br />
order by hire_date desc;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT employee_id, SUBSTR(last_name ||' '|| first_name, 1, 25) "Full Name",<br />
job_id,<br />
TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
"Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
ORDER BY hire_date DESC;<br />
</pre><br />
<br />
===2.===<br />
''YuJin''<br />
<pre><br />
SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
|| job_id || ' will have a new salary of $' || salary * 1.15 "Happy Employees"<br />
FROM employees<br />
WHERE salary BETWEEN 5000 AND 12000<br />
AND job_id IN ('IT_PROG', 'ST_CLERK')<br />
ORDER BY employee_id;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT 'Employee named '||first_name||' '||last_name||' who is '||job_id||' will have a new salary of $'|| salary *1.15 "Happy Employees"<br />
FROM employees<br />
WHERE job_id IN ('IT_PROG','ST CLERK')<br />
AND (salary BETWEEN 5000 AND 12000)<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
Select ('Employee named ' || first_name ||' '|| last_name || ' who is ' || job_id || ' will have a new salary of ' || (salary*1.15)) "Happy Employees"<br />
From employees<br />
Where salary between 5000 and 12000<br />
And upper(job_id) in ('IT_PROG', 'ST_CLERK')<br />
order by employee_id;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
|| job_id || ' will have a new salary of ' || TO_CHAR(salary * 1.15, 'fm$999999') "Happy Employees"<br />
FROM employees<br />
WHERE salary BETWEEN 5000 AND 12000<br />
AND UPPER(job_id) IN ('IT_PROG', 'ST_CLERK')<br />
ORDER BY employee_id;<br />
</pre><br />
<br />
===3.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, salary, job_id,<br />
RPAD(NVL(TO_CHAR(manager_id), 'No Manager'), 10) "Manager #",<br />
LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
FROM employees<br />
WHERE (job_id LIKE 'MK%' OR manager_id IS NULL)<br />
AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
ORDER BY 2 DESC;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, salary, job_id, NVL(TO_CHAR(manager_id),'No Manager') Manager#,<br />
TO_CHAR(salary*12,'$999,999') "Total Income"<br />
FROM employees<br />
WHERE (manager_id IS NULL<br />
OR job_id LIKE 'MK%')<br />
AND ( salary* (NVL(commission_pct,0) + 1) + 1000 ) > 10000<br />
ORDER BY salary DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, salary, job_id, nvl(to_char(manager_id),'No Manager') Manager#,<br />
to_char(salary*12,'$999,999') "Total Income"<br />
from employees<br />
where (upper(job_id) like 'MK%' or manager_id IS NULL)<br />
and salary * (1 + nvl(commission_pct, 0)) + 1000 > 10000<br />
order by 2 desc;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT last_name, salary, job_id,<br />
SUBSTR(NVL(TO_CHAR(manager_id), 'No Manager'), 1, 10) "Manager #",<br />
LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
FROM employees<br />
WHERE (UPPER(job_id) LIKE 'MK%' OR manager_id IS NULL)<br />
AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
ORDER BY salary DESC;<br />
<br />
</pre><br />
<br />
===4.===<br />
''YuJin''<br />
<pre><br />
SELECT RPAD(CONCAT(CONCAT(first_name,' '),last_name), 25) "Employee", job_id,<br />
LPAD(TRIM(TO_CHAR(salary, '$999,999')), 12, '=') "Salary", department_name<br />
FROM employees e JOIN departments d<br />
ON (e.department_id = d.department_id)<br />
WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
AND salary <<br />
(SELECT MAX(salary)<br />
FROM employees<br />
WHERE SUBSTR(job_id, 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
ORDER BY 1;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT SUBSTR(first_name||' '||last_name, 25) Employee, job_id,<br />
LPAD(TO_CHAR(salary,'$99,999'), 12, '=') Salary, department_name<br />
FROM employees e JOIN departments d<br />
ON (d.department_id=e.department_id)<br />
WHERE salary < (SELECT MAX(salary)<br />
FROM employees<br />
WHERE UPPER(SUBSTR(job_id,4)) NOT IN ('VP', 'PRES', 'MAN', 'MGR')<br />
)<br />
AND UPPER(department_name) IN ('MARKETING','SALES')<br />
ORDER BY first_name, last_name<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select substr(first_name ||' '|| last_name) "Employee", job_id, to_char(salary, '$999,999', 12, '=') Salary, department_name<br />
from employees e join departments d<br />
on (e.department_id = d.department_id)<br />
where upper(department_name) in ('MARKETING', 'SALES')<br />
and salary < (select max(salary)<br />
from employees<br />
where substr(job_id,4) not in ('PRES','VP','MAN','MGR'))<br />
order by "Employee";<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT SUBSTR(first_name ||' '|| last_name, 1, 25) "Employee", job_id,<br />
LPAD(TO_CHAR(salary, 'fm$999,999'), 12, '=') "Salary", department_name<br />
FROM employees e JOIN departments d<br />
ON (e.department_id = d.department_id)<br />
WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
AND salary <<br />
(SELECT MAX(salary)<br />
FROM employees<br />
WHERE SUBSTR(UPPER(job_id), 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
ORDER BY 1;<br />
</pre><br />
<br />
===5.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
AND salary ><br />
(SELECT MAX(salary)<br />
FROM employees<br />
JOIN departments USING (department_id)<br />
JOIN locations USING (location_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE salary > (SELECT MAX(salary)<br />
FROM locations JOIN departments<br />
USING (location_id)<br />
JOIN employees<br />
USING (department_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD')<br />
)<br />
AND UPPER(job_id) NOT LIKE '%PRES'<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, salary, job_id<br />
from employees<br />
where salary > (select max(salary)<br />
from employees join departments<br />
using (department_id)<br />
join locations<br />
using (location_id)<br />
where upper(city) in ('TORONTO','OXFORD'))<br />
and upper(job_id) not like '%PRES'<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
AND salary ><br />
(SELECT MAX(salary)<br />
FROM employees<br />
JOIN departments USING (department_id)<br />
JOIN locations USING (location_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
</pre><br />
<br />
===6.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, first_name, job_id, hire_date<br />
FROM employees<br />
WHERE hire_date ><br />
(SELECT MAX(hire_date)<br />
FROM employees<br />
WHERE department_id =<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'IT'))<br />
AND (department_id !=<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'EXECUTIVE')<br />
OR department_id IS NULL)<br />
ORDER BY 4 DESC;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, first_name, job_id, hire_date<br />
FROM employees e<br />
WHERE hire_date > (SELECT MAX(hire_date)<br />
FROM employees<br />
WHERE department_id = (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'IT'<br />
)<br />
)<br />
AND (department_id <> (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) ='EXECUTIVE')<br />
OR department_id IS NULL)<br />
ORDER BY hire_date DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, first_name, job_id, hire_date<br />
from employees<br />
where hire_date > (select max(hire_date)<br />
from employees<br />
where department_id = (select department_id<br />
from departments<br />
where upper(department_name) = 'IT'))<br />
and (department_id != (select department_id<br />
from departments<br />
where upper(department_name) = 'EXECUTIVE')<br />
or department_id IS NULL)<br />
order by hire_date desc;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT last_name, first_name, job_id, hire_date<br />
FROM employees<br />
WHERE hire_date ><br />
(SELECT MAX(hire_date)<br />
FROM employees<br />
WHERE department_id =<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'IT'))<br />
AND (department_id !=<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'EXECUTIVE')<br />
OR department_id IS NULL)<br />
ORDER BY hire_date DESC;<br />
</pre><br />
<br />
===7.===<br />
''YuJin''<br />
<pre><br />
SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay",<br />
MIN(salary) "Lowest Dept/Job Pay"<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%VP'<br />
AND department_id NOT IN<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) IN ('IT','SALES'))<br />
GROUP BY department_id, job_id<br />
HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
ORDER BY 1, 2;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay", MIN(salary) "Lowest Dept/Job Pay"<br />
FROM employees<br />
WHERE department_id <> ALL (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) IN ('IT','SALES')<br />
)<br />
AND job_id NOT LIKE '%VP'<br />
GROUP BY department_id, job_id<br />
HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
ORDER BY department_id, job_id<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select department_id, job_id, avg(salary) "Average Dept/Job Pay", min(salary) "Lowest Dept/Job Pay"<br />
from employees<br />
where upper(job_id) not like '%VP'<br />
and department_id != all(select department_id<br />
from departments<br />
where upper(department_name) in ('IT','SALES'))<br />
group by department_id, job_id<br />
having min(salary) between 5000 and 15000<br />
order by department_id, job_id<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay",<br />
MIN(salary) "Lowest Dept/Job Pay"<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%VP'<br />
AND department_id != ALL<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) IN ('IT','SALES'))<br />
GROUP BY department_id, job_id<br />
HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
ORDER BY department_id, job_id;<br />
</pre><br />
<br />
===8.===<br />
''YuJin''<br />
<pre><br />
SELECT department_id, department_name,<br />
RPAD(TRIM(NVL(city, 'Not Assinged Yet')), 25, ' ') "City",<br />
COUNT(DISTINCT job_id) "# of Jobs"<br />
FROM employees<br />
RIGHT OUTER JOIN departments USING (department_id)<br />
LEFT OUTER JOIN locations USING (location_id)<br />
GROUP BY department_id, department_name, city;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT department_id, department_name, SUBSTR(NVL(city,'Not Assigned Yet'),1,25) City,<br />
COUNT(DISTINCT job_id) "# of Jobs"<br />
FROM locations l RIGHT OUTER JOIN departments d<br />
USING (location_id)<br />
LEFT OUTER JOIN employees e<br />
USING (department_id)<br />
GROUP BY department_id, department_name, city<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select department_id, department_name, substr(nvl(city,'Not Assigned Yet'),1,25) City,<br />
count(distinct job_id) "# of Jobs"<br />
from employees right outer join departments<br />
using (department_id)<br />
left outer join locations<br />
using (location_id)<br />
group by department_id, department_name, city<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT department_id, department_name,<br />
SUBSTR(NVL(city, 'Not Assinged Yet'),1, 25) "City",<br />
COUNT(DISTINCT job_id) "# of Jobs"<br />
FROM employees<br />
RIGHT OUTER JOIN departments USING (department_id)<br />
LEFT OUTER JOIN locations USING (location_id)<br />
GROUP BY department_id, department_name, city;<br />
<br />
</pre></div>
Yujin.jeong
https://wiki.cdot.senecacollege.ca/w/index.php?title=J.Y.S&diff=50859
J.Y.S
2010-11-27T20:34:17Z
<p>Yujin.jeong: /* Sample Data */</p>
<hr />
<div>This page is to efficiently manage our group assignments!<br />
== Member List == <br />
*[mailto:,,yjeong@learn.senecac.on.ca,?subject=dbs301 Email All]<br />
<br />
{| class="wikitable sortable" border="1" cellpadding="5"<br />
! First Name !! Last Name !! wiki id !! Learn e-mail !! Phone<br />
|-<br />
|[[User:Yujin.jeong | YuJin]]||Jeong||[[Special:Contributions/yujin.jeong | yujin.jeong]]||[mailto:yjeong@learn.senecac.on.ca?sujbect=dbs301 yjeong]|| 647 - 832 - 6771<br />
|-<br />
<br />
|-<br />
|Saad|| || || ||<br />
|-<br />
<br />
|-<br />
|James|| || || ||<br />
|-<br />
|}<br />
<br />
=Assignment 3 (worth 9%)=<br />
==Due Date==<br />
Thursday, December 2nd, 3:00pm<br />
Printout of all TIC charts and DDL / DML statements<br />
<br />
==Solution==<br />
==== DDL Statements (CREATE TABLE) ====<br />
1. AREA<br />
<pre><br />
CREATE TABLE AREA<br />
(<br />
AreaID NUMBER(4) CONSTRAINT area_areaid_pk PRIMARY KEY,<br />
AreaName VARCHAR2(30) NOT NULL CONSTRAINT area_areaname_uk UNIQUE,<br />
ElmSchool VARCHAR2(40),<br />
MidSchool VARCHAR2(40),<br />
HighSchool VARCHAR2(40),<br />
Comments VARCHAR2(100)<br />
);<br />
</pre><br />
2. AGENCY<br />
<pre><br />
CREATE TABLE AGENCY<br />
(<br />
AgencyID NUMBER(4) CONSTRAINT agency_agencyid_pk PRIMARY KEY,<br />
AgencyName VARCHAR2(40) NOT NULL CONSTRAINT agency_agencyname_uk UNIQUE,<br />
AgencyPhone VARCHAR2(15) NOT NULL CONSTRAINT agency_agencyphone_uk UNIQUE<br />
);<br />
</pre><br />
3. PROPERTY<br />
<pre><br />
CREATE TABLE PROPERTY<br />
(<br />
PropertyID NUMBER(6),<br />
Street VARCHAR2(40) NOT NULL,<br />
City VARCHAR2(30) NOT NULL,<br />
Province CHAR(2) NOT NULL,<br />
PostalCode CHAR(6) NOT NULL,<br />
Bedrooms NUMBER(1) NOT NULL,<br />
Bathrooms NUMBER(1) NOT NULL,<br />
ListingPrice NUMBER(6) NOT NULL,<br />
AreaID NUMBER(4) NOT NULL,<br />
CONSTRAINT property_propertyid_pk PRIMARY KEY(PropertyID),<br />
CONSTRAINT property_bedrooms_ck CHECK(Bedrooms BETWEEN 1 AND 9),<br />
CONSTRAINT property_bathrooms_ck CHECK(Bathrooms BETWEEN 1 AND 9),<br />
CONSTRAINT property_listingprice_ck CHECK(ListingPrice BETWEEN 1 AND 4999999),<br />
CONSTRAINT property_areaid_fk FOREIGN KEY(AreaID) REFERENCES AREA(AreaID)<br />
);<br />
</pre><br />
4. SINGLE<br />
<pre><br />
CREATE TABLE SINGLE<br />
(<br />
PropertyID NUMBER(6), <br />
LotSize NUMBER(8,2) NOT NULL,<br />
CONSTRAINT single_propertyID_pk PRIMARY KEY(PropertyID), <br />
CONSTRAINT single_propertyID_fk FOREIGN KEY(PropertyID) REFERENCES PROPERTY(PropertyID),<br />
CONSTRAINT single_lotsize_ck CHECK(LotSize > 0)<br />
);<br />
<br />
</pre><br />
5. CONDO<br />
<pre><br />
CREATE TABLE CONDO<br />
(<br />
PropertyID NUMBER(6),<br />
Fee NUMBER(8,2) NOT NULL, <br />
CONSTRAINT condo_propertyID_pk PRIMARY KEY(PropertyID),<br />
CONSTRAINT condo_propertyID_fk FOREIGN KEY(PropertyID) REFERENCES PROPERTY(PropertyID),<br />
CONSTRAINT condo_fee_ck CHECK(Fee > 0)<br />
);<br />
<br />
</pre><br />
6. OUTLET<br />
<pre><br />
CREATE TABLE OUTLET<br />
(<br />
OutletID NUMBER(4), <br />
OutletName VARCHAR2(40) NOT NULL,<br />
OutletPhone VARCHAR2(15) NOT NULL,<br />
OutletType CHAR(1) NOT NULL,<br />
CONSTRAINT outlet_outletid_pk PRIMARY KEY(OutletID),<br />
CONSTRAINT outlet_outlettype_ck CHECK(OutletType IN('N','M','W','F')),<br />
CONSTRAINT outlet_outletname_type_uk UNIQUE(OutletName, OutletType)<br />
);<br />
<br />
</pre><br />
7. ADVERTISEMENT<br />
<pre><br />
CREATE TABLE ADVERTISEMENT<br />
(<br />
PropertyID NUMBER(6),<br />
OutletID NUMBER(4),<br />
AdvDate DATE,<br />
AdvCost NUMBER(6) NOT NULL,<br />
CONSTRAINT ad_adid_pk PRIMARY KEY(PropertyID, OutletID),<br />
CONSTRAINT ad_propertyid_fk FOREIGN KEY(PropertyID) REFERENCES PROPERTY(PropertyID),<br />
CONSTRAINT ad_outletid_fk FOREIGN KEY(OutletID) REFERENCES OUTLET(OutletID),<br />
CONSTRAINT ad_advcost_ck CHECK(AdvCost > 0)<br />
);<br />
</pre><br />
8. CLIENT<br />
<pre><br />
CREATE TABLE CLIENT<br />
(<br />
ClientID NUMBER(6),<br />
Fname VARCHAR2(30) NOT NULL,<br />
Lname VARCHAR2(30) NOT NULL,<br />
Phone VARCHAR2(15) NOT NULL,<br />
Email VARCHAR2(40),<br />
RefID NUMBER(6),<br />
CONSTRAINT client_clientid_pk PRIMARY KEY(ClientID),<br />
CONSTRAINT client_phone_uk UNIQUE(Phone),<br />
CONSTRAINT client_email_uk UNIQUE(Email),<br />
CONSTRAINT client_refid_fk FOREIGN KEY(RefID) REFERENCES CLIENT(ClientID)<br />
);<br />
</pre><br />
9. DEED<br />
<pre><br />
CREATE TABLE DEED<br />
(<br />
PropertyID NUMBER(6),<br />
SellerID NUMBER(6),<br />
OwnPct NUMBER(5,2) NOT NULL,<br />
BuyerID NUMBER(6),<br />
BuyPrice NUMBER(7),<br />
CONSTRAINT deed_deedid_pk PRIMARY KEY(PropertyID, SellerID),<br />
CONSTRAINT deed_propertyid_fk FOREIGN KEY(PropertyID) REFERENCES PROPERTY(PropertyID),<br />
CONSTRAINT deed_sellerid_fk FOREIGN KEY(SellerID) REFERENCES CLIENT(ClientID),<br />
CONSTRAINT deed_buyerid_fk FOREIGN KEY(BuyerID) REFERENCES CLIENT(ClientID),<br />
CONSTRAINT deed_ownpct_ck CHECK(OwnPct > 0 AND OwnPct <= 100),<br />
CONSTRAINT deed_buyprice_ck CHECK(BuyPrice BETWEEN 1 AND 4999999)<br />
);<br />
<br />
</pre><br />
<br />
==== DML Statements (INSERT INTO) ====<br />
======== Sample Data ========<br />
write sample data for each table that is separated by comma !<br />
<br />
e.g.)<br />
<br />
1. AREA<BR><br />
'''<u>NEED 3 ROWS !</u>'''<BR><br />
#1001, 'Bayview Village', 'Adrienne Clarkson Public School', 'Amesbury Middle School', 'Bayview Secondary School', 'Upper middle class to upper class neighborhood in Toronto.'<br />
#<br />
#<br />
2. AGENCY<BR><br />
'''<u>NEED 3 ROWS !</u>'''<BR><br />
#<br />
#<br />
#<br />
<br />
3. PROPERTY<BR><br />
'''<u>NEED 6 ROWS !</u>'''<BR><br />
#<br />
#<br />
#<br />
#<br />
#<br />
#<br />
<br />
4. SINGLE<BR><br />
'''<u>NEED 3 ROWS !</u>'''<BR><br />
#<br />
#<br />
#<br />
<br />
5. CONDO<BR><br />
'''<u>NEED 3 ROWS !</u>'''<BR><br />
#<br />
#<br />
#<br />
<br />
6. OUTLET<BR><br />
'''<u>NEED 3 ROWS !</u>'''<BR><br />
#<br />
#<br />
#<br />
<br />
7. ADVERTISEMENT<BR><br />
'''<u>NEED 3 ROWS !</u>'''<BR><br />
#<br />
#<br />
#<br />
<br />
8. CLIENT<BR><br />
'''<u>NEED 10 ROWS !</u>'''<BR><br />
#<br />
#<br />
#<br />
#<br />
#<br />
#<br />
#<br />
#<br />
#<br />
#<br />
9. DEED<BR><br />
'''<u>NEED 3 ROWS !</u>'''<BR><br />
#<br />
#<br />
#<br />
<br />
==== CREATE VIEW ====<br />
<br />
=Assignment 1=<br />
==Due Date==<br />
Thursday, October 21st, 4:00pm<br />
Printout submission only( SELECT Statements + ALL outputs)<br />
==Description==<br />
[https://cs.senecac.on.ca/~nconkic/assign1.doc Assignment1]<br />
==Solution==<br />
<pre><br />
SQL> SELECT employee_id, RPAD(CONCAT(CONCAT(last_name, ', '),first_name), 25) "Full Name",<br />
<br />
2 job_id,<br />
<br />
3 TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
<br />
4 "Start Date"<br />
<br />
5 FROM employees<br />
<br />
6 WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
<br />
7 ORDER BY 4 DESC;<br />
<br />
<br />
<br />
EMPLOYEE_ID Full Name JOB_ID Start Date <br />
<br />
----------- ------------------------- ---------- ----------------------------------------- <br />
<br />
124 Mourgos, Kevin ST_MAN November First in the year 1999 <br />
<br />
178 Grant, Kimberely SA_REP May First in the year 1999 <br />
<br />
174 Abel, Ellen SA_REP May First in the year 1996 <br />
<br />
104 Ernst, Bruce IT_PROG May First in the year 1991 <br />
<br />
<br />
<br />
SQL> SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
<br />
2 || job_id || ' will have a new salary of $' || salary * 1.15 "Happy Employees"<br />
<br />
3 FROM employees<br />
<br />
4 WHERE salary BETWEEN 5000 AND 12000<br />
<br />
5 AND job_id IN ('IT_PROG', 'ST_CLERK')<br />
<br />
6 ORDER BY employee_id;<br />
<br />
<br />
<br />
Happy Employees <br />
<br />
----------------------------------------------------------------------------------------------------<br />
<br />
Employee named Alexander Hunold who is IT_PROG will have a new salary of $10350 <br />
<br />
Employee named Bruce Ernst who is IT_PROG will have a new salary of $6900 <br />
<br />
<br />
<br />
SQL> SELECT last_name, salary, job_id,<br />
<br />
2 RPAD(NVL(TO_CHAR(manager_id), 'No Manager'), 10) "Manager #",<br />
<br />
3 LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
<br />
4 FROM employees<br />
<br />
5 WHERE (job_id LIKE 'MK%' OR manager_id IS NULL)<br />
<br />
6 AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
<br />
7 ORDER BY 2 DESC;<br />
<br />
<br />
<br />
LAST_NAME SALARY JOB_ID Manager # Total Income <br />
<br />
------------------------- ---------- ---------- ---------- ------------ <br />
<br />
King 24000 AD_PRES No Manager $288,000 <br />
<br />
Hartstein 13000 MK_MAN 100 $156,000 <br />
<br />
<br />
<br />
SQL> SELECT RPAD(CONCAT(CONCAT(first_name,' '),last_name), 25) "Employee", job_id,<br />
<br />
2 LPAD(TRIM(TO_CHAR(salary, '$999,999')), 12, '=') "Salary", department_name<br />
<br />
3 FROM employees e JOIN departments d<br />
<br />
4 ON (e.department_id = d.department_id)<br />
<br />
5 WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
<br />
6 AND salary <<br />
<br />
7 (SELECT MAX(salary)<br />
<br />
8 FROM employees<br />
<br />
9 WHERE SUBSTR(job_id, 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
<br />
10 ORDER BY 1;<br />
<br />
<br />
<br />
Employee JOB_ID Salary DEPARTMENT_NAME <br />
<br />
------------------------- ---------- ------------ ------------------------------ <br />
<br />
Eleni Zlotkey SA_MAN =====$10,500 Sales <br />
<br />
Jonathon Taylor SA_REP ======$8,600 Sales <br />
<br />
Pat Fay MK_REP ======$6,000 Marketing <br />
<br />
<br />
<br />
SQL><br />
<br />
SQL> SELECT last_name, salary, job_id<br />
<br />
2 FROM employees<br />
<br />
3 WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
<br />
4 AND salary ><br />
<br />
5 (SELECT MAX(salary)<br />
<br />
6 FROM employees<br />
<br />
7 JOIN departments USING (department_id)<br />
<br />
8 JOIN locations USING (location_id)<br />
<br />
9 WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
<br />
<br />
LAST_NAME SALARY JOB_ID <br />
<br />
------------------------- ---------- ---------- <br />
<br />
Kochhar 17000 AD_VP <br />
<br />
De Haan 17000 AD_VP <br />
<br />
<br />
<br />
SQL> SELECT last_name, first_name, job_id, hire_date<br />
<br />
2 FROM employees<br />
<br />
3 WHERE hire_date ><br />
<br />
4 (SELECT MAX(hire_date)<br />
<br />
5 FROM employees<br />
<br />
6 WHERE department_id =<br />
<br />
7 (SELECT department_id<br />
<br />
8 FROM departments<br />
<br />
9 WHERE UPPER(department_name) = 'IT'))<br />
<br />
10 AND (department_id !=<br />
<br />
11 (SELECT department_id<br />
<br />
12 FROM departments<br />
<br />
13 WHERE UPPER(department_name) = 'EXECUTIVE')<br />
<br />
14 OR department_id IS NULL)<br />
<br />
15 ORDER BY 4 DESC;<br />
<br />
<br />
<br />
LAST_NAME FIRST_NAME JOB_ID HIRE_DATE <br />
<br />
------------------------- -------------------- ---------- --------- <br />
<br />
Zlotkey Eleni SA_MAN 29-JAN-00 <br />
<br />
Mourgos Kevin ST_MAN 16-NOV-99 <br />
<br />
Grant Kimberely SA_REP 24-MAY-99 <br />
<br />
<br />
<br />
SQL> SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay",<br />
<br />
2 MIN(salary) "Lowest Dept/Job Pay"<br />
<br />
3 FROM employees<br />
<br />
4 WHERE UPPER(job_id) NOT LIKE '%VP'<br />
<br />
5 AND department_id NOT IN<br />
<br />
6 (SELECT department_id<br />
<br />
7 FROM departments<br />
<br />
8 WHERE UPPER(department_name) IN ('IT','SALES'))<br />
<br />
9 GROUP BY department_id, job_id<br />
<br />
10 HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
<br />
11 ORDER BY 1, 2;<br />
<br />
<br />
<br />
DEPARTMENT_ID JOB_ID Average Dept/Job Pay Lowest Dept/Job Pay <br />
<br />
------------- ---------- -------------------- ------------------- <br />
<br />
20 MK_MAN 13000 13000 <br />
<br />
20 MK_REP 6000 6000 <br />
<br />
50 ST_MAN 5800 5800 <br />
<br />
110 AC_ACCOUNT 8300 8300 <br />
<br />
110 AC_MGR 12000 12000 <br />
<br />
<br />
<br />
SQL> SELECT department_id, department_name,<br />
<br />
2 RPAD(TRIM(NVL(city, 'Not Assinged Yet')), 25, ' ') "City",<br />
<br />
3 COUNT(DISTINCT job_id) "# of Jobs"<br />
<br />
4 FROM employees<br />
<br />
5 RIGHT OUTER JOIN departments USING (department_id)<br />
<br />
6 LEFT OUTER JOIN locations USING (location_id)<br />
<br />
7 GROUP BY department_id, department_name, city;<br />
<br />
<br />
<br />
DEPARTMENT_ID DEPARTMENT_NAME City # of Jobs <br />
<br />
------------- ------------------------------ ------------------------- ---------- <br />
<br />
110 Accounting Seattle 2 <br />
<br />
50 Shipping South San Francisco 2 <br />
<br />
80 Sales Oxford 2 <br />
<br />
10 Administration Seattle 1 <br />
<br />
190 Contracting Seattle 0 <br />
<br />
90 Executive Seattle 2 <br />
<br />
20 Marketing Toronto 2 <br />
<br />
60 IT Southlake 1 <br />
<br />
<br />
<br />
8 rows selected.<br />
<br />
<br />
<br />
SQL> spool off<br />
</pre><br />
==SQL Statements==<br />
===1.===<br />
''YuJin''<br />
<pre><br />
SELECT employee_id, RPAD(CONCAT(CONCAT(last_name, ', '),first_name), 25) "Full Name",<br />
job_id,<br />
TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
"Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
ORDER BY 4 DESC;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT employee_id,<br />
SUBSTR(last_name ||' '|| first_name, 1, 25) "Full Name",<br />
job_id,<br />
TO_CHAR(hire_date,'fmMonth "First in the year" YYYY') "Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date,'fmMON') IN ('MAY','NOV')<br />
ORDER BY hire_date DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select employee_id "Emp#",<br />
(last_name ||', '|| first_name) "Full Name",<br />
job_id "Job",<br />
to_char(trunc(hire_date, 'MONTH'), 'FMMonth Ddspth "in the year"<br />
YYYY') "Start Date"<br />
from employees<br />
where to_char(hire_date, 'fmMonth') in ('May', 'November')<br />
order by hire_date desc;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT employee_id, SUBSTR(last_name ||' '|| first_name, 1, 25) "Full Name",<br />
job_id,<br />
TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
"Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
ORDER BY hire_date DESC;<br />
</pre><br />
<br />
===2.===<br />
''YuJin''<br />
<pre><br />
SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
|| job_id || ' will have a new salary of $' || salary * 1.15 "Happy Employees"<br />
FROM employees<br />
WHERE salary BETWEEN 5000 AND 12000<br />
AND job_id IN ('IT_PROG', 'ST_CLERK')<br />
ORDER BY employee_id;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT 'Employee named '||first_name||' '||last_name||' who is '||job_id||' will have a new salary of $'|| salary *1.15 "Happy Employees"<br />
FROM employees<br />
WHERE job_id IN ('IT_PROG','ST CLERK')<br />
AND (salary BETWEEN 5000 AND 12000)<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
Select ('Employee named ' || first_name ||' '|| last_name || ' who is ' || job_id || ' will have a new salary of ' || (salary*1.15)) "Happy Employees"<br />
From employees<br />
Where salary between 5000 and 12000<br />
And upper(job_id) in ('IT_PROG', 'ST_CLERK')<br />
order by employee_id;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
|| job_id || ' will have a new salary of ' || TO_CHAR(salary * 1.15, 'fm$999999') "Happy Employees"<br />
FROM employees<br />
WHERE salary BETWEEN 5000 AND 12000<br />
AND UPPER(job_id) IN ('IT_PROG', 'ST_CLERK')<br />
ORDER BY employee_id;<br />
</pre><br />
<br />
===3.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, salary, job_id,<br />
RPAD(NVL(TO_CHAR(manager_id), 'No Manager'), 10) "Manager #",<br />
LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
FROM employees<br />
WHERE (job_id LIKE 'MK%' OR manager_id IS NULL)<br />
AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
ORDER BY 2 DESC;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, salary, job_id, NVL(TO_CHAR(manager_id),'No Manager') Manager#,<br />
TO_CHAR(salary*12,'$999,999') "Total Income"<br />
FROM employees<br />
WHERE (manager_id IS NULL<br />
OR job_id LIKE 'MK%')<br />
AND ( salary* (NVL(commission_pct,0) + 1) + 1000 ) > 10000<br />
ORDER BY salary DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, salary, job_id, nvl(to_char(manager_id),'No Manager') Manager#,<br />
to_char(salary*12,'$999,999') "Total Income"<br />
from employees<br />
where (upper(job_id) like 'MK%' or manager_id IS NULL)<br />
and salary * (1 + nvl(commission_pct, 0)) + 1000 > 10000<br />
order by 2 desc;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT last_name, salary, job_id,<br />
SUBSTR(NVL(TO_CHAR(manager_id), 'No Manager'), 1, 10) "Manager #",<br />
LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
FROM employees<br />
WHERE (UPPER(job_id) LIKE 'MK%' OR manager_id IS NULL)<br />
AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
ORDER BY salary DESC;<br />
<br />
</pre><br />
<br />
===4.===<br />
''YuJin''<br />
<pre><br />
SELECT RPAD(CONCAT(CONCAT(first_name,' '),last_name), 25) "Employee", job_id,<br />
LPAD(TRIM(TO_CHAR(salary, '$999,999')), 12, '=') "Salary", department_name<br />
FROM employees e JOIN departments d<br />
ON (e.department_id = d.department_id)<br />
WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
AND salary <<br />
(SELECT MAX(salary)<br />
FROM employees<br />
WHERE SUBSTR(job_id, 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
ORDER BY 1;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT SUBSTR(first_name||' '||last_name, 25) Employee, job_id,<br />
LPAD(TO_CHAR(salary,'$99,999'), 12, '=') Salary, department_name<br />
FROM employees e JOIN departments d<br />
ON (d.department_id=e.department_id)<br />
WHERE salary < (SELECT MAX(salary)<br />
FROM employees<br />
WHERE UPPER(SUBSTR(job_id,4)) NOT IN ('VP', 'PRES', 'MAN', 'MGR')<br />
)<br />
AND UPPER(department_name) IN ('MARKETING','SALES')<br />
ORDER BY first_name, last_name<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select substr(first_name ||' '|| last_name) "Employee", job_id, to_char(salary, '$999,999', 12, '=') Salary, department_name<br />
from employees e join departments d<br />
on (e.department_id = d.department_id)<br />
where upper(department_name) in ('MARKETING', 'SALES')<br />
and salary < (select max(salary)<br />
from employees<br />
where substr(job_id,4) not in ('PRES','VP','MAN','MGR'))<br />
order by "Employee";<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT SUBSTR(first_name ||' '|| last_name, 1, 25) "Employee", job_id,<br />
LPAD(TO_CHAR(salary, 'fm$999,999'), 12, '=') "Salary", department_name<br />
FROM employees e JOIN departments d<br />
ON (e.department_id = d.department_id)<br />
WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
AND salary <<br />
(SELECT MAX(salary)<br />
FROM employees<br />
WHERE SUBSTR(UPPER(job_id), 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
ORDER BY 1;<br />
</pre><br />
<br />
===5.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
AND salary ><br />
(SELECT MAX(salary)<br />
FROM employees<br />
JOIN departments USING (department_id)<br />
JOIN locations USING (location_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE salary > (SELECT MAX(salary)<br />
FROM locations JOIN departments<br />
USING (location_id)<br />
JOIN employees<br />
USING (department_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD')<br />
)<br />
AND UPPER(job_id) NOT LIKE '%PRES'<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, salary, job_id<br />
from employees<br />
where salary > (select max(salary)<br />
from employees join departments<br />
using (department_id)<br />
join locations<br />
using (location_id)<br />
where upper(city) in ('TORONTO','OXFORD'))<br />
and upper(job_id) not like '%PRES'<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
AND salary ><br />
(SELECT MAX(salary)<br />
FROM employees<br />
JOIN departments USING (department_id)<br />
JOIN locations USING (location_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
</pre><br />
<br />
===6.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, first_name, job_id, hire_date<br />
FROM employees<br />
WHERE hire_date ><br />
(SELECT MAX(hire_date)<br />
FROM employees<br />
WHERE department_id =<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'IT'))<br />
AND (department_id !=<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'EXECUTIVE')<br />
OR department_id IS NULL)<br />
ORDER BY 4 DESC;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, first_name, job_id, hire_date<br />
FROM employees e<br />
WHERE hire_date > (SELECT MAX(hire_date)<br />
FROM employees<br />
WHERE department_id = (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'IT'<br />
)<br />
)<br />
AND (department_id <> (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) ='EXECUTIVE')<br />
OR department_id IS NULL)<br />
ORDER BY hire_date DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, first_name, job_id, hire_date<br />
from employees<br />
where hire_date > (select max(hire_date)<br />
from employees<br />
where department_id = (select department_id<br />
from departments<br />
where upper(department_name) = 'IT'))<br />
and (department_id != (select department_id<br />
from departments<br />
where upper(department_name) = 'EXECUTIVE')<br />
or department_id IS NULL)<br />
order by hire_date desc;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT last_name, first_name, job_id, hire_date<br />
FROM employees<br />
WHERE hire_date ><br />
(SELECT MAX(hire_date)<br />
FROM employees<br />
WHERE department_id =<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'IT'))<br />
AND (department_id !=<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'EXECUTIVE')<br />
OR department_id IS NULL)<br />
ORDER BY hire_date DESC;<br />
</pre><br />
<br />
===7.===<br />
''YuJin''<br />
<pre><br />
SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay",<br />
MIN(salary) "Lowest Dept/Job Pay"<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%VP'<br />
AND department_id NOT IN<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) IN ('IT','SALES'))<br />
GROUP BY department_id, job_id<br />
HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
ORDER BY 1, 2;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay", MIN(salary) "Lowest Dept/Job Pay"<br />
FROM employees<br />
WHERE department_id <> ALL (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) IN ('IT','SALES')<br />
)<br />
AND job_id NOT LIKE '%VP'<br />
GROUP BY department_id, job_id<br />
HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
ORDER BY department_id, job_id<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select department_id, job_id, avg(salary) "Average Dept/Job Pay", min(salary) "Lowest Dept/Job Pay"<br />
from employees<br />
where upper(job_id) not like '%VP'<br />
and department_id != all(select department_id<br />
from departments<br />
where upper(department_name) in ('IT','SALES'))<br />
group by department_id, job_id<br />
having min(salary) between 5000 and 15000<br />
order by department_id, job_id<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay",<br />
MIN(salary) "Lowest Dept/Job Pay"<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%VP'<br />
AND department_id != ALL<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) IN ('IT','SALES'))<br />
GROUP BY department_id, job_id<br />
HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
ORDER BY department_id, job_id;<br />
</pre><br />
<br />
===8.===<br />
''YuJin''<br />
<pre><br />
SELECT department_id, department_name,<br />
RPAD(TRIM(NVL(city, 'Not Assinged Yet')), 25, ' ') "City",<br />
COUNT(DISTINCT job_id) "# of Jobs"<br />
FROM employees<br />
RIGHT OUTER JOIN departments USING (department_id)<br />
LEFT OUTER JOIN locations USING (location_id)<br />
GROUP BY department_id, department_name, city;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT department_id, department_name, SUBSTR(NVL(city,'Not Assigned Yet'),1,25) City,<br />
COUNT(DISTINCT job_id) "# of Jobs"<br />
FROM locations l RIGHT OUTER JOIN departments d<br />
USING (location_id)<br />
LEFT OUTER JOIN employees e<br />
USING (department_id)<br />
GROUP BY department_id, department_name, city<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select department_id, department_name, substr(nvl(city,'Not Assigned Yet'),1,25) City,<br />
count(distinct job_id) "# of Jobs"<br />
from employees right outer join departments<br />
using (department_id)<br />
left outer join locations<br />
using (location_id)<br />
group by department_id, department_name, city<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT department_id, department_name,<br />
SUBSTR(NVL(city, 'Not Assinged Yet'),1, 25) "City",<br />
COUNT(DISTINCT job_id) "# of Jobs"<br />
FROM employees<br />
RIGHT OUTER JOIN departments USING (department_id)<br />
LEFT OUTER JOIN locations USING (location_id)<br />
GROUP BY department_id, department_name, city;<br />
<br />
</pre></div>
Yujin.jeong
https://wiki.cdot.senecacollege.ca/w/index.php?title=J.Y.S&diff=50858
J.Y.S
2010-11-27T20:33:06Z
<p>Yujin.jeong: /* Sample Data */</p>
<hr />
<div>This page is to efficiently manage our group assignments!<br />
== Member List == <br />
*[mailto:,,yjeong@learn.senecac.on.ca,?subject=dbs301 Email All]<br />
<br />
{| class="wikitable sortable" border="1" cellpadding="5"<br />
! First Name !! Last Name !! wiki id !! Learn e-mail !! Phone<br />
|-<br />
|[[User:Yujin.jeong | YuJin]]||Jeong||[[Special:Contributions/yujin.jeong | yujin.jeong]]||[mailto:yjeong@learn.senecac.on.ca?sujbect=dbs301 yjeong]|| 647 - 832 - 6771<br />
|-<br />
<br />
|-<br />
|Saad|| || || ||<br />
|-<br />
<br />
|-<br />
|James|| || || ||<br />
|-<br />
|}<br />
<br />
=Assignment 3 (worth 9%)=<br />
==Due Date==<br />
Thursday, December 2nd, 3:00pm<br />
Printout of all TIC charts and DDL / DML statements<br />
<br />
==Solution==<br />
==== DDL Statements (CREATE TABLE) ====<br />
1. AREA<br />
<pre><br />
CREATE TABLE AREA<br />
(<br />
AreaID NUMBER(4) CONSTRAINT area_areaid_pk PRIMARY KEY,<br />
AreaName VARCHAR2(30) NOT NULL CONSTRAINT area_areaname_uk UNIQUE,<br />
ElmSchool VARCHAR2(40),<br />
MidSchool VARCHAR2(40),<br />
HighSchool VARCHAR2(40),<br />
Comments VARCHAR2(100)<br />
);<br />
</pre><br />
2. AGENCY<br />
<pre><br />
CREATE TABLE AGENCY<br />
(<br />
AgencyID NUMBER(4) CONSTRAINT agency_agencyid_pk PRIMARY KEY,<br />
AgencyName VARCHAR2(40) NOT NULL CONSTRAINT agency_agencyname_uk UNIQUE,<br />
AgencyPhone VARCHAR2(15) NOT NULL CONSTRAINT agency_agencyphone_uk UNIQUE<br />
);<br />
</pre><br />
3. PROPERTY<br />
<pre><br />
CREATE TABLE PROPERTY<br />
(<br />
PropertyID NUMBER(6),<br />
Street VARCHAR2(40) NOT NULL,<br />
City VARCHAR2(30) NOT NULL,<br />
Province CHAR(2) NOT NULL,<br />
PostalCode CHAR(6) NOT NULL,<br />
Bedrooms NUMBER(1) NOT NULL,<br />
Bathrooms NUMBER(1) NOT NULL,<br />
ListingPrice NUMBER(6) NOT NULL,<br />
AreaID NUMBER(4) NOT NULL,<br />
CONSTRAINT property_propertyid_pk PRIMARY KEY(PropertyID),<br />
CONSTRAINT property_bedrooms_ck CHECK(Bedrooms BETWEEN 1 AND 9),<br />
CONSTRAINT property_bathrooms_ck CHECK(Bathrooms BETWEEN 1 AND 9),<br />
CONSTRAINT property_listingprice_ck CHECK(ListingPrice BETWEEN 1 AND 4999999),<br />
CONSTRAINT property_areaid_fk FOREIGN KEY(AreaID) REFERENCES AREA(AreaID)<br />
);<br />
</pre><br />
4. SINGLE<br />
<pre><br />
CREATE TABLE SINGLE<br />
(<br />
PropertyID NUMBER(6), <br />
LotSize NUMBER(8,2) NOT NULL,<br />
CONSTRAINT single_propertyID_pk PRIMARY KEY(PropertyID), <br />
CONSTRAINT single_propertyID_fk FOREIGN KEY(PropertyID) REFERENCES PROPERTY(PropertyID),<br />
CONSTRAINT single_lotsize_ck CHECK(LotSize > 0)<br />
);<br />
<br />
</pre><br />
5. CONDO<br />
<pre><br />
CREATE TABLE CONDO<br />
(<br />
PropertyID NUMBER(6),<br />
Fee NUMBER(8,2) NOT NULL, <br />
CONSTRAINT condo_propertyID_pk PRIMARY KEY(PropertyID),<br />
CONSTRAINT condo_propertyID_fk FOREIGN KEY(PropertyID) REFERENCES PROPERTY(PropertyID),<br />
CONSTRAINT condo_fee_ck CHECK(Fee > 0)<br />
);<br />
<br />
</pre><br />
6. OUTLET<br />
<pre><br />
CREATE TABLE OUTLET<br />
(<br />
OutletID NUMBER(4), <br />
OutletName VARCHAR2(40) NOT NULL,<br />
OutletPhone VARCHAR2(15) NOT NULL,<br />
OutletType CHAR(1) NOT NULL,<br />
CONSTRAINT outlet_outletid_pk PRIMARY KEY(OutletID),<br />
CONSTRAINT outlet_outlettype_ck CHECK(OutletType IN('N','M','W','F')),<br />
CONSTRAINT outlet_outletname_type_uk UNIQUE(OutletName, OutletType)<br />
);<br />
<br />
</pre><br />
7. ADVERTISEMENT<br />
<pre><br />
CREATE TABLE ADVERTISEMENT<br />
(<br />
PropertyID NUMBER(6),<br />
OutletID NUMBER(4),<br />
AdvDate DATE,<br />
AdvCost NUMBER(6) NOT NULL,<br />
CONSTRAINT ad_adid_pk PRIMARY KEY(PropertyID, OutletID),<br />
CONSTRAINT ad_propertyid_fk FOREIGN KEY(PropertyID) REFERENCES PROPERTY(PropertyID),<br />
CONSTRAINT ad_outletid_fk FOREIGN KEY(OutletID) REFERENCES OUTLET(OutletID),<br />
CONSTRAINT ad_advcost_ck CHECK(AdvCost > 0)<br />
);<br />
</pre><br />
8. CLIENT<br />
<pre><br />
CREATE TABLE CLIENT<br />
(<br />
ClientID NUMBER(6),<br />
Fname VARCHAR2(30) NOT NULL,<br />
Lname VARCHAR2(30) NOT NULL,<br />
Phone VARCHAR2(15) NOT NULL,<br />
Email VARCHAR2(40),<br />
RefID NUMBER(6),<br />
CONSTRAINT client_clientid_pk PRIMARY KEY(ClientID),<br />
CONSTRAINT client_phone_uk UNIQUE(Phone),<br />
CONSTRAINT client_email_uk UNIQUE(Email),<br />
CONSTRAINT client_refid_fk FOREIGN KEY(RefID) REFERENCES CLIENT(ClientID)<br />
);<br />
</pre><br />
9. DEED<br />
<pre><br />
CREATE TABLE DEED<br />
(<br />
PropertyID NUMBER(6),<br />
SellerID NUMBER(6),<br />
OwnPct NUMBER(5,2) NOT NULL,<br />
BuyerID NUMBER(6),<br />
BuyPrice NUMBER(7),<br />
CONSTRAINT deed_deedid_pk PRIMARY KEY(PropertyID, SellerID),<br />
CONSTRAINT deed_propertyid_fk FOREIGN KEY(PropertyID) REFERENCES PROPERTY(PropertyID),<br />
CONSTRAINT deed_sellerid_fk FOREIGN KEY(SellerID) REFERENCES CLIENT(ClientID),<br />
CONSTRAINT deed_buyerid_fk FOREIGN KEY(BuyerID) REFERENCES CLIENT(ClientID),<br />
CONSTRAINT deed_ownpct_ck CHECK(OwnPct > 0 AND OwnPct <= 100),<br />
CONSTRAINT deed_buyprice_ck CHECK(BuyPrice BETWEEN 1 AND 4999999)<br />
);<br />
<br />
</pre><br />
<br />
==== DML Statements (INSERT INTO) ====<br />
======== Sample Data ========<br />
write sample data for each table that is separated by comma !<br />
<br />
e.g.)<br />
<br />
1. AREA<BR><br />
'''<u>NEED 3 ROWS !</u>'''<BR><br />
1001, 'Bayview Village', 'Adrienne Clarkson Public School', 'Amesbury Middle School', 'Bayview Secondary School', 'Upper middle class to upper class neighborhood in Toronto.'<br />
<br />
2. AGENCY<BR><br />
'''<u>NEED 3 ROWS !</u>'''<BR><br />
<br />
3. PROPERTY<BR><br />
'''<u>NEED 6 ROWS !</u>'''<BR><br />
<br />
4. SINGLE<BR><br />
'''<u>NEED 3 ROWS !</u>'''<BR><br />
<br />
5. CONDO<BR><br />
'''<u>NEED 3 ROWS !</u>'''<BR><br />
<br />
6. OUTLET<BR><br />
'''<u>NEED 3 ROWS !</u>'''<BR><br />
<br />
7. ADVERTISEMENT<BR><br />
'''<u>NEED 3 ROWS !</u>'''<BR><br />
<br />
8. CLIENT<BR><br />
'''<u>NEED 10 ROWS !</u>'''<BR><br />
<br />
9. DEED<BR><br />
'''<u>NEED 3 ROWS !</u>'''<BR><br />
<br />
==== CREATE VIEW ====<br />
<br />
=Assignment 1=<br />
==Due Date==<br />
Thursday, October 21st, 4:00pm<br />
Printout submission only( SELECT Statements + ALL outputs)<br />
==Description==<br />
[https://cs.senecac.on.ca/~nconkic/assign1.doc Assignment1]<br />
==Solution==<br />
<pre><br />
SQL> SELECT employee_id, RPAD(CONCAT(CONCAT(last_name, ', '),first_name), 25) "Full Name",<br />
<br />
2 job_id,<br />
<br />
3 TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
<br />
4 "Start Date"<br />
<br />
5 FROM employees<br />
<br />
6 WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
<br />
7 ORDER BY 4 DESC;<br />
<br />
<br />
<br />
EMPLOYEE_ID Full Name JOB_ID Start Date <br />
<br />
----------- ------------------------- ---------- ----------------------------------------- <br />
<br />
124 Mourgos, Kevin ST_MAN November First in the year 1999 <br />
<br />
178 Grant, Kimberely SA_REP May First in the year 1999 <br />
<br />
174 Abel, Ellen SA_REP May First in the year 1996 <br />
<br />
104 Ernst, Bruce IT_PROG May First in the year 1991 <br />
<br />
<br />
<br />
SQL> SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
<br />
2 || job_id || ' will have a new salary of $' || salary * 1.15 "Happy Employees"<br />
<br />
3 FROM employees<br />
<br />
4 WHERE salary BETWEEN 5000 AND 12000<br />
<br />
5 AND job_id IN ('IT_PROG', 'ST_CLERK')<br />
<br />
6 ORDER BY employee_id;<br />
<br />
<br />
<br />
Happy Employees <br />
<br />
----------------------------------------------------------------------------------------------------<br />
<br />
Employee named Alexander Hunold who is IT_PROG will have a new salary of $10350 <br />
<br />
Employee named Bruce Ernst who is IT_PROG will have a new salary of $6900 <br />
<br />
<br />
<br />
SQL> SELECT last_name, salary, job_id,<br />
<br />
2 RPAD(NVL(TO_CHAR(manager_id), 'No Manager'), 10) "Manager #",<br />
<br />
3 LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
<br />
4 FROM employees<br />
<br />
5 WHERE (job_id LIKE 'MK%' OR manager_id IS NULL)<br />
<br />
6 AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
<br />
7 ORDER BY 2 DESC;<br />
<br />
<br />
<br />
LAST_NAME SALARY JOB_ID Manager # Total Income <br />
<br />
------------------------- ---------- ---------- ---------- ------------ <br />
<br />
King 24000 AD_PRES No Manager $288,000 <br />
<br />
Hartstein 13000 MK_MAN 100 $156,000 <br />
<br />
<br />
<br />
SQL> SELECT RPAD(CONCAT(CONCAT(first_name,' '),last_name), 25) "Employee", job_id,<br />
<br />
2 LPAD(TRIM(TO_CHAR(salary, '$999,999')), 12, '=') "Salary", department_name<br />
<br />
3 FROM employees e JOIN departments d<br />
<br />
4 ON (e.department_id = d.department_id)<br />
<br />
5 WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
<br />
6 AND salary <<br />
<br />
7 (SELECT MAX(salary)<br />
<br />
8 FROM employees<br />
<br />
9 WHERE SUBSTR(job_id, 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
<br />
10 ORDER BY 1;<br />
<br />
<br />
<br />
Employee JOB_ID Salary DEPARTMENT_NAME <br />
<br />
------------------------- ---------- ------------ ------------------------------ <br />
<br />
Eleni Zlotkey SA_MAN =====$10,500 Sales <br />
<br />
Jonathon Taylor SA_REP ======$8,600 Sales <br />
<br />
Pat Fay MK_REP ======$6,000 Marketing <br />
<br />
<br />
<br />
SQL><br />
<br />
SQL> SELECT last_name, salary, job_id<br />
<br />
2 FROM employees<br />
<br />
3 WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
<br />
4 AND salary ><br />
<br />
5 (SELECT MAX(salary)<br />
<br />
6 FROM employees<br />
<br />
7 JOIN departments USING (department_id)<br />
<br />
8 JOIN locations USING (location_id)<br />
<br />
9 WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
<br />
<br />
LAST_NAME SALARY JOB_ID <br />
<br />
------------------------- ---------- ---------- <br />
<br />
Kochhar 17000 AD_VP <br />
<br />
De Haan 17000 AD_VP <br />
<br />
<br />
<br />
SQL> SELECT last_name, first_name, job_id, hire_date<br />
<br />
2 FROM employees<br />
<br />
3 WHERE hire_date ><br />
<br />
4 (SELECT MAX(hire_date)<br />
<br />
5 FROM employees<br />
<br />
6 WHERE department_id =<br />
<br />
7 (SELECT department_id<br />
<br />
8 FROM departments<br />
<br />
9 WHERE UPPER(department_name) = 'IT'))<br />
<br />
10 AND (department_id !=<br />
<br />
11 (SELECT department_id<br />
<br />
12 FROM departments<br />
<br />
13 WHERE UPPER(department_name) = 'EXECUTIVE')<br />
<br />
14 OR department_id IS NULL)<br />
<br />
15 ORDER BY 4 DESC;<br />
<br />
<br />
<br />
LAST_NAME FIRST_NAME JOB_ID HIRE_DATE <br />
<br />
------------------------- -------------------- ---------- --------- <br />
<br />
Zlotkey Eleni SA_MAN 29-JAN-00 <br />
<br />
Mourgos Kevin ST_MAN 16-NOV-99 <br />
<br />
Grant Kimberely SA_REP 24-MAY-99 <br />
<br />
<br />
<br />
SQL> SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay",<br />
<br />
2 MIN(salary) "Lowest Dept/Job Pay"<br />
<br />
3 FROM employees<br />
<br />
4 WHERE UPPER(job_id) NOT LIKE '%VP'<br />
<br />
5 AND department_id NOT IN<br />
<br />
6 (SELECT department_id<br />
<br />
7 FROM departments<br />
<br />
8 WHERE UPPER(department_name) IN ('IT','SALES'))<br />
<br />
9 GROUP BY department_id, job_id<br />
<br />
10 HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
<br />
11 ORDER BY 1, 2;<br />
<br />
<br />
<br />
DEPARTMENT_ID JOB_ID Average Dept/Job Pay Lowest Dept/Job Pay <br />
<br />
------------- ---------- -------------------- ------------------- <br />
<br />
20 MK_MAN 13000 13000 <br />
<br />
20 MK_REP 6000 6000 <br />
<br />
50 ST_MAN 5800 5800 <br />
<br />
110 AC_ACCOUNT 8300 8300 <br />
<br />
110 AC_MGR 12000 12000 <br />
<br />
<br />
<br />
SQL> SELECT department_id, department_name,<br />
<br />
2 RPAD(TRIM(NVL(city, 'Not Assinged Yet')), 25, ' ') "City",<br />
<br />
3 COUNT(DISTINCT job_id) "# of Jobs"<br />
<br />
4 FROM employees<br />
<br />
5 RIGHT OUTER JOIN departments USING (department_id)<br />
<br />
6 LEFT OUTER JOIN locations USING (location_id)<br />
<br />
7 GROUP BY department_id, department_name, city;<br />
<br />
<br />
<br />
DEPARTMENT_ID DEPARTMENT_NAME City # of Jobs <br />
<br />
------------- ------------------------------ ------------------------- ---------- <br />
<br />
110 Accounting Seattle 2 <br />
<br />
50 Shipping South San Francisco 2 <br />
<br />
80 Sales Oxford 2 <br />
<br />
10 Administration Seattle 1 <br />
<br />
190 Contracting Seattle 0 <br />
<br />
90 Executive Seattle 2 <br />
<br />
20 Marketing Toronto 2 <br />
<br />
60 IT Southlake 1 <br />
<br />
<br />
<br />
8 rows selected.<br />
<br />
<br />
<br />
SQL> spool off<br />
</pre><br />
==SQL Statements==<br />
===1.===<br />
''YuJin''<br />
<pre><br />
SELECT employee_id, RPAD(CONCAT(CONCAT(last_name, ', '),first_name), 25) "Full Name",<br />
job_id,<br />
TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
"Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
ORDER BY 4 DESC;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT employee_id,<br />
SUBSTR(last_name ||' '|| first_name, 1, 25) "Full Name",<br />
job_id,<br />
TO_CHAR(hire_date,'fmMonth "First in the year" YYYY') "Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date,'fmMON') IN ('MAY','NOV')<br />
ORDER BY hire_date DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select employee_id "Emp#",<br />
(last_name ||', '|| first_name) "Full Name",<br />
job_id "Job",<br />
to_char(trunc(hire_date, 'MONTH'), 'FMMonth Ddspth "in the year"<br />
YYYY') "Start Date"<br />
from employees<br />
where to_char(hire_date, 'fmMonth') in ('May', 'November')<br />
order by hire_date desc;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT employee_id, SUBSTR(last_name ||' '|| first_name, 1, 25) "Full Name",<br />
job_id,<br />
TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
"Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
ORDER BY hire_date DESC;<br />
</pre><br />
<br />
===2.===<br />
''YuJin''<br />
<pre><br />
SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
|| job_id || ' will have a new salary of $' || salary * 1.15 "Happy Employees"<br />
FROM employees<br />
WHERE salary BETWEEN 5000 AND 12000<br />
AND job_id IN ('IT_PROG', 'ST_CLERK')<br />
ORDER BY employee_id;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT 'Employee named '||first_name||' '||last_name||' who is '||job_id||' will have a new salary of $'|| salary *1.15 "Happy Employees"<br />
FROM employees<br />
WHERE job_id IN ('IT_PROG','ST CLERK')<br />
AND (salary BETWEEN 5000 AND 12000)<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
Select ('Employee named ' || first_name ||' '|| last_name || ' who is ' || job_id || ' will have a new salary of ' || (salary*1.15)) "Happy Employees"<br />
From employees<br />
Where salary between 5000 and 12000<br />
And upper(job_id) in ('IT_PROG', 'ST_CLERK')<br />
order by employee_id;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
|| job_id || ' will have a new salary of ' || TO_CHAR(salary * 1.15, 'fm$999999') "Happy Employees"<br />
FROM employees<br />
WHERE salary BETWEEN 5000 AND 12000<br />
AND UPPER(job_id) IN ('IT_PROG', 'ST_CLERK')<br />
ORDER BY employee_id;<br />
</pre><br />
<br />
===3.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, salary, job_id,<br />
RPAD(NVL(TO_CHAR(manager_id), 'No Manager'), 10) "Manager #",<br />
LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
FROM employees<br />
WHERE (job_id LIKE 'MK%' OR manager_id IS NULL)<br />
AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
ORDER BY 2 DESC;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, salary, job_id, NVL(TO_CHAR(manager_id),'No Manager') Manager#,<br />
TO_CHAR(salary*12,'$999,999') "Total Income"<br />
FROM employees<br />
WHERE (manager_id IS NULL<br />
OR job_id LIKE 'MK%')<br />
AND ( salary* (NVL(commission_pct,0) + 1) + 1000 ) > 10000<br />
ORDER BY salary DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, salary, job_id, nvl(to_char(manager_id),'No Manager') Manager#,<br />
to_char(salary*12,'$999,999') "Total Income"<br />
from employees<br />
where (upper(job_id) like 'MK%' or manager_id IS NULL)<br />
and salary * (1 + nvl(commission_pct, 0)) + 1000 > 10000<br />
order by 2 desc;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT last_name, salary, job_id,<br />
SUBSTR(NVL(TO_CHAR(manager_id), 'No Manager'), 1, 10) "Manager #",<br />
LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
FROM employees<br />
WHERE (UPPER(job_id) LIKE 'MK%' OR manager_id IS NULL)<br />
AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
ORDER BY salary DESC;<br />
<br />
</pre><br />
<br />
===4.===<br />
''YuJin''<br />
<pre><br />
SELECT RPAD(CONCAT(CONCAT(first_name,' '),last_name), 25) "Employee", job_id,<br />
LPAD(TRIM(TO_CHAR(salary, '$999,999')), 12, '=') "Salary", department_name<br />
FROM employees e JOIN departments d<br />
ON (e.department_id = d.department_id)<br />
WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
AND salary <<br />
(SELECT MAX(salary)<br />
FROM employees<br />
WHERE SUBSTR(job_id, 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
ORDER BY 1;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT SUBSTR(first_name||' '||last_name, 25) Employee, job_id,<br />
LPAD(TO_CHAR(salary,'$99,999'), 12, '=') Salary, department_name<br />
FROM employees e JOIN departments d<br />
ON (d.department_id=e.department_id)<br />
WHERE salary < (SELECT MAX(salary)<br />
FROM employees<br />
WHERE UPPER(SUBSTR(job_id,4)) NOT IN ('VP', 'PRES', 'MAN', 'MGR')<br />
)<br />
AND UPPER(department_name) IN ('MARKETING','SALES')<br />
ORDER BY first_name, last_name<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select substr(first_name ||' '|| last_name) "Employee", job_id, to_char(salary, '$999,999', 12, '=') Salary, department_name<br />
from employees e join departments d<br />
on (e.department_id = d.department_id)<br />
where upper(department_name) in ('MARKETING', 'SALES')<br />
and salary < (select max(salary)<br />
from employees<br />
where substr(job_id,4) not in ('PRES','VP','MAN','MGR'))<br />
order by "Employee";<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT SUBSTR(first_name ||' '|| last_name, 1, 25) "Employee", job_id,<br />
LPAD(TO_CHAR(salary, 'fm$999,999'), 12, '=') "Salary", department_name<br />
FROM employees e JOIN departments d<br />
ON (e.department_id = d.department_id)<br />
WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
AND salary <<br />
(SELECT MAX(salary)<br />
FROM employees<br />
WHERE SUBSTR(UPPER(job_id), 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
ORDER BY 1;<br />
</pre><br />
<br />
===5.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
AND salary ><br />
(SELECT MAX(salary)<br />
FROM employees<br />
JOIN departments USING (department_id)<br />
JOIN locations USING (location_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE salary > (SELECT MAX(salary)<br />
FROM locations JOIN departments<br />
USING (location_id)<br />
JOIN employees<br />
USING (department_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD')<br />
)<br />
AND UPPER(job_id) NOT LIKE '%PRES'<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, salary, job_id<br />
from employees<br />
where salary > (select max(salary)<br />
from employees join departments<br />
using (department_id)<br />
join locations<br />
using (location_id)<br />
where upper(city) in ('TORONTO','OXFORD'))<br />
and upper(job_id) not like '%PRES'<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
AND salary ><br />
(SELECT MAX(salary)<br />
FROM employees<br />
JOIN departments USING (department_id)<br />
JOIN locations USING (location_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
</pre><br />
<br />
===6.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, first_name, job_id, hire_date<br />
FROM employees<br />
WHERE hire_date ><br />
(SELECT MAX(hire_date)<br />
FROM employees<br />
WHERE department_id =<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'IT'))<br />
AND (department_id !=<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'EXECUTIVE')<br />
OR department_id IS NULL)<br />
ORDER BY 4 DESC;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, first_name, job_id, hire_date<br />
FROM employees e<br />
WHERE hire_date > (SELECT MAX(hire_date)<br />
FROM employees<br />
WHERE department_id = (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'IT'<br />
)<br />
)<br />
AND (department_id <> (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) ='EXECUTIVE')<br />
OR department_id IS NULL)<br />
ORDER BY hire_date DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, first_name, job_id, hire_date<br />
from employees<br />
where hire_date > (select max(hire_date)<br />
from employees<br />
where department_id = (select department_id<br />
from departments<br />
where upper(department_name) = 'IT'))<br />
and (department_id != (select department_id<br />
from departments<br />
where upper(department_name) = 'EXECUTIVE')<br />
or department_id IS NULL)<br />
order by hire_date desc;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT last_name, first_name, job_id, hire_date<br />
FROM employees<br />
WHERE hire_date ><br />
(SELECT MAX(hire_date)<br />
FROM employees<br />
WHERE department_id =<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'IT'))<br />
AND (department_id !=<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'EXECUTIVE')<br />
OR department_id IS NULL)<br />
ORDER BY hire_date DESC;<br />
</pre><br />
<br />
===7.===<br />
''YuJin''<br />
<pre><br />
SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay",<br />
MIN(salary) "Lowest Dept/Job Pay"<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%VP'<br />
AND department_id NOT IN<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) IN ('IT','SALES'))<br />
GROUP BY department_id, job_id<br />
HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
ORDER BY 1, 2;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay", MIN(salary) "Lowest Dept/Job Pay"<br />
FROM employees<br />
WHERE department_id <> ALL (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) IN ('IT','SALES')<br />
)<br />
AND job_id NOT LIKE '%VP'<br />
GROUP BY department_id, job_id<br />
HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
ORDER BY department_id, job_id<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select department_id, job_id, avg(salary) "Average Dept/Job Pay", min(salary) "Lowest Dept/Job Pay"<br />
from employees<br />
where upper(job_id) not like '%VP'<br />
and department_id != all(select department_id<br />
from departments<br />
where upper(department_name) in ('IT','SALES'))<br />
group by department_id, job_id<br />
having min(salary) between 5000 and 15000<br />
order by department_id, job_id<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay",<br />
MIN(salary) "Lowest Dept/Job Pay"<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%VP'<br />
AND department_id != ALL<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) IN ('IT','SALES'))<br />
GROUP BY department_id, job_id<br />
HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
ORDER BY department_id, job_id;<br />
</pre><br />
<br />
===8.===<br />
''YuJin''<br />
<pre><br />
SELECT department_id, department_name,<br />
RPAD(TRIM(NVL(city, 'Not Assinged Yet')), 25, ' ') "City",<br />
COUNT(DISTINCT job_id) "# of Jobs"<br />
FROM employees<br />
RIGHT OUTER JOIN departments USING (department_id)<br />
LEFT OUTER JOIN locations USING (location_id)<br />
GROUP BY department_id, department_name, city;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT department_id, department_name, SUBSTR(NVL(city,'Not Assigned Yet'),1,25) City,<br />
COUNT(DISTINCT job_id) "# of Jobs"<br />
FROM locations l RIGHT OUTER JOIN departments d<br />
USING (location_id)<br />
LEFT OUTER JOIN employees e<br />
USING (department_id)<br />
GROUP BY department_id, department_name, city<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select department_id, department_name, substr(nvl(city,'Not Assigned Yet'),1,25) City,<br />
count(distinct job_id) "# of Jobs"<br />
from employees right outer join departments<br />
using (department_id)<br />
left outer join locations<br />
using (location_id)<br />
group by department_id, department_name, city<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT department_id, department_name,<br />
SUBSTR(NVL(city, 'Not Assinged Yet'),1, 25) "City",<br />
COUNT(DISTINCT job_id) "# of Jobs"<br />
FROM employees<br />
RIGHT OUTER JOIN departments USING (department_id)<br />
LEFT OUTER JOIN locations USING (location_id)<br />
GROUP BY department_id, department_name, city;<br />
<br />
</pre></div>
Yujin.jeong
https://wiki.cdot.senecacollege.ca/w/index.php?title=J.Y.S&diff=50855
J.Y.S
2010-11-27T20:30:21Z
<p>Yujin.jeong: /* DML Statements (INSERT INTO) */</p>
<hr />
<div>This page is to efficiently manage our group assignments!<br />
== Member List == <br />
*[mailto:,,yjeong@learn.senecac.on.ca,?subject=dbs301 Email All]<br />
<br />
{| class="wikitable sortable" border="1" cellpadding="5"<br />
! First Name !! Last Name !! wiki id !! Learn e-mail !! Phone<br />
|-<br />
|[[User:Yujin.jeong | YuJin]]||Jeong||[[Special:Contributions/yujin.jeong | yujin.jeong]]||[mailto:yjeong@learn.senecac.on.ca?sujbect=dbs301 yjeong]|| 647 - 832 - 6771<br />
|-<br />
<br />
|-<br />
|Saad|| || || ||<br />
|-<br />
<br />
|-<br />
|James|| || || ||<br />
|-<br />
|}<br />
<br />
=Assignment 3 (worth 9%)=<br />
==Due Date==<br />
Thursday, December 2nd, 3:00pm<br />
Printout of all TIC charts and DDL / DML statements<br />
<br />
==Solution==<br />
==== DDL Statements (CREATE TABLE) ====<br />
1. AREA<br />
<pre><br />
CREATE TABLE AREA<br />
(<br />
AreaID NUMBER(4) CONSTRAINT area_areaid_pk PRIMARY KEY,<br />
AreaName VARCHAR2(30) NOT NULL CONSTRAINT area_areaname_uk UNIQUE,<br />
ElmSchool VARCHAR2(40),<br />
MidSchool VARCHAR2(40),<br />
HighSchool VARCHAR2(40),<br />
Comments VARCHAR2(100)<br />
);<br />
</pre><br />
2. AGENCY<br />
<pre><br />
CREATE TABLE AGENCY<br />
(<br />
AgencyID NUMBER(4) CONSTRAINT agency_agencyid_pk PRIMARY KEY,<br />
AgencyName VARCHAR2(40) NOT NULL CONSTRAINT agency_agencyname_uk UNIQUE,<br />
AgencyPhone VARCHAR2(15) NOT NULL CONSTRAINT agency_agencyphone_uk UNIQUE<br />
);<br />
</pre><br />
3. PROPERTY<br />
<pre><br />
CREATE TABLE PROPERTY<br />
(<br />
PropertyID NUMBER(6),<br />
Street VARCHAR2(40) NOT NULL,<br />
City VARCHAR2(30) NOT NULL,<br />
Province CHAR(2) NOT NULL,<br />
PostalCode CHAR(6) NOT NULL,<br />
Bedrooms NUMBER(1) NOT NULL,<br />
Bathrooms NUMBER(1) NOT NULL,<br />
ListingPrice NUMBER(6) NOT NULL,<br />
AreaID NUMBER(4) NOT NULL,<br />
CONSTRAINT property_propertyid_pk PRIMARY KEY(PropertyID),<br />
CONSTRAINT property_bedrooms_ck CHECK(Bedrooms BETWEEN 1 AND 9),<br />
CONSTRAINT property_bathrooms_ck CHECK(Bathrooms BETWEEN 1 AND 9),<br />
CONSTRAINT property_listingprice_ck CHECK(ListingPrice BETWEEN 1 AND 4999999),<br />
CONSTRAINT property_areaid_fk FOREIGN KEY(AreaID) REFERENCES AREA(AreaID)<br />
);<br />
</pre><br />
4. SINGLE<br />
<pre><br />
CREATE TABLE SINGLE<br />
(<br />
PropertyID NUMBER(6), <br />
LotSize NUMBER(8,2) NOT NULL,<br />
CONSTRAINT single_propertyID_pk PRIMARY KEY(PropertyID), <br />
CONSTRAINT single_propertyID_fk FOREIGN KEY(PropertyID) REFERENCES PROPERTY(PropertyID),<br />
CONSTRAINT single_lotsize_ck CHECK(LotSize > 0)<br />
);<br />
<br />
</pre><br />
5. CONDO<br />
<pre><br />
CREATE TABLE CONDO<br />
(<br />
PropertyID NUMBER(6),<br />
Fee NUMBER(8,2) NOT NULL, <br />
CONSTRAINT condo_propertyID_pk PRIMARY KEY(PropertyID),<br />
CONSTRAINT condo_propertyID_fk FOREIGN KEY(PropertyID) REFERENCES PROPERTY(PropertyID),<br />
CONSTRAINT condo_fee_ck CHECK(Fee > 0)<br />
);<br />
<br />
</pre><br />
6. OUTLET<br />
<pre><br />
CREATE TABLE OUTLET<br />
(<br />
OutletID NUMBER(4), <br />
OutletName VARCHAR2(40) NOT NULL,<br />
OutletPhone VARCHAR2(15) NOT NULL,<br />
OutletType CHAR(1) NOT NULL,<br />
CONSTRAINT outlet_outletid_pk PRIMARY KEY(OutletID),<br />
CONSTRAINT outlet_outlettype_ck CHECK(OutletType IN('N','M','W','F')),<br />
CONSTRAINT outlet_outletname_type_uk UNIQUE(OutletName, OutletType)<br />
);<br />
<br />
</pre><br />
7. ADVERTISEMENT<br />
<pre><br />
CREATE TABLE ADVERTISEMENT<br />
(<br />
PropertyID NUMBER(6),<br />
OutletID NUMBER(4),<br />
AdvDate DATE,<br />
AdvCost NUMBER(6) NOT NULL,<br />
CONSTRAINT ad_adid_pk PRIMARY KEY(PropertyID, OutletID),<br />
CONSTRAINT ad_propertyid_fk FOREIGN KEY(PropertyID) REFERENCES PROPERTY(PropertyID),<br />
CONSTRAINT ad_outletid_fk FOREIGN KEY(OutletID) REFERENCES OUTLET(OutletID),<br />
CONSTRAINT ad_advcost_ck CHECK(AdvCost > 0)<br />
);<br />
</pre><br />
8. CLIENT<br />
<pre><br />
CREATE TABLE CLIENT<br />
(<br />
ClientID NUMBER(6),<br />
Fname VARCHAR2(30) NOT NULL,<br />
Lname VARCHAR2(30) NOT NULL,<br />
Phone VARCHAR2(15) NOT NULL,<br />
Email VARCHAR2(40),<br />
RefID NUMBER(6),<br />
CONSTRAINT client_clientid_pk PRIMARY KEY(ClientID),<br />
CONSTRAINT client_phone_uk UNIQUE(Phone),<br />
CONSTRAINT client_email_uk UNIQUE(Email),<br />
CONSTRAINT client_refid_fk FOREIGN KEY(RefID) REFERENCES CLIENT(ClientID)<br />
);<br />
</pre><br />
9. DEED<br />
<pre><br />
CREATE TABLE DEED<br />
(<br />
PropertyID NUMBER(6),<br />
SellerID NUMBER(6),<br />
OwnPct NUMBER(5,2) NOT NULL,<br />
BuyerID NUMBER(6),<br />
BuyPrice NUMBER(7),<br />
CONSTRAINT deed_deedid_pk PRIMARY KEY(PropertyID, SellerID),<br />
CONSTRAINT deed_propertyid_fk FOREIGN KEY(PropertyID) REFERENCES PROPERTY(PropertyID),<br />
CONSTRAINT deed_sellerid_fk FOREIGN KEY(SellerID) REFERENCES CLIENT(ClientID),<br />
CONSTRAINT deed_buyerid_fk FOREIGN KEY(BuyerID) REFERENCES CLIENT(ClientID),<br />
CONSTRAINT deed_ownpct_ck CHECK(OwnPct > 0 AND OwnPct <= 100),<br />
CONSTRAINT deed_buyprice_ck CHECK(BuyPrice BETWEEN 1 AND 4999999)<br />
);<br />
<br />
</pre><br />
<br />
==== DML Statements (INSERT INTO) ====<br />
======== Sample Data ========<br />
write sample data for each table that is separated by comma !<br />
<br />
e.g.)<br />
<br />
1. AREA<br />
1001, 'Bayview Village', 'Adrienne Clarkson Public School', 'Amesbury Middle School', 'Bayview Secondary School', 'Upper middle class to upper class neighborhood in Toronto.'<br />
<br />
==== CREATE VIEW ====<br />
<br />
=Assignment 1=<br />
==Due Date==<br />
Thursday, October 21st, 4:00pm<br />
Printout submission only( SELECT Statements + ALL outputs)<br />
==Description==<br />
[https://cs.senecac.on.ca/~nconkic/assign1.doc Assignment1]<br />
==Solution==<br />
<pre><br />
SQL> SELECT employee_id, RPAD(CONCAT(CONCAT(last_name, ', '),first_name), 25) "Full Name",<br />
<br />
2 job_id,<br />
<br />
3 TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
<br />
4 "Start Date"<br />
<br />
5 FROM employees<br />
<br />
6 WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
<br />
7 ORDER BY 4 DESC;<br />
<br />
<br />
<br />
EMPLOYEE_ID Full Name JOB_ID Start Date <br />
<br />
----------- ------------------------- ---------- ----------------------------------------- <br />
<br />
124 Mourgos, Kevin ST_MAN November First in the year 1999 <br />
<br />
178 Grant, Kimberely SA_REP May First in the year 1999 <br />
<br />
174 Abel, Ellen SA_REP May First in the year 1996 <br />
<br />
104 Ernst, Bruce IT_PROG May First in the year 1991 <br />
<br />
<br />
<br />
SQL> SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
<br />
2 || job_id || ' will have a new salary of $' || salary * 1.15 "Happy Employees"<br />
<br />
3 FROM employees<br />
<br />
4 WHERE salary BETWEEN 5000 AND 12000<br />
<br />
5 AND job_id IN ('IT_PROG', 'ST_CLERK')<br />
<br />
6 ORDER BY employee_id;<br />
<br />
<br />
<br />
Happy Employees <br />
<br />
----------------------------------------------------------------------------------------------------<br />
<br />
Employee named Alexander Hunold who is IT_PROG will have a new salary of $10350 <br />
<br />
Employee named Bruce Ernst who is IT_PROG will have a new salary of $6900 <br />
<br />
<br />
<br />
SQL> SELECT last_name, salary, job_id,<br />
<br />
2 RPAD(NVL(TO_CHAR(manager_id), 'No Manager'), 10) "Manager #",<br />
<br />
3 LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
<br />
4 FROM employees<br />
<br />
5 WHERE (job_id LIKE 'MK%' OR manager_id IS NULL)<br />
<br />
6 AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
<br />
7 ORDER BY 2 DESC;<br />
<br />
<br />
<br />
LAST_NAME SALARY JOB_ID Manager # Total Income <br />
<br />
------------------------- ---------- ---------- ---------- ------------ <br />
<br />
King 24000 AD_PRES No Manager $288,000 <br />
<br />
Hartstein 13000 MK_MAN 100 $156,000 <br />
<br />
<br />
<br />
SQL> SELECT RPAD(CONCAT(CONCAT(first_name,' '),last_name), 25) "Employee", job_id,<br />
<br />
2 LPAD(TRIM(TO_CHAR(salary, '$999,999')), 12, '=') "Salary", department_name<br />
<br />
3 FROM employees e JOIN departments d<br />
<br />
4 ON (e.department_id = d.department_id)<br />
<br />
5 WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
<br />
6 AND salary <<br />
<br />
7 (SELECT MAX(salary)<br />
<br />
8 FROM employees<br />
<br />
9 WHERE SUBSTR(job_id, 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
<br />
10 ORDER BY 1;<br />
<br />
<br />
<br />
Employee JOB_ID Salary DEPARTMENT_NAME <br />
<br />
------------------------- ---------- ------------ ------------------------------ <br />
<br />
Eleni Zlotkey SA_MAN =====$10,500 Sales <br />
<br />
Jonathon Taylor SA_REP ======$8,600 Sales <br />
<br />
Pat Fay MK_REP ======$6,000 Marketing <br />
<br />
<br />
<br />
SQL><br />
<br />
SQL> SELECT last_name, salary, job_id<br />
<br />
2 FROM employees<br />
<br />
3 WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
<br />
4 AND salary ><br />
<br />
5 (SELECT MAX(salary)<br />
<br />
6 FROM employees<br />
<br />
7 JOIN departments USING (department_id)<br />
<br />
8 JOIN locations USING (location_id)<br />
<br />
9 WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
<br />
<br />
LAST_NAME SALARY JOB_ID <br />
<br />
------------------------- ---------- ---------- <br />
<br />
Kochhar 17000 AD_VP <br />
<br />
De Haan 17000 AD_VP <br />
<br />
<br />
<br />
SQL> SELECT last_name, first_name, job_id, hire_date<br />
<br />
2 FROM employees<br />
<br />
3 WHERE hire_date ><br />
<br />
4 (SELECT MAX(hire_date)<br />
<br />
5 FROM employees<br />
<br />
6 WHERE department_id =<br />
<br />
7 (SELECT department_id<br />
<br />
8 FROM departments<br />
<br />
9 WHERE UPPER(department_name) = 'IT'))<br />
<br />
10 AND (department_id !=<br />
<br />
11 (SELECT department_id<br />
<br />
12 FROM departments<br />
<br />
13 WHERE UPPER(department_name) = 'EXECUTIVE')<br />
<br />
14 OR department_id IS NULL)<br />
<br />
15 ORDER BY 4 DESC;<br />
<br />
<br />
<br />
LAST_NAME FIRST_NAME JOB_ID HIRE_DATE <br />
<br />
------------------------- -------------------- ---------- --------- <br />
<br />
Zlotkey Eleni SA_MAN 29-JAN-00 <br />
<br />
Mourgos Kevin ST_MAN 16-NOV-99 <br />
<br />
Grant Kimberely SA_REP 24-MAY-99 <br />
<br />
<br />
<br />
SQL> SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay",<br />
<br />
2 MIN(salary) "Lowest Dept/Job Pay"<br />
<br />
3 FROM employees<br />
<br />
4 WHERE UPPER(job_id) NOT LIKE '%VP'<br />
<br />
5 AND department_id NOT IN<br />
<br />
6 (SELECT department_id<br />
<br />
7 FROM departments<br />
<br />
8 WHERE UPPER(department_name) IN ('IT','SALES'))<br />
<br />
9 GROUP BY department_id, job_id<br />
<br />
10 HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
<br />
11 ORDER BY 1, 2;<br />
<br />
<br />
<br />
DEPARTMENT_ID JOB_ID Average Dept/Job Pay Lowest Dept/Job Pay <br />
<br />
------------- ---------- -------------------- ------------------- <br />
<br />
20 MK_MAN 13000 13000 <br />
<br />
20 MK_REP 6000 6000 <br />
<br />
50 ST_MAN 5800 5800 <br />
<br />
110 AC_ACCOUNT 8300 8300 <br />
<br />
110 AC_MGR 12000 12000 <br />
<br />
<br />
<br />
SQL> SELECT department_id, department_name,<br />
<br />
2 RPAD(TRIM(NVL(city, 'Not Assinged Yet')), 25, ' ') "City",<br />
<br />
3 COUNT(DISTINCT job_id) "# of Jobs"<br />
<br />
4 FROM employees<br />
<br />
5 RIGHT OUTER JOIN departments USING (department_id)<br />
<br />
6 LEFT OUTER JOIN locations USING (location_id)<br />
<br />
7 GROUP BY department_id, department_name, city;<br />
<br />
<br />
<br />
DEPARTMENT_ID DEPARTMENT_NAME City # of Jobs <br />
<br />
------------- ------------------------------ ------------------------- ---------- <br />
<br />
110 Accounting Seattle 2 <br />
<br />
50 Shipping South San Francisco 2 <br />
<br />
80 Sales Oxford 2 <br />
<br />
10 Administration Seattle 1 <br />
<br />
190 Contracting Seattle 0 <br />
<br />
90 Executive Seattle 2 <br />
<br />
20 Marketing Toronto 2 <br />
<br />
60 IT Southlake 1 <br />
<br />
<br />
<br />
8 rows selected.<br />
<br />
<br />
<br />
SQL> spool off<br />
</pre><br />
==SQL Statements==<br />
===1.===<br />
''YuJin''<br />
<pre><br />
SELECT employee_id, RPAD(CONCAT(CONCAT(last_name, ', '),first_name), 25) "Full Name",<br />
job_id,<br />
TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
"Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
ORDER BY 4 DESC;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT employee_id,<br />
SUBSTR(last_name ||' '|| first_name, 1, 25) "Full Name",<br />
job_id,<br />
TO_CHAR(hire_date,'fmMonth "First in the year" YYYY') "Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date,'fmMON') IN ('MAY','NOV')<br />
ORDER BY hire_date DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select employee_id "Emp#",<br />
(last_name ||', '|| first_name) "Full Name",<br />
job_id "Job",<br />
to_char(trunc(hire_date, 'MONTH'), 'FMMonth Ddspth "in the year"<br />
YYYY') "Start Date"<br />
from employees<br />
where to_char(hire_date, 'fmMonth') in ('May', 'November')<br />
order by hire_date desc;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT employee_id, SUBSTR(last_name ||' '|| first_name, 1, 25) "Full Name",<br />
job_id,<br />
TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
"Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
ORDER BY hire_date DESC;<br />
</pre><br />
<br />
===2.===<br />
''YuJin''<br />
<pre><br />
SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
|| job_id || ' will have a new salary of $' || salary * 1.15 "Happy Employees"<br />
FROM employees<br />
WHERE salary BETWEEN 5000 AND 12000<br />
AND job_id IN ('IT_PROG', 'ST_CLERK')<br />
ORDER BY employee_id;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT 'Employee named '||first_name||' '||last_name||' who is '||job_id||' will have a new salary of $'|| salary *1.15 "Happy Employees"<br />
FROM employees<br />
WHERE job_id IN ('IT_PROG','ST CLERK')<br />
AND (salary BETWEEN 5000 AND 12000)<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
Select ('Employee named ' || first_name ||' '|| last_name || ' who is ' || job_id || ' will have a new salary of ' || (salary*1.15)) "Happy Employees"<br />
From employees<br />
Where salary between 5000 and 12000<br />
And upper(job_id) in ('IT_PROG', 'ST_CLERK')<br />
order by employee_id;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
|| job_id || ' will have a new salary of ' || TO_CHAR(salary * 1.15, 'fm$999999') "Happy Employees"<br />
FROM employees<br />
WHERE salary BETWEEN 5000 AND 12000<br />
AND UPPER(job_id) IN ('IT_PROG', 'ST_CLERK')<br />
ORDER BY employee_id;<br />
</pre><br />
<br />
===3.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, salary, job_id,<br />
RPAD(NVL(TO_CHAR(manager_id), 'No Manager'), 10) "Manager #",<br />
LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
FROM employees<br />
WHERE (job_id LIKE 'MK%' OR manager_id IS NULL)<br />
AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
ORDER BY 2 DESC;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, salary, job_id, NVL(TO_CHAR(manager_id),'No Manager') Manager#,<br />
TO_CHAR(salary*12,'$999,999') "Total Income"<br />
FROM employees<br />
WHERE (manager_id IS NULL<br />
OR job_id LIKE 'MK%')<br />
AND ( salary* (NVL(commission_pct,0) + 1) + 1000 ) > 10000<br />
ORDER BY salary DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, salary, job_id, nvl(to_char(manager_id),'No Manager') Manager#,<br />
to_char(salary*12,'$999,999') "Total Income"<br />
from employees<br />
where (upper(job_id) like 'MK%' or manager_id IS NULL)<br />
and salary * (1 + nvl(commission_pct, 0)) + 1000 > 10000<br />
order by 2 desc;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT last_name, salary, job_id,<br />
SUBSTR(NVL(TO_CHAR(manager_id), 'No Manager'), 1, 10) "Manager #",<br />
LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
FROM employees<br />
WHERE (UPPER(job_id) LIKE 'MK%' OR manager_id IS NULL)<br />
AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
ORDER BY salary DESC;<br />
<br />
</pre><br />
<br />
===4.===<br />
''YuJin''<br />
<pre><br />
SELECT RPAD(CONCAT(CONCAT(first_name,' '),last_name), 25) "Employee", job_id,<br />
LPAD(TRIM(TO_CHAR(salary, '$999,999')), 12, '=') "Salary", department_name<br />
FROM employees e JOIN departments d<br />
ON (e.department_id = d.department_id)<br />
WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
AND salary <<br />
(SELECT MAX(salary)<br />
FROM employees<br />
WHERE SUBSTR(job_id, 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
ORDER BY 1;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT SUBSTR(first_name||' '||last_name, 25) Employee, job_id,<br />
LPAD(TO_CHAR(salary,'$99,999'), 12, '=') Salary, department_name<br />
FROM employees e JOIN departments d<br />
ON (d.department_id=e.department_id)<br />
WHERE salary < (SELECT MAX(salary)<br />
FROM employees<br />
WHERE UPPER(SUBSTR(job_id,4)) NOT IN ('VP', 'PRES', 'MAN', 'MGR')<br />
)<br />
AND UPPER(department_name) IN ('MARKETING','SALES')<br />
ORDER BY first_name, last_name<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select substr(first_name ||' '|| last_name) "Employee", job_id, to_char(salary, '$999,999', 12, '=') Salary, department_name<br />
from employees e join departments d<br />
on (e.department_id = d.department_id)<br />
where upper(department_name) in ('MARKETING', 'SALES')<br />
and salary < (select max(salary)<br />
from employees<br />
where substr(job_id,4) not in ('PRES','VP','MAN','MGR'))<br />
order by "Employee";<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT SUBSTR(first_name ||' '|| last_name, 1, 25) "Employee", job_id,<br />
LPAD(TO_CHAR(salary, 'fm$999,999'), 12, '=') "Salary", department_name<br />
FROM employees e JOIN departments d<br />
ON (e.department_id = d.department_id)<br />
WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
AND salary <<br />
(SELECT MAX(salary)<br />
FROM employees<br />
WHERE SUBSTR(UPPER(job_id), 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
ORDER BY 1;<br />
</pre><br />
<br />
===5.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
AND salary ><br />
(SELECT MAX(salary)<br />
FROM employees<br />
JOIN departments USING (department_id)<br />
JOIN locations USING (location_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE salary > (SELECT MAX(salary)<br />
FROM locations JOIN departments<br />
USING (location_id)<br />
JOIN employees<br />
USING (department_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD')<br />
)<br />
AND UPPER(job_id) NOT LIKE '%PRES'<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, salary, job_id<br />
from employees<br />
where salary > (select max(salary)<br />
from employees join departments<br />
using (department_id)<br />
join locations<br />
using (location_id)<br />
where upper(city) in ('TORONTO','OXFORD'))<br />
and upper(job_id) not like '%PRES'<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
AND salary ><br />
(SELECT MAX(salary)<br />
FROM employees<br />
JOIN departments USING (department_id)<br />
JOIN locations USING (location_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
</pre><br />
<br />
===6.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, first_name, job_id, hire_date<br />
FROM employees<br />
WHERE hire_date ><br />
(SELECT MAX(hire_date)<br />
FROM employees<br />
WHERE department_id =<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'IT'))<br />
AND (department_id !=<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'EXECUTIVE')<br />
OR department_id IS NULL)<br />
ORDER BY 4 DESC;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, first_name, job_id, hire_date<br />
FROM employees e<br />
WHERE hire_date > (SELECT MAX(hire_date)<br />
FROM employees<br />
WHERE department_id = (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'IT'<br />
)<br />
)<br />
AND (department_id <> (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) ='EXECUTIVE')<br />
OR department_id IS NULL)<br />
ORDER BY hire_date DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, first_name, job_id, hire_date<br />
from employees<br />
where hire_date > (select max(hire_date)<br />
from employees<br />
where department_id = (select department_id<br />
from departments<br />
where upper(department_name) = 'IT'))<br />
and (department_id != (select department_id<br />
from departments<br />
where upper(department_name) = 'EXECUTIVE')<br />
or department_id IS NULL)<br />
order by hire_date desc;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT last_name, first_name, job_id, hire_date<br />
FROM employees<br />
WHERE hire_date ><br />
(SELECT MAX(hire_date)<br />
FROM employees<br />
WHERE department_id =<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'IT'))<br />
AND (department_id !=<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'EXECUTIVE')<br />
OR department_id IS NULL)<br />
ORDER BY hire_date DESC;<br />
</pre><br />
<br />
===7.===<br />
''YuJin''<br />
<pre><br />
SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay",<br />
MIN(salary) "Lowest Dept/Job Pay"<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%VP'<br />
AND department_id NOT IN<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) IN ('IT','SALES'))<br />
GROUP BY department_id, job_id<br />
HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
ORDER BY 1, 2;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay", MIN(salary) "Lowest Dept/Job Pay"<br />
FROM employees<br />
WHERE department_id <> ALL (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) IN ('IT','SALES')<br />
)<br />
AND job_id NOT LIKE '%VP'<br />
GROUP BY department_id, job_id<br />
HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
ORDER BY department_id, job_id<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select department_id, job_id, avg(salary) "Average Dept/Job Pay", min(salary) "Lowest Dept/Job Pay"<br />
from employees<br />
where upper(job_id) not like '%VP'<br />
and department_id != all(select department_id<br />
from departments<br />
where upper(department_name) in ('IT','SALES'))<br />
group by department_id, job_id<br />
having min(salary) between 5000 and 15000<br />
order by department_id, job_id<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay",<br />
MIN(salary) "Lowest Dept/Job Pay"<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%VP'<br />
AND department_id != ALL<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) IN ('IT','SALES'))<br />
GROUP BY department_id, job_id<br />
HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
ORDER BY department_id, job_id;<br />
</pre><br />
<br />
===8.===<br />
''YuJin''<br />
<pre><br />
SELECT department_id, department_name,<br />
RPAD(TRIM(NVL(city, 'Not Assinged Yet')), 25, ' ') "City",<br />
COUNT(DISTINCT job_id) "# of Jobs"<br />
FROM employees<br />
RIGHT OUTER JOIN departments USING (department_id)<br />
LEFT OUTER JOIN locations USING (location_id)<br />
GROUP BY department_id, department_name, city;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT department_id, department_name, SUBSTR(NVL(city,'Not Assigned Yet'),1,25) City,<br />
COUNT(DISTINCT job_id) "# of Jobs"<br />
FROM locations l RIGHT OUTER JOIN departments d<br />
USING (location_id)<br />
LEFT OUTER JOIN employees e<br />
USING (department_id)<br />
GROUP BY department_id, department_name, city<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select department_id, department_name, substr(nvl(city,'Not Assigned Yet'),1,25) City,<br />
count(distinct job_id) "# of Jobs"<br />
from employees right outer join departments<br />
using (department_id)<br />
left outer join locations<br />
using (location_id)<br />
group by department_id, department_name, city<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT department_id, department_name,<br />
SUBSTR(NVL(city, 'Not Assinged Yet'),1, 25) "City",<br />
COUNT(DISTINCT job_id) "# of Jobs"<br />
FROM employees<br />
RIGHT OUTER JOIN departments USING (department_id)<br />
LEFT OUTER JOIN locations USING (location_id)<br />
GROUP BY department_id, department_name, city;<br />
<br />
</pre></div>
Yujin.jeong
https://wiki.cdot.senecacollege.ca/w/index.php?title=J.Y.S&diff=50851
J.Y.S
2010-11-27T20:13:38Z
<p>Yujin.jeong: /* Assignment 3 (worth 9%) */</p>
<hr />
<div>This page is to efficiently manage our group assignments!<br />
== Member List == <br />
*[mailto:,,yjeong@learn.senecac.on.ca,?subject=dbs301 Email All]<br />
<br />
{| class="wikitable sortable" border="1" cellpadding="5"<br />
! First Name !! Last Name !! wiki id !! Learn e-mail !! Phone<br />
|-<br />
|[[User:Yujin.jeong | YuJin]]||Jeong||[[Special:Contributions/yujin.jeong | yujin.jeong]]||[mailto:yjeong@learn.senecac.on.ca?sujbect=dbs301 yjeong]|| 647 - 832 - 6771<br />
|-<br />
<br />
|-<br />
|Saad|| || || ||<br />
|-<br />
<br />
|-<br />
|James|| || || ||<br />
|-<br />
|}<br />
<br />
=Assignment 3 (worth 9%)=<br />
==Due Date==<br />
Thursday, December 2nd, 3:00pm<br />
Printout of all TIC charts and DDL / DML statements<br />
<br />
==Solution==<br />
==== DDL Statements (CREATE TABLE) ====<br />
1. AREA<br />
<pre><br />
CREATE TABLE AREA<br />
(<br />
AreaID NUMBER(4) CONSTRAINT area_areaid_pk PRIMARY KEY,<br />
AreaName VARCHAR2(30) NOT NULL CONSTRAINT area_areaname_uk UNIQUE,<br />
ElmSchool VARCHAR2(40),<br />
MidSchool VARCHAR2(40),<br />
HighSchool VARCHAR2(40),<br />
Comments VARCHAR2(100)<br />
);<br />
</pre><br />
2. AGENCY<br />
<pre><br />
CREATE TABLE AGENCY<br />
(<br />
AgencyID NUMBER(4) CONSTRAINT agency_agencyid_pk PRIMARY KEY,<br />
AgencyName VARCHAR2(40) NOT NULL CONSTRAINT agency_agencyname_uk UNIQUE,<br />
AgencyPhone VARCHAR2(15) NOT NULL CONSTRAINT agency_agencyphone_uk UNIQUE<br />
);<br />
</pre><br />
3. PROPERTY<br />
<pre><br />
CREATE TABLE PROPERTY<br />
(<br />
PropertyID NUMBER(6),<br />
Street VARCHAR2(40) NOT NULL,<br />
City VARCHAR2(30) NOT NULL,<br />
Province CHAR(2) NOT NULL,<br />
PostalCode CHAR(6) NOT NULL,<br />
Bedrooms NUMBER(1) NOT NULL,<br />
Bathrooms NUMBER(1) NOT NULL,<br />
ListingPrice NUMBER(6) NOT NULL,<br />
AreaID NUMBER(4) NOT NULL,<br />
CONSTRAINT property_propertyid_pk PRIMARY KEY(PropertyID),<br />
CONSTRAINT property_bedrooms_ck CHECK(Bedrooms BETWEEN 1 AND 9),<br />
CONSTRAINT property_bathrooms_ck CHECK(Bathrooms BETWEEN 1 AND 9),<br />
CONSTRAINT property_listingprice_ck CHECK(ListingPrice BETWEEN 1 AND 4999999),<br />
CONSTRAINT property_areaid_fk FOREIGN KEY(AreaID) REFERENCES AREA(AreaID)<br />
);<br />
</pre><br />
4. SINGLE<br />
<pre><br />
CREATE TABLE SINGLE<br />
(<br />
PropertyID NUMBER(6), <br />
LotSize NUMBER(8,2) NOT NULL,<br />
CONSTRAINT single_propertyID_pk PRIMARY KEY(PropertyID), <br />
CONSTRAINT single_propertyID_fk FOREIGN KEY(PropertyID) REFERENCES PROPERTY(PropertyID),<br />
CONSTRAINT single_lotsize_ck CHECK(LotSize > 0)<br />
);<br />
<br />
</pre><br />
5. CONDO<br />
<pre><br />
CREATE TABLE CONDO<br />
(<br />
PropertyID NUMBER(6),<br />
Fee NUMBER(8,2) NOT NULL, <br />
CONSTRAINT condo_propertyID_pk PRIMARY KEY(PropertyID),<br />
CONSTRAINT condo_propertyID_fk FOREIGN KEY(PropertyID) REFERENCES PROPERTY(PropertyID),<br />
CONSTRAINT condo_fee_ck CHECK(Fee > 0)<br />
);<br />
<br />
</pre><br />
6. OUTLET<br />
<pre><br />
CREATE TABLE OUTLET<br />
(<br />
OutletID NUMBER(4), <br />
OutletName VARCHAR2(40) NOT NULL,<br />
OutletPhone VARCHAR2(15) NOT NULL,<br />
OutletType CHAR(1) NOT NULL,<br />
CONSTRAINT outlet_outletid_pk PRIMARY KEY(OutletID),<br />
CONSTRAINT outlet_outlettype_ck CHECK(OutletType IN('N','M','W','F')),<br />
CONSTRAINT outlet_outletname_type_uk UNIQUE(OutletName, OutletType)<br />
);<br />
<br />
</pre><br />
7. ADVERTISEMENT<br />
<pre><br />
CREATE TABLE ADVERTISEMENT<br />
(<br />
PropertyID NUMBER(6),<br />
OutletID NUMBER(4),<br />
AdvDate DATE,<br />
AdvCost NUMBER(6) NOT NULL,<br />
CONSTRAINT ad_adid_pk PRIMARY KEY(PropertyID, OutletID),<br />
CONSTRAINT ad_propertyid_fk FOREIGN KEY(PropertyID) REFERENCES PROPERTY(PropertyID),<br />
CONSTRAINT ad_outletid_fk FOREIGN KEY(OutletID) REFERENCES OUTLET(OutletID),<br />
CONSTRAINT ad_advcost_ck CHECK(AdvCost > 0)<br />
);<br />
</pre><br />
8. CLIENT<br />
<pre><br />
CREATE TABLE CLIENT<br />
(<br />
ClientID NUMBER(6),<br />
Fname VARCHAR2(30) NOT NULL,<br />
Lname VARCHAR2(30) NOT NULL,<br />
Phone VARCHAR2(15) NOT NULL,<br />
Email VARCHAR2(40),<br />
RefID NUMBER(6),<br />
CONSTRAINT client_clientid_pk PRIMARY KEY(ClientID),<br />
CONSTRAINT client_phone_uk UNIQUE(Phone),<br />
CONSTRAINT client_email_uk UNIQUE(Email),<br />
CONSTRAINT client_refid_fk FOREIGN KEY(RefID) REFERENCES CLIENT(ClientID)<br />
);<br />
</pre><br />
9. DEED<br />
<pre><br />
CREATE TABLE DEED<br />
(<br />
PropertyID NUMBER(6),<br />
SellerID NUMBER(6),<br />
OwnPct NUMBER(5,2) NOT NULL,<br />
BuyerID NUMBER(6),<br />
BuyPrice NUMBER(7),<br />
CONSTRAINT deed_deedid_pk PRIMARY KEY(PropertyID, SellerID),<br />
CONSTRAINT deed_propertyid_fk FOREIGN KEY(PropertyID) REFERENCES PROPERTY(PropertyID),<br />
CONSTRAINT deed_sellerid_fk FOREIGN KEY(SellerID) REFERENCES CLIENT(ClientID),<br />
CONSTRAINT deed_buyerid_fk FOREIGN KEY(BuyerID) REFERENCES CLIENT(ClientID),<br />
CONSTRAINT deed_ownpct_ck CHECK(OwnPct > 0 AND OwnPct <= 100),<br />
CONSTRAINT deed_buyprice_ck CHECK(BuyPrice BETWEEN 1 AND 4999999)<br />
);<br />
<br />
</pre><br />
<br />
==== DML Statements (INSERT INTO) ====<br />
<br />
==== CREATE VIEW ====<br />
<br />
=Assignment 1=<br />
==Due Date==<br />
Thursday, October 21st, 4:00pm<br />
Printout submission only( SELECT Statements + ALL outputs)<br />
==Description==<br />
[https://cs.senecac.on.ca/~nconkic/assign1.doc Assignment1]<br />
==Solution==<br />
<pre><br />
SQL> SELECT employee_id, RPAD(CONCAT(CONCAT(last_name, ', '),first_name), 25) "Full Name",<br />
<br />
2 job_id,<br />
<br />
3 TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
<br />
4 "Start Date"<br />
<br />
5 FROM employees<br />
<br />
6 WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
<br />
7 ORDER BY 4 DESC;<br />
<br />
<br />
<br />
EMPLOYEE_ID Full Name JOB_ID Start Date <br />
<br />
----------- ------------------------- ---------- ----------------------------------------- <br />
<br />
124 Mourgos, Kevin ST_MAN November First in the year 1999 <br />
<br />
178 Grant, Kimberely SA_REP May First in the year 1999 <br />
<br />
174 Abel, Ellen SA_REP May First in the year 1996 <br />
<br />
104 Ernst, Bruce IT_PROG May First in the year 1991 <br />
<br />
<br />
<br />
SQL> SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
<br />
2 || job_id || ' will have a new salary of $' || salary * 1.15 "Happy Employees"<br />
<br />
3 FROM employees<br />
<br />
4 WHERE salary BETWEEN 5000 AND 12000<br />
<br />
5 AND job_id IN ('IT_PROG', 'ST_CLERK')<br />
<br />
6 ORDER BY employee_id;<br />
<br />
<br />
<br />
Happy Employees <br />
<br />
----------------------------------------------------------------------------------------------------<br />
<br />
Employee named Alexander Hunold who is IT_PROG will have a new salary of $10350 <br />
<br />
Employee named Bruce Ernst who is IT_PROG will have a new salary of $6900 <br />
<br />
<br />
<br />
SQL> SELECT last_name, salary, job_id,<br />
<br />
2 RPAD(NVL(TO_CHAR(manager_id), 'No Manager'), 10) "Manager #",<br />
<br />
3 LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
<br />
4 FROM employees<br />
<br />
5 WHERE (job_id LIKE 'MK%' OR manager_id IS NULL)<br />
<br />
6 AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
<br />
7 ORDER BY 2 DESC;<br />
<br />
<br />
<br />
LAST_NAME SALARY JOB_ID Manager # Total Income <br />
<br />
------------------------- ---------- ---------- ---------- ------------ <br />
<br />
King 24000 AD_PRES No Manager $288,000 <br />
<br />
Hartstein 13000 MK_MAN 100 $156,000 <br />
<br />
<br />
<br />
SQL> SELECT RPAD(CONCAT(CONCAT(first_name,' '),last_name), 25) "Employee", job_id,<br />
<br />
2 LPAD(TRIM(TO_CHAR(salary, '$999,999')), 12, '=') "Salary", department_name<br />
<br />
3 FROM employees e JOIN departments d<br />
<br />
4 ON (e.department_id = d.department_id)<br />
<br />
5 WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
<br />
6 AND salary <<br />
<br />
7 (SELECT MAX(salary)<br />
<br />
8 FROM employees<br />
<br />
9 WHERE SUBSTR(job_id, 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
<br />
10 ORDER BY 1;<br />
<br />
<br />
<br />
Employee JOB_ID Salary DEPARTMENT_NAME <br />
<br />
------------------------- ---------- ------------ ------------------------------ <br />
<br />
Eleni Zlotkey SA_MAN =====$10,500 Sales <br />
<br />
Jonathon Taylor SA_REP ======$8,600 Sales <br />
<br />
Pat Fay MK_REP ======$6,000 Marketing <br />
<br />
<br />
<br />
SQL><br />
<br />
SQL> SELECT last_name, salary, job_id<br />
<br />
2 FROM employees<br />
<br />
3 WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
<br />
4 AND salary ><br />
<br />
5 (SELECT MAX(salary)<br />
<br />
6 FROM employees<br />
<br />
7 JOIN departments USING (department_id)<br />
<br />
8 JOIN locations USING (location_id)<br />
<br />
9 WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
<br />
<br />
LAST_NAME SALARY JOB_ID <br />
<br />
------------------------- ---------- ---------- <br />
<br />
Kochhar 17000 AD_VP <br />
<br />
De Haan 17000 AD_VP <br />
<br />
<br />
<br />
SQL> SELECT last_name, first_name, job_id, hire_date<br />
<br />
2 FROM employees<br />
<br />
3 WHERE hire_date ><br />
<br />
4 (SELECT MAX(hire_date)<br />
<br />
5 FROM employees<br />
<br />
6 WHERE department_id =<br />
<br />
7 (SELECT department_id<br />
<br />
8 FROM departments<br />
<br />
9 WHERE UPPER(department_name) = 'IT'))<br />
<br />
10 AND (department_id !=<br />
<br />
11 (SELECT department_id<br />
<br />
12 FROM departments<br />
<br />
13 WHERE UPPER(department_name) = 'EXECUTIVE')<br />
<br />
14 OR department_id IS NULL)<br />
<br />
15 ORDER BY 4 DESC;<br />
<br />
<br />
<br />
LAST_NAME FIRST_NAME JOB_ID HIRE_DATE <br />
<br />
------------------------- -------------------- ---------- --------- <br />
<br />
Zlotkey Eleni SA_MAN 29-JAN-00 <br />
<br />
Mourgos Kevin ST_MAN 16-NOV-99 <br />
<br />
Grant Kimberely SA_REP 24-MAY-99 <br />
<br />
<br />
<br />
SQL> SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay",<br />
<br />
2 MIN(salary) "Lowest Dept/Job Pay"<br />
<br />
3 FROM employees<br />
<br />
4 WHERE UPPER(job_id) NOT LIKE '%VP'<br />
<br />
5 AND department_id NOT IN<br />
<br />
6 (SELECT department_id<br />
<br />
7 FROM departments<br />
<br />
8 WHERE UPPER(department_name) IN ('IT','SALES'))<br />
<br />
9 GROUP BY department_id, job_id<br />
<br />
10 HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
<br />
11 ORDER BY 1, 2;<br />
<br />
<br />
<br />
DEPARTMENT_ID JOB_ID Average Dept/Job Pay Lowest Dept/Job Pay <br />
<br />
------------- ---------- -------------------- ------------------- <br />
<br />
20 MK_MAN 13000 13000 <br />
<br />
20 MK_REP 6000 6000 <br />
<br />
50 ST_MAN 5800 5800 <br />
<br />
110 AC_ACCOUNT 8300 8300 <br />
<br />
110 AC_MGR 12000 12000 <br />
<br />
<br />
<br />
SQL> SELECT department_id, department_name,<br />
<br />
2 RPAD(TRIM(NVL(city, 'Not Assinged Yet')), 25, ' ') "City",<br />
<br />
3 COUNT(DISTINCT job_id) "# of Jobs"<br />
<br />
4 FROM employees<br />
<br />
5 RIGHT OUTER JOIN departments USING (department_id)<br />
<br />
6 LEFT OUTER JOIN locations USING (location_id)<br />
<br />
7 GROUP BY department_id, department_name, city;<br />
<br />
<br />
<br />
DEPARTMENT_ID DEPARTMENT_NAME City # of Jobs <br />
<br />
------------- ------------------------------ ------------------------- ---------- <br />
<br />
110 Accounting Seattle 2 <br />
<br />
50 Shipping South San Francisco 2 <br />
<br />
80 Sales Oxford 2 <br />
<br />
10 Administration Seattle 1 <br />
<br />
190 Contracting Seattle 0 <br />
<br />
90 Executive Seattle 2 <br />
<br />
20 Marketing Toronto 2 <br />
<br />
60 IT Southlake 1 <br />
<br />
<br />
<br />
8 rows selected.<br />
<br />
<br />
<br />
SQL> spool off<br />
</pre><br />
==SQL Statements==<br />
===1.===<br />
''YuJin''<br />
<pre><br />
SELECT employee_id, RPAD(CONCAT(CONCAT(last_name, ', '),first_name), 25) "Full Name",<br />
job_id,<br />
TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
"Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
ORDER BY 4 DESC;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT employee_id,<br />
SUBSTR(last_name ||' '|| first_name, 1, 25) "Full Name",<br />
job_id,<br />
TO_CHAR(hire_date,'fmMonth "First in the year" YYYY') "Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date,'fmMON') IN ('MAY','NOV')<br />
ORDER BY hire_date DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select employee_id "Emp#",<br />
(last_name ||', '|| first_name) "Full Name",<br />
job_id "Job",<br />
to_char(trunc(hire_date, 'MONTH'), 'FMMonth Ddspth "in the year"<br />
YYYY') "Start Date"<br />
from employees<br />
where to_char(hire_date, 'fmMonth') in ('May', 'November')<br />
order by hire_date desc;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT employee_id, SUBSTR(last_name ||' '|| first_name, 1, 25) "Full Name",<br />
job_id,<br />
TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
"Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
ORDER BY hire_date DESC;<br />
</pre><br />
<br />
===2.===<br />
''YuJin''<br />
<pre><br />
SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
|| job_id || ' will have a new salary of $' || salary * 1.15 "Happy Employees"<br />
FROM employees<br />
WHERE salary BETWEEN 5000 AND 12000<br />
AND job_id IN ('IT_PROG', 'ST_CLERK')<br />
ORDER BY employee_id;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT 'Employee named '||first_name||' '||last_name||' who is '||job_id||' will have a new salary of $'|| salary *1.15 "Happy Employees"<br />
FROM employees<br />
WHERE job_id IN ('IT_PROG','ST CLERK')<br />
AND (salary BETWEEN 5000 AND 12000)<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
Select ('Employee named ' || first_name ||' '|| last_name || ' who is ' || job_id || ' will have a new salary of ' || (salary*1.15)) "Happy Employees"<br />
From employees<br />
Where salary between 5000 and 12000<br />
And upper(job_id) in ('IT_PROG', 'ST_CLERK')<br />
order by employee_id;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
|| job_id || ' will have a new salary of ' || TO_CHAR(salary * 1.15, 'fm$999999') "Happy Employees"<br />
FROM employees<br />
WHERE salary BETWEEN 5000 AND 12000<br />
AND UPPER(job_id) IN ('IT_PROG', 'ST_CLERK')<br />
ORDER BY employee_id;<br />
</pre><br />
<br />
===3.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, salary, job_id,<br />
RPAD(NVL(TO_CHAR(manager_id), 'No Manager'), 10) "Manager #",<br />
LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
FROM employees<br />
WHERE (job_id LIKE 'MK%' OR manager_id IS NULL)<br />
AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
ORDER BY 2 DESC;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, salary, job_id, NVL(TO_CHAR(manager_id),'No Manager') Manager#,<br />
TO_CHAR(salary*12,'$999,999') "Total Income"<br />
FROM employees<br />
WHERE (manager_id IS NULL<br />
OR job_id LIKE 'MK%')<br />
AND ( salary* (NVL(commission_pct,0) + 1) + 1000 ) > 10000<br />
ORDER BY salary DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, salary, job_id, nvl(to_char(manager_id),'No Manager') Manager#,<br />
to_char(salary*12,'$999,999') "Total Income"<br />
from employees<br />
where (upper(job_id) like 'MK%' or manager_id IS NULL)<br />
and salary * (1 + nvl(commission_pct, 0)) + 1000 > 10000<br />
order by 2 desc;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT last_name, salary, job_id,<br />
SUBSTR(NVL(TO_CHAR(manager_id), 'No Manager'), 1, 10) "Manager #",<br />
LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
FROM employees<br />
WHERE (UPPER(job_id) LIKE 'MK%' OR manager_id IS NULL)<br />
AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
ORDER BY salary DESC;<br />
<br />
</pre><br />
<br />
===4.===<br />
''YuJin''<br />
<pre><br />
SELECT RPAD(CONCAT(CONCAT(first_name,' '),last_name), 25) "Employee", job_id,<br />
LPAD(TRIM(TO_CHAR(salary, '$999,999')), 12, '=') "Salary", department_name<br />
FROM employees e JOIN departments d<br />
ON (e.department_id = d.department_id)<br />
WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
AND salary <<br />
(SELECT MAX(salary)<br />
FROM employees<br />
WHERE SUBSTR(job_id, 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
ORDER BY 1;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT SUBSTR(first_name||' '||last_name, 25) Employee, job_id,<br />
LPAD(TO_CHAR(salary,'$99,999'), 12, '=') Salary, department_name<br />
FROM employees e JOIN departments d<br />
ON (d.department_id=e.department_id)<br />
WHERE salary < (SELECT MAX(salary)<br />
FROM employees<br />
WHERE UPPER(SUBSTR(job_id,4)) NOT IN ('VP', 'PRES', 'MAN', 'MGR')<br />
)<br />
AND UPPER(department_name) IN ('MARKETING','SALES')<br />
ORDER BY first_name, last_name<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select substr(first_name ||' '|| last_name) "Employee", job_id, to_char(salary, '$999,999', 12, '=') Salary, department_name<br />
from employees e join departments d<br />
on (e.department_id = d.department_id)<br />
where upper(department_name) in ('MARKETING', 'SALES')<br />
and salary < (select max(salary)<br />
from employees<br />
where substr(job_id,4) not in ('PRES','VP','MAN','MGR'))<br />
order by "Employee";<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT SUBSTR(first_name ||' '|| last_name, 1, 25) "Employee", job_id,<br />
LPAD(TO_CHAR(salary, 'fm$999,999'), 12, '=') "Salary", department_name<br />
FROM employees e JOIN departments d<br />
ON (e.department_id = d.department_id)<br />
WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
AND salary <<br />
(SELECT MAX(salary)<br />
FROM employees<br />
WHERE SUBSTR(UPPER(job_id), 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
ORDER BY 1;<br />
</pre><br />
<br />
===5.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
AND salary ><br />
(SELECT MAX(salary)<br />
FROM employees<br />
JOIN departments USING (department_id)<br />
JOIN locations USING (location_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE salary > (SELECT MAX(salary)<br />
FROM locations JOIN departments<br />
USING (location_id)<br />
JOIN employees<br />
USING (department_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD')<br />
)<br />
AND UPPER(job_id) NOT LIKE '%PRES'<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, salary, job_id<br />
from employees<br />
where salary > (select max(salary)<br />
from employees join departments<br />
using (department_id)<br />
join locations<br />
using (location_id)<br />
where upper(city) in ('TORONTO','OXFORD'))<br />
and upper(job_id) not like '%PRES'<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
AND salary ><br />
(SELECT MAX(salary)<br />
FROM employees<br />
JOIN departments USING (department_id)<br />
JOIN locations USING (location_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
</pre><br />
<br />
===6.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, first_name, job_id, hire_date<br />
FROM employees<br />
WHERE hire_date ><br />
(SELECT MAX(hire_date)<br />
FROM employees<br />
WHERE department_id =<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'IT'))<br />
AND (department_id !=<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'EXECUTIVE')<br />
OR department_id IS NULL)<br />
ORDER BY 4 DESC;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, first_name, job_id, hire_date<br />
FROM employees e<br />
WHERE hire_date > (SELECT MAX(hire_date)<br />
FROM employees<br />
WHERE department_id = (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'IT'<br />
)<br />
)<br />
AND (department_id <> (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) ='EXECUTIVE')<br />
OR department_id IS NULL)<br />
ORDER BY hire_date DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, first_name, job_id, hire_date<br />
from employees<br />
where hire_date > (select max(hire_date)<br />
from employees<br />
where department_id = (select department_id<br />
from departments<br />
where upper(department_name) = 'IT'))<br />
and (department_id != (select department_id<br />
from departments<br />
where upper(department_name) = 'EXECUTIVE')<br />
or department_id IS NULL)<br />
order by hire_date desc;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT last_name, first_name, job_id, hire_date<br />
FROM employees<br />
WHERE hire_date ><br />
(SELECT MAX(hire_date)<br />
FROM employees<br />
WHERE department_id =<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'IT'))<br />
AND (department_id !=<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'EXECUTIVE')<br />
OR department_id IS NULL)<br />
ORDER BY hire_date DESC;<br />
</pre><br />
<br />
===7.===<br />
''YuJin''<br />
<pre><br />
SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay",<br />
MIN(salary) "Lowest Dept/Job Pay"<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%VP'<br />
AND department_id NOT IN<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) IN ('IT','SALES'))<br />
GROUP BY department_id, job_id<br />
HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
ORDER BY 1, 2;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay", MIN(salary) "Lowest Dept/Job Pay"<br />
FROM employees<br />
WHERE department_id <> ALL (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) IN ('IT','SALES')<br />
)<br />
AND job_id NOT LIKE '%VP'<br />
GROUP BY department_id, job_id<br />
HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
ORDER BY department_id, job_id<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select department_id, job_id, avg(salary) "Average Dept/Job Pay", min(salary) "Lowest Dept/Job Pay"<br />
from employees<br />
where upper(job_id) not like '%VP'<br />
and department_id != all(select department_id<br />
from departments<br />
where upper(department_name) in ('IT','SALES'))<br />
group by department_id, job_id<br />
having min(salary) between 5000 and 15000<br />
order by department_id, job_id<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay",<br />
MIN(salary) "Lowest Dept/Job Pay"<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%VP'<br />
AND department_id != ALL<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) IN ('IT','SALES'))<br />
GROUP BY department_id, job_id<br />
HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
ORDER BY department_id, job_id;<br />
</pre><br />
<br />
===8.===<br />
''YuJin''<br />
<pre><br />
SELECT department_id, department_name,<br />
RPAD(TRIM(NVL(city, 'Not Assinged Yet')), 25, ' ') "City",<br />
COUNT(DISTINCT job_id) "# of Jobs"<br />
FROM employees<br />
RIGHT OUTER JOIN departments USING (department_id)<br />
LEFT OUTER JOIN locations USING (location_id)<br />
GROUP BY department_id, department_name, city;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT department_id, department_name, SUBSTR(NVL(city,'Not Assigned Yet'),1,25) City,<br />
COUNT(DISTINCT job_id) "# of Jobs"<br />
FROM locations l RIGHT OUTER JOIN departments d<br />
USING (location_id)<br />
LEFT OUTER JOIN employees e<br />
USING (department_id)<br />
GROUP BY department_id, department_name, city<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select department_id, department_name, substr(nvl(city,'Not Assigned Yet'),1,25) City,<br />
count(distinct job_id) "# of Jobs"<br />
from employees right outer join departments<br />
using (department_id)<br />
left outer join locations<br />
using (location_id)<br />
group by department_id, department_name, city<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT department_id, department_name,<br />
SUBSTR(NVL(city, 'Not Assinged Yet'),1, 25) "City",<br />
COUNT(DISTINCT job_id) "# of Jobs"<br />
FROM employees<br />
RIGHT OUTER JOIN departments USING (department_id)<br />
LEFT OUTER JOIN locations USING (location_id)<br />
GROUP BY department_id, department_name, city;<br />
<br />
</pre></div>
Yujin.jeong
https://wiki.cdot.senecacollege.ca/w/index.php?title=J.Y.S&diff=50850
J.Y.S
2010-11-27T20:12:17Z
<p>Yujin.jeong: /* DDL Statements (CREATE TABLE) */</p>
<hr />
<div>This page is to efficiently manage our group assignments!<br />
== Member List == <br />
*[mailto:,,yjeong@learn.senecac.on.ca,?subject=dbs301 Email All]<br />
<br />
{| class="wikitable sortable" border="1" cellpadding="5"<br />
! First Name !! Last Name !! wiki id !! Learn e-mail !! Phone<br />
|-<br />
|[[User:Yujin.jeong | YuJin]]||Jeong||[[Special:Contributions/yujin.jeong | yujin.jeong]]||[mailto:yjeong@learn.senecac.on.ca?sujbect=dbs301 yjeong]|| 647 - 832 - 6771<br />
|-<br />
<br />
|-<br />
|Saad|| || || ||<br />
|-<br />
<br />
|-<br />
|James|| || || ||<br />
|-<br />
|}<br />
<br />
=Assignment 3 (worth 9%)=<br />
==Due Date==<br />
Thursday, December 2nd, 3:00pm<br />
Printout of all TIC charts and DDL / DML statements<br />
<br />
==Solution==<br />
==== DDL Statements (CREATE TABLE) ====<br />
1. AREA<br />
<pre><br />
CREATE TABLE AREA<br />
(<br />
AreaID NUMBER(4) CONSTRAINT area_areaid_pk PRIMARY KEY,<br />
AreaName VARCHAR2(30) NOT NULL CONSTRAINT area_areaname_uk UNIQUE,<br />
ElmSchool VARCHAR2(40),<br />
MidSchool VARCHAR2(40),<br />
HighSchool VARCHAR2(40),<br />
Comments VARCHAR2(100)<br />
);<br />
</pre><br />
2. AGENCY<br />
<pre><br />
CREATE TABLE AGENCY<br />
(<br />
AgencyID NUMBER(4) CONSTRAINT agency_agencyid_pk PRIMARY KEY,<br />
AgencyName VARCHAR2(40) NOT NULL CONSTRAINT agency_agencyname_uk UNIQUE,<br />
AgencyPhone VARCHAR2(15) NOT NULL CONSTRAINT agency_agencyphone_uk UNIQUE<br />
);<br />
</pre><br />
3. PROPERTY<br />
<pre><br />
CREATE TABLE PROPERTY<br />
(<br />
PropertyID NUMBER(6),<br />
Street VARCHAR2(40) NOT NULL,<br />
City VARCHAR2(30) NOT NULL,<br />
Province CHAR(2) NOT NULL,<br />
PostalCode CHAR(6) NOT NULL,<br />
Bedrooms NUMBER(1) NOT NULL,<br />
Bathrooms NUMBER(1) NOT NULL,<br />
ListingPrice NUMBER(6) NOT NULL,<br />
AreaID NUMBER(4) NOT NULL,<br />
CONSTRAINT property_propertyid_pk PRIMARY KEY(PropertyID),<br />
CONSTRAINT property_bedrooms_ck CHECK(Bedrooms BETWEEN 1 AND 9),<br />
CONSTRAINT property_bathrooms_ck CHECK(Bathrooms BETWEEN 1 AND 9),<br />
CONSTRAINT property_listingprice_ck CHECK(ListingPrice BETWEEN 1 AND 4999999),<br />
CONSTRAINT property_areaid_fk FOREIGN KEY(AreaID) REFERENCES AREA(AreaID)<br />
);<br />
</pre><br />
4. SINGLE<br />
<pre><br />
CREATE TABLE SINGLE<br />
(<br />
PropertyID NUMBER(6), <br />
LotSize NUMBER(8,2) NOT NULL,<br />
CONSTRAINT single_propertyID_pk PRIMARY KEY(PropertyID), <br />
CONSTRAINT single_propertyID_fk FOREIGN KEY(PropertyID) REFERENCES PROPERTY(PropertyID),<br />
CONSTRAINT single_lotsize_ck CHECK(LotSize > 0)<br />
);<br />
<br />
</pre><br />
5. CONDO<br />
<pre><br />
CREATE TABLE CONDO<br />
(<br />
PropertyID NUMBER(6),<br />
Fee NUMBER(8,2) NOT NULL, <br />
CONSTRAINT condo_propertyID_pk PRIMARY KEY(PropertyID),<br />
CONSTRAINT condo_propertyID_fk FOREIGN KEY(PropertyID) REFERENCES PROPERTY(PropertyID),<br />
CONSTRAINT condo_fee_ck CHECK(Fee > 0)<br />
);<br />
<br />
</pre><br />
6. OUTLET<br />
<pre><br />
CREATE TABLE OUTLET<br />
(<br />
OutletID NUMBER(4), <br />
OutletName VARCHAR2(40) NOT NULL,<br />
OutletPhone VARCHAR2(15) NOT NULL,<br />
OutletType CHAR(1) NOT NULL,<br />
CONSTRAINT outlet_outletid_pk PRIMARY KEY(OutletID),<br />
CONSTRAINT outlet_outlettype_ck CHECK(OutletType IN('N','M','W','F')),<br />
CONSTRAINT outlet_outletname_type_uk UNIQUE(OutletName, OutletType)<br />
);<br />
<br />
</pre><br />
7. ADVERTISEMENT<br />
<pre><br />
CREATE TABLE ADVERTISEMENT<br />
(<br />
PropertyID NUMBER(6),<br />
OutletID NUMBER(4),<br />
AdvDate DATE,<br />
AdvCost NUMBER(6) NOT NULL,<br />
CONSTRAINT ad_adid_pk PRIMARY KEY(PropertyID, OutletID),<br />
CONSTRAINT ad_propertyid_fk FOREIGN KEY(PropertyID) REFERENCES PROPERTY(PropertyID),<br />
CONSTRAINT ad_outletid_fk FOREIGN KEY(OutletID) REFERENCES OUTLET(OutletID),<br />
CONSTRAINT ad_advcost_ck CHECK(AdvCost > 0)<br />
);<br />
</pre><br />
8. CLIENT<br />
<pre><br />
CREATE TABLE CLIENT<br />
(<br />
ClientID NUMBER(6),<br />
Fname VARCHAR2(30) NOT NULL,<br />
Lname VARCHAR2(30) NOT NULL,<br />
Phone VARCHAR2(15) NOT NULL,<br />
Email VARCHAR2(40),<br />
RefID NUMBER(6),<br />
CONSTRAINT client_clientid_pk PRIMARY KEY(ClientID),<br />
CONSTRAINT client_phone_uk UNIQUE(Phone),<br />
CONSTRAINT client_email_uk UNIQUE(Email),<br />
CONSTRAINT client_refid_fk FOREIGN KEY(RefID) REFERENCES CLIENT(ClientID)<br />
);<br />
</pre><br />
9. DEED<br />
<pre><br />
CREATE TABLE DEED<br />
(<br />
PropertyID NUMBER(6),<br />
SellerID NUMBER(6),<br />
OwnPct NUMBER(5,2) NOT NULL,<br />
BuyerID NUMBER(6),<br />
BuyPrice NUMBER(7),<br />
CONSTRAINT deed_deedid_pk PRIMARY KEY(PropertyID, SellerID),<br />
CONSTRAINT deed_propertyid_fk FOREIGN KEY(PropertyID) REFERENCES PROPERTY(PropertyID),<br />
CONSTRAINT deed_sellerid_fk FOREIGN KEY(SellerID) REFERENCES CLIENT(ClientID),<br />
CONSTRAINT deed_buyerid_fk FOREIGN KEY(BuyerID) REFERENCES CLIENT(ClientID),<br />
CONSTRAINT deed_ownpct_ck CHECK(OwnPct > 0 AND OwnPct <= 100),<br />
CONSTRAINT deed_buyprice_ck CHECK(BuyPrice BETWEEN 1 AND 4999999)<br />
);<br />
<br />
</pre><br />
<br />
=Assignment 1=<br />
==Due Date==<br />
Thursday, October 21st, 4:00pm<br />
Printout submission only( SELECT Statements + ALL outputs)<br />
==Description==<br />
[https://cs.senecac.on.ca/~nconkic/assign1.doc Assignment1]<br />
==Solution==<br />
<pre><br />
SQL> SELECT employee_id, RPAD(CONCAT(CONCAT(last_name, ', '),first_name), 25) "Full Name",<br />
<br />
2 job_id,<br />
<br />
3 TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
<br />
4 "Start Date"<br />
<br />
5 FROM employees<br />
<br />
6 WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
<br />
7 ORDER BY 4 DESC;<br />
<br />
<br />
<br />
EMPLOYEE_ID Full Name JOB_ID Start Date <br />
<br />
----------- ------------------------- ---------- ----------------------------------------- <br />
<br />
124 Mourgos, Kevin ST_MAN November First in the year 1999 <br />
<br />
178 Grant, Kimberely SA_REP May First in the year 1999 <br />
<br />
174 Abel, Ellen SA_REP May First in the year 1996 <br />
<br />
104 Ernst, Bruce IT_PROG May First in the year 1991 <br />
<br />
<br />
<br />
SQL> SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
<br />
2 || job_id || ' will have a new salary of $' || salary * 1.15 "Happy Employees"<br />
<br />
3 FROM employees<br />
<br />
4 WHERE salary BETWEEN 5000 AND 12000<br />
<br />
5 AND job_id IN ('IT_PROG', 'ST_CLERK')<br />
<br />
6 ORDER BY employee_id;<br />
<br />
<br />
<br />
Happy Employees <br />
<br />
----------------------------------------------------------------------------------------------------<br />
<br />
Employee named Alexander Hunold who is IT_PROG will have a new salary of $10350 <br />
<br />
Employee named Bruce Ernst who is IT_PROG will have a new salary of $6900 <br />
<br />
<br />
<br />
SQL> SELECT last_name, salary, job_id,<br />
<br />
2 RPAD(NVL(TO_CHAR(manager_id), 'No Manager'), 10) "Manager #",<br />
<br />
3 LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
<br />
4 FROM employees<br />
<br />
5 WHERE (job_id LIKE 'MK%' OR manager_id IS NULL)<br />
<br />
6 AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
<br />
7 ORDER BY 2 DESC;<br />
<br />
<br />
<br />
LAST_NAME SALARY JOB_ID Manager # Total Income <br />
<br />
------------------------- ---------- ---------- ---------- ------------ <br />
<br />
King 24000 AD_PRES No Manager $288,000 <br />
<br />
Hartstein 13000 MK_MAN 100 $156,000 <br />
<br />
<br />
<br />
SQL> SELECT RPAD(CONCAT(CONCAT(first_name,' '),last_name), 25) "Employee", job_id,<br />
<br />
2 LPAD(TRIM(TO_CHAR(salary, '$999,999')), 12, '=') "Salary", department_name<br />
<br />
3 FROM employees e JOIN departments d<br />
<br />
4 ON (e.department_id = d.department_id)<br />
<br />
5 WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
<br />
6 AND salary <<br />
<br />
7 (SELECT MAX(salary)<br />
<br />
8 FROM employees<br />
<br />
9 WHERE SUBSTR(job_id, 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
<br />
10 ORDER BY 1;<br />
<br />
<br />
<br />
Employee JOB_ID Salary DEPARTMENT_NAME <br />
<br />
------------------------- ---------- ------------ ------------------------------ <br />
<br />
Eleni Zlotkey SA_MAN =====$10,500 Sales <br />
<br />
Jonathon Taylor SA_REP ======$8,600 Sales <br />
<br />
Pat Fay MK_REP ======$6,000 Marketing <br />
<br />
<br />
<br />
SQL><br />
<br />
SQL> SELECT last_name, salary, job_id<br />
<br />
2 FROM employees<br />
<br />
3 WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
<br />
4 AND salary ><br />
<br />
5 (SELECT MAX(salary)<br />
<br />
6 FROM employees<br />
<br />
7 JOIN departments USING (department_id)<br />
<br />
8 JOIN locations USING (location_id)<br />
<br />
9 WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
<br />
<br />
LAST_NAME SALARY JOB_ID <br />
<br />
------------------------- ---------- ---------- <br />
<br />
Kochhar 17000 AD_VP <br />
<br />
De Haan 17000 AD_VP <br />
<br />
<br />
<br />
SQL> SELECT last_name, first_name, job_id, hire_date<br />
<br />
2 FROM employees<br />
<br />
3 WHERE hire_date ><br />
<br />
4 (SELECT MAX(hire_date)<br />
<br />
5 FROM employees<br />
<br />
6 WHERE department_id =<br />
<br />
7 (SELECT department_id<br />
<br />
8 FROM departments<br />
<br />
9 WHERE UPPER(department_name) = 'IT'))<br />
<br />
10 AND (department_id !=<br />
<br />
11 (SELECT department_id<br />
<br />
12 FROM departments<br />
<br />
13 WHERE UPPER(department_name) = 'EXECUTIVE')<br />
<br />
14 OR department_id IS NULL)<br />
<br />
15 ORDER BY 4 DESC;<br />
<br />
<br />
<br />
LAST_NAME FIRST_NAME JOB_ID HIRE_DATE <br />
<br />
------------------------- -------------------- ---------- --------- <br />
<br />
Zlotkey Eleni SA_MAN 29-JAN-00 <br />
<br />
Mourgos Kevin ST_MAN 16-NOV-99 <br />
<br />
Grant Kimberely SA_REP 24-MAY-99 <br />
<br />
<br />
<br />
SQL> SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay",<br />
<br />
2 MIN(salary) "Lowest Dept/Job Pay"<br />
<br />
3 FROM employees<br />
<br />
4 WHERE UPPER(job_id) NOT LIKE '%VP'<br />
<br />
5 AND department_id NOT IN<br />
<br />
6 (SELECT department_id<br />
<br />
7 FROM departments<br />
<br />
8 WHERE UPPER(department_name) IN ('IT','SALES'))<br />
<br />
9 GROUP BY department_id, job_id<br />
<br />
10 HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
<br />
11 ORDER BY 1, 2;<br />
<br />
<br />
<br />
DEPARTMENT_ID JOB_ID Average Dept/Job Pay Lowest Dept/Job Pay <br />
<br />
------------- ---------- -------------------- ------------------- <br />
<br />
20 MK_MAN 13000 13000 <br />
<br />
20 MK_REP 6000 6000 <br />
<br />
50 ST_MAN 5800 5800 <br />
<br />
110 AC_ACCOUNT 8300 8300 <br />
<br />
110 AC_MGR 12000 12000 <br />
<br />
<br />
<br />
SQL> SELECT department_id, department_name,<br />
<br />
2 RPAD(TRIM(NVL(city, 'Not Assinged Yet')), 25, ' ') "City",<br />
<br />
3 COUNT(DISTINCT job_id) "# of Jobs"<br />
<br />
4 FROM employees<br />
<br />
5 RIGHT OUTER JOIN departments USING (department_id)<br />
<br />
6 LEFT OUTER JOIN locations USING (location_id)<br />
<br />
7 GROUP BY department_id, department_name, city;<br />
<br />
<br />
<br />
DEPARTMENT_ID DEPARTMENT_NAME City # of Jobs <br />
<br />
------------- ------------------------------ ------------------------- ---------- <br />
<br />
110 Accounting Seattle 2 <br />
<br />
50 Shipping South San Francisco 2 <br />
<br />
80 Sales Oxford 2 <br />
<br />
10 Administration Seattle 1 <br />
<br />
190 Contracting Seattle 0 <br />
<br />
90 Executive Seattle 2 <br />
<br />
20 Marketing Toronto 2 <br />
<br />
60 IT Southlake 1 <br />
<br />
<br />
<br />
8 rows selected.<br />
<br />
<br />
<br />
SQL> spool off<br />
</pre><br />
==SQL Statements==<br />
===1.===<br />
''YuJin''<br />
<pre><br />
SELECT employee_id, RPAD(CONCAT(CONCAT(last_name, ', '),first_name), 25) "Full Name",<br />
job_id,<br />
TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
"Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
ORDER BY 4 DESC;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT employee_id,<br />
SUBSTR(last_name ||' '|| first_name, 1, 25) "Full Name",<br />
job_id,<br />
TO_CHAR(hire_date,'fmMonth "First in the year" YYYY') "Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date,'fmMON') IN ('MAY','NOV')<br />
ORDER BY hire_date DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select employee_id "Emp#",<br />
(last_name ||', '|| first_name) "Full Name",<br />
job_id "Job",<br />
to_char(trunc(hire_date, 'MONTH'), 'FMMonth Ddspth "in the year"<br />
YYYY') "Start Date"<br />
from employees<br />
where to_char(hire_date, 'fmMonth') in ('May', 'November')<br />
order by hire_date desc;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT employee_id, SUBSTR(last_name ||' '|| first_name, 1, 25) "Full Name",<br />
job_id,<br />
TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
"Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
ORDER BY hire_date DESC;<br />
</pre><br />
<br />
===2.===<br />
''YuJin''<br />
<pre><br />
SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
|| job_id || ' will have a new salary of $' || salary * 1.15 "Happy Employees"<br />
FROM employees<br />
WHERE salary BETWEEN 5000 AND 12000<br />
AND job_id IN ('IT_PROG', 'ST_CLERK')<br />
ORDER BY employee_id;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT 'Employee named '||first_name||' '||last_name||' who is '||job_id||' will have a new salary of $'|| salary *1.15 "Happy Employees"<br />
FROM employees<br />
WHERE job_id IN ('IT_PROG','ST CLERK')<br />
AND (salary BETWEEN 5000 AND 12000)<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
Select ('Employee named ' || first_name ||' '|| last_name || ' who is ' || job_id || ' will have a new salary of ' || (salary*1.15)) "Happy Employees"<br />
From employees<br />
Where salary between 5000 and 12000<br />
And upper(job_id) in ('IT_PROG', 'ST_CLERK')<br />
order by employee_id;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
|| job_id || ' will have a new salary of ' || TO_CHAR(salary * 1.15, 'fm$999999') "Happy Employees"<br />
FROM employees<br />
WHERE salary BETWEEN 5000 AND 12000<br />
AND UPPER(job_id) IN ('IT_PROG', 'ST_CLERK')<br />
ORDER BY employee_id;<br />
</pre><br />
<br />
===3.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, salary, job_id,<br />
RPAD(NVL(TO_CHAR(manager_id), 'No Manager'), 10) "Manager #",<br />
LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
FROM employees<br />
WHERE (job_id LIKE 'MK%' OR manager_id IS NULL)<br />
AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
ORDER BY 2 DESC;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, salary, job_id, NVL(TO_CHAR(manager_id),'No Manager') Manager#,<br />
TO_CHAR(salary*12,'$999,999') "Total Income"<br />
FROM employees<br />
WHERE (manager_id IS NULL<br />
OR job_id LIKE 'MK%')<br />
AND ( salary* (NVL(commission_pct,0) + 1) + 1000 ) > 10000<br />
ORDER BY salary DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, salary, job_id, nvl(to_char(manager_id),'No Manager') Manager#,<br />
to_char(salary*12,'$999,999') "Total Income"<br />
from employees<br />
where (upper(job_id) like 'MK%' or manager_id IS NULL)<br />
and salary * (1 + nvl(commission_pct, 0)) + 1000 > 10000<br />
order by 2 desc;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT last_name, salary, job_id,<br />
SUBSTR(NVL(TO_CHAR(manager_id), 'No Manager'), 1, 10) "Manager #",<br />
LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
FROM employees<br />
WHERE (UPPER(job_id) LIKE 'MK%' OR manager_id IS NULL)<br />
AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
ORDER BY salary DESC;<br />
<br />
</pre><br />
<br />
===4.===<br />
''YuJin''<br />
<pre><br />
SELECT RPAD(CONCAT(CONCAT(first_name,' '),last_name), 25) "Employee", job_id,<br />
LPAD(TRIM(TO_CHAR(salary, '$999,999')), 12, '=') "Salary", department_name<br />
FROM employees e JOIN departments d<br />
ON (e.department_id = d.department_id)<br />
WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
AND salary <<br />
(SELECT MAX(salary)<br />
FROM employees<br />
WHERE SUBSTR(job_id, 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
ORDER BY 1;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT SUBSTR(first_name||' '||last_name, 25) Employee, job_id,<br />
LPAD(TO_CHAR(salary,'$99,999'), 12, '=') Salary, department_name<br />
FROM employees e JOIN departments d<br />
ON (d.department_id=e.department_id)<br />
WHERE salary < (SELECT MAX(salary)<br />
FROM employees<br />
WHERE UPPER(SUBSTR(job_id,4)) NOT IN ('VP', 'PRES', 'MAN', 'MGR')<br />
)<br />
AND UPPER(department_name) IN ('MARKETING','SALES')<br />
ORDER BY first_name, last_name<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select substr(first_name ||' '|| last_name) "Employee", job_id, to_char(salary, '$999,999', 12, '=') Salary, department_name<br />
from employees e join departments d<br />
on (e.department_id = d.department_id)<br />
where upper(department_name) in ('MARKETING', 'SALES')<br />
and salary < (select max(salary)<br />
from employees<br />
where substr(job_id,4) not in ('PRES','VP','MAN','MGR'))<br />
order by "Employee";<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT SUBSTR(first_name ||' '|| last_name, 1, 25) "Employee", job_id,<br />
LPAD(TO_CHAR(salary, 'fm$999,999'), 12, '=') "Salary", department_name<br />
FROM employees e JOIN departments d<br />
ON (e.department_id = d.department_id)<br />
WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
AND salary <<br />
(SELECT MAX(salary)<br />
FROM employees<br />
WHERE SUBSTR(UPPER(job_id), 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
ORDER BY 1;<br />
</pre><br />
<br />
===5.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
AND salary ><br />
(SELECT MAX(salary)<br />
FROM employees<br />
JOIN departments USING (department_id)<br />
JOIN locations USING (location_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE salary > (SELECT MAX(salary)<br />
FROM locations JOIN departments<br />
USING (location_id)<br />
JOIN employees<br />
USING (department_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD')<br />
)<br />
AND UPPER(job_id) NOT LIKE '%PRES'<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, salary, job_id<br />
from employees<br />
where salary > (select max(salary)<br />
from employees join departments<br />
using (department_id)<br />
join locations<br />
using (location_id)<br />
where upper(city) in ('TORONTO','OXFORD'))<br />
and upper(job_id) not like '%PRES'<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
AND salary ><br />
(SELECT MAX(salary)<br />
FROM employees<br />
JOIN departments USING (department_id)<br />
JOIN locations USING (location_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
</pre><br />
<br />
===6.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, first_name, job_id, hire_date<br />
FROM employees<br />
WHERE hire_date ><br />
(SELECT MAX(hire_date)<br />
FROM employees<br />
WHERE department_id =<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'IT'))<br />
AND (department_id !=<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'EXECUTIVE')<br />
OR department_id IS NULL)<br />
ORDER BY 4 DESC;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, first_name, job_id, hire_date<br />
FROM employees e<br />
WHERE hire_date > (SELECT MAX(hire_date)<br />
FROM employees<br />
WHERE department_id = (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'IT'<br />
)<br />
)<br />
AND (department_id <> (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) ='EXECUTIVE')<br />
OR department_id IS NULL)<br />
ORDER BY hire_date DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, first_name, job_id, hire_date<br />
from employees<br />
where hire_date > (select max(hire_date)<br />
from employees<br />
where department_id = (select department_id<br />
from departments<br />
where upper(department_name) = 'IT'))<br />
and (department_id != (select department_id<br />
from departments<br />
where upper(department_name) = 'EXECUTIVE')<br />
or department_id IS NULL)<br />
order by hire_date desc;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT last_name, first_name, job_id, hire_date<br />
FROM employees<br />
WHERE hire_date ><br />
(SELECT MAX(hire_date)<br />
FROM employees<br />
WHERE department_id =<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'IT'))<br />
AND (department_id !=<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'EXECUTIVE')<br />
OR department_id IS NULL)<br />
ORDER BY hire_date DESC;<br />
</pre><br />
<br />
===7.===<br />
''YuJin''<br />
<pre><br />
SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay",<br />
MIN(salary) "Lowest Dept/Job Pay"<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%VP'<br />
AND department_id NOT IN<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) IN ('IT','SALES'))<br />
GROUP BY department_id, job_id<br />
HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
ORDER BY 1, 2;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay", MIN(salary) "Lowest Dept/Job Pay"<br />
FROM employees<br />
WHERE department_id <> ALL (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) IN ('IT','SALES')<br />
)<br />
AND job_id NOT LIKE '%VP'<br />
GROUP BY department_id, job_id<br />
HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
ORDER BY department_id, job_id<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select department_id, job_id, avg(salary) "Average Dept/Job Pay", min(salary) "Lowest Dept/Job Pay"<br />
from employees<br />
where upper(job_id) not like '%VP'<br />
and department_id != all(select department_id<br />
from departments<br />
where upper(department_name) in ('IT','SALES'))<br />
group by department_id, job_id<br />
having min(salary) between 5000 and 15000<br />
order by department_id, job_id<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay",<br />
MIN(salary) "Lowest Dept/Job Pay"<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%VP'<br />
AND department_id != ALL<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) IN ('IT','SALES'))<br />
GROUP BY department_id, job_id<br />
HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
ORDER BY department_id, job_id;<br />
</pre><br />
<br />
===8.===<br />
''YuJin''<br />
<pre><br />
SELECT department_id, department_name,<br />
RPAD(TRIM(NVL(city, 'Not Assinged Yet')), 25, ' ') "City",<br />
COUNT(DISTINCT job_id) "# of Jobs"<br />
FROM employees<br />
RIGHT OUTER JOIN departments USING (department_id)<br />
LEFT OUTER JOIN locations USING (location_id)<br />
GROUP BY department_id, department_name, city;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT department_id, department_name, SUBSTR(NVL(city,'Not Assigned Yet'),1,25) City,<br />
COUNT(DISTINCT job_id) "# of Jobs"<br />
FROM locations l RIGHT OUTER JOIN departments d<br />
USING (location_id)<br />
LEFT OUTER JOIN employees e<br />
USING (department_id)<br />
GROUP BY department_id, department_name, city<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select department_id, department_name, substr(nvl(city,'Not Assigned Yet'),1,25) City,<br />
count(distinct job_id) "# of Jobs"<br />
from employees right outer join departments<br />
using (department_id)<br />
left outer join locations<br />
using (location_id)<br />
group by department_id, department_name, city<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT department_id, department_name,<br />
SUBSTR(NVL(city, 'Not Assinged Yet'),1, 25) "City",<br />
COUNT(DISTINCT job_id) "# of Jobs"<br />
FROM employees<br />
RIGHT OUTER JOIN departments USING (department_id)<br />
LEFT OUTER JOIN locations USING (location_id)<br />
GROUP BY department_id, department_name, city;<br />
<br />
</pre></div>
Yujin.jeong
https://wiki.cdot.senecacollege.ca/w/index.php?title=J.Y.S&diff=50849
J.Y.S
2010-11-27T20:10:47Z
<p>Yujin.jeong: /* DDL Statements (CREATE TABLE) */</p>
<hr />
<div>This page is to efficiently manage our group assignments!<br />
== Member List == <br />
*[mailto:,,yjeong@learn.senecac.on.ca,?subject=dbs301 Email All]<br />
<br />
{| class="wikitable sortable" border="1" cellpadding="5"<br />
! First Name !! Last Name !! wiki id !! Learn e-mail !! Phone<br />
|-<br />
|[[User:Yujin.jeong | YuJin]]||Jeong||[[Special:Contributions/yujin.jeong | yujin.jeong]]||[mailto:yjeong@learn.senecac.on.ca?sujbect=dbs301 yjeong]|| 647 - 832 - 6771<br />
|-<br />
<br />
|-<br />
|Saad|| || || ||<br />
|-<br />
<br />
|-<br />
|James|| || || ||<br />
|-<br />
|}<br />
<br />
=Assignment 3 (worth 9%)=<br />
==Due Date==<br />
Thursday, December 2nd, 3:00pm<br />
Printout of all TIC charts and DDL / DML statements<br />
<br />
==Solution==<br />
==== DDL Statements (CREATE TABLE) ====<br />
1. AREA<br />
<pre><br />
CREATE TABLE AREA<br />
(<br />
AreaID NUMBER(4) CONSTRAINT area_areaid_pk PRIMARY KEY,<br />
AreaName VARCHAR2(30) NOT NULL CONSTRAINT area_areaname_uk UNIQUE,<br />
ElmSchool VARCHAR2(40),<br />
MidSchool VARCHAR2(40),<br />
HighSchool VARCHAR2(40),<br />
Comments VARCHAR2(100)<br />
);<br />
</pre><br />
2. AGENCY<br />
<pre><br />
CREATE TABLE AGENCY<br />
(<br />
AgencyID NUMBER(4) CONSTRAINT agency_agencyid_pk PRIMARY KEY,<br />
AgencyName VARCHAR2(40) NOT NULL CONSTRAINT agency_agencyname_uk UNIQUE,<br />
AgencyPhone VARCHAR2(15) NOT NULL CONSTRAINT agency_agencyphone_uk UNIQUE<br />
);<br />
</pre><br />
3. PROPERTY<br />
<pre><br />
CREATE TABLE PROPERTY<br />
(<br />
PropertyID NUMBER(6),<br />
Street VARCHAR2(40) NOT NULL,<br />
City VARCHAR2(30) NOT NULL,<br />
Province CHAR(2) NOT NULL,<br />
PostalCode CHAR(6) NOT NULL,<br />
Bedrooms NUMBER(1) NOT NULL,<br />
Bathrooms NUMBER(1) NOT NULL,<br />
ListingPrice NUMBER(6) NOT NULL,<br />
AreaID NUMBER(4) NOT NULL,<br />
CONSTRAINT property_propertyid_pk PRIMARY KEY(PropertyID),<br />
CONSTRAINT property_bedrooms_ck CHECK(Bedrooms BETWEEN 1 AND 9),<br />
CONSTRAINT property_bathrooms_ck CHECK(Bathrooms BETWEEN 1 AND 9),<br />
CONSTRAINT property_listingprice_ck CHECK(ListingPrice BETWEEN 1 AND 4999999),<br />
CONSTRAINT property_areaid_fk FOREIGN KEY(AreaID) REFERENCES AREA(AreaID)<br />
);<br />
</pre><br />
4. SINGLE<br />
<pre><br />
CREATE TABLE SINGLE<br />
(<br />
PropertyID NUMBER(6), <br />
LotSize NUMBER(8,2) NOT NULL,<br />
CONSTRAINT single_propertyID_pk PRIMARY KEY(PropertyID), <br />
CONSTRAINT single_propertyID_fk FOREIGN KEY(PropertyID) REFERENCES PROPERTY(PropertyID),<br />
CONSTRAINT single_lotsize_ck CHECK(LotSize > 0)<br />
);<br />
<br />
</pre><br />
5. CONDO<br />
<pre><br />
CREATE TABLE CONDO<br />
(<br />
PropertyID NUMBER(6),<br />
Fee NUMBER(8,2) NOT NULL, <br />
CONSTRAINT condo_propertyID_pk PRIMARY KEY(PropertyID),<br />
CONSTRAINT condo_propertyID_fk FOREIGN KEY(PropertyID) REFERENCES PROPERTY(PropertyID),<br />
CONSTRAINT condo_fee_ck CHECK(Fee > 0)<br />
);<br />
<br />
</pre><br />
6. OUTLET<br />
<pre><br />
CREATE TABLE OUTLET<br />
(<br />
OutletID NUMBER(4), <br />
OutletName VARCHAR2(40) NOT NULL,<br />
OutletPhone VARCHAR2(15) NOT NULL,<br />
OutletType CHAR(1) NOT NULL,<br />
CONSTRAINT outlet_outletid_pk PRIMARY KEY(OutletID),<br />
CONSTRAINT outlet_outlettype_ck CHECK(OutletType IN('N','M','W','F')),<br />
CONSTRAINT outlet_outletname_type_uk UNIQUE(OutletName, OutletType)<br />
);<br />
<br />
</pre><br />
7. ADVERTISEMENT<br />
<pre><br />
CREATE TABLE ADVERTISEMENT<br />
(<br />
PropertyID NUMBER(6),<br />
OutletID NUMBER(4),<br />
AdvDate DATE,<br />
AdvCost NUMBER(6) NOT NULL,<br />
CONSTRAINT ad_adid_pk PRIMARY KEY(PropertyID, OutletID),<br />
CONSTRAINT ad_propertyid_fk FOREIGN KEY(PropertyID) REFERENCES PROPERTY(PropertyID),<br />
CONSTRAINT ad_outletid_fk FOREIGN KEY(OutletID) REFERENCES OUTLET(OutletID),<br />
CONSTRAINT ad_advcost_ck CHECK(AdvCost > 0)<br />
);<br />
<br />
8. CLIENT<br />
<pre><br />
CREATE TABLE CLIENT<br />
(<br />
ClientID NUMBER(6),<br />
Fname VARCHAR2(30) NOT NULL,<br />
Lname VARCHAR2(30) NOT NULL,<br />
Phone VARCHAR2(15) NOT NULL,<br />
Email VARCHAR2(40),<br />
RefID NUMBER(6),<br />
CONSTRAINT client_clientid_pk PRIMARY KEY(ClientID),<br />
CONSTRAINT client_phone_uk UNIQUE(Phone),<br />
CONSTRAINT client_email_uk UNIQUE(Email),<br />
CONSTRAINT client_refid_fk FOREIGN KEY(RefID) REFERENCES CLEINT(ClientID)<br />
);<br />
</pre><br />
9. DEED<br />
<pre><br />
CREATE TABLE DEED<br />
(<br />
PropertyID NUMBER(6),<br />
SellerID NUMBER(6),<br />
OwnPct NUMBER(5,2) NOT NULL,<br />
BuyerID NUMBER(6),<br />
BuyPrice NUMBER(7),<br />
CONSTRAINT deed_deedid_pk PRIMARY KEY(PropertyID, SellerID),<br />
CONSTRAINT deed_propertyid_fk FOREIGN KEY(PropertyID) REFERENCES PROPERTY(PropertyID),<br />
CONSTRAINT deed_sellerid_fk FOREIGN KEY(SellerID) REFERENCES CLIENT(ClientID),<br />
CONSTRAINT deed_buyerid_fk FOREIGN KEY(BuyerID) REFERENCES CLIENT(ClientID),<br />
CONSTRAINT deed_ownpct_ck CHECK(OwnPct > 0 AND OwnPct <= 100),<br />
CONSTRAINT deed_buyprice_ck CHECK(BuyPrice BETWEEN 1 AND 4999999)<br />
);<br />
<br />
</pre><br />
<br />
=Assignment 1=<br />
==Due Date==<br />
Thursday, October 21st, 4:00pm<br />
Printout submission only( SELECT Statements + ALL outputs)<br />
==Description==<br />
[https://cs.senecac.on.ca/~nconkic/assign1.doc Assignment1]<br />
==Solution==<br />
<pre><br />
SQL> SELECT employee_id, RPAD(CONCAT(CONCAT(last_name, ', '),first_name), 25) "Full Name",<br />
<br />
2 job_id,<br />
<br />
3 TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
<br />
4 "Start Date"<br />
<br />
5 FROM employees<br />
<br />
6 WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
<br />
7 ORDER BY 4 DESC;<br />
<br />
<br />
<br />
EMPLOYEE_ID Full Name JOB_ID Start Date <br />
<br />
----------- ------------------------- ---------- ----------------------------------------- <br />
<br />
124 Mourgos, Kevin ST_MAN November First in the year 1999 <br />
<br />
178 Grant, Kimberely SA_REP May First in the year 1999 <br />
<br />
174 Abel, Ellen SA_REP May First in the year 1996 <br />
<br />
104 Ernst, Bruce IT_PROG May First in the year 1991 <br />
<br />
<br />
<br />
SQL> SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
<br />
2 || job_id || ' will have a new salary of $' || salary * 1.15 "Happy Employees"<br />
<br />
3 FROM employees<br />
<br />
4 WHERE salary BETWEEN 5000 AND 12000<br />
<br />
5 AND job_id IN ('IT_PROG', 'ST_CLERK')<br />
<br />
6 ORDER BY employee_id;<br />
<br />
<br />
<br />
Happy Employees <br />
<br />
----------------------------------------------------------------------------------------------------<br />
<br />
Employee named Alexander Hunold who is IT_PROG will have a new salary of $10350 <br />
<br />
Employee named Bruce Ernst who is IT_PROG will have a new salary of $6900 <br />
<br />
<br />
<br />
SQL> SELECT last_name, salary, job_id,<br />
<br />
2 RPAD(NVL(TO_CHAR(manager_id), 'No Manager'), 10) "Manager #",<br />
<br />
3 LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
<br />
4 FROM employees<br />
<br />
5 WHERE (job_id LIKE 'MK%' OR manager_id IS NULL)<br />
<br />
6 AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
<br />
7 ORDER BY 2 DESC;<br />
<br />
<br />
<br />
LAST_NAME SALARY JOB_ID Manager # Total Income <br />
<br />
------------------------- ---------- ---------- ---------- ------------ <br />
<br />
King 24000 AD_PRES No Manager $288,000 <br />
<br />
Hartstein 13000 MK_MAN 100 $156,000 <br />
<br />
<br />
<br />
SQL> SELECT RPAD(CONCAT(CONCAT(first_name,' '),last_name), 25) "Employee", job_id,<br />
<br />
2 LPAD(TRIM(TO_CHAR(salary, '$999,999')), 12, '=') "Salary", department_name<br />
<br />
3 FROM employees e JOIN departments d<br />
<br />
4 ON (e.department_id = d.department_id)<br />
<br />
5 WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
<br />
6 AND salary <<br />
<br />
7 (SELECT MAX(salary)<br />
<br />
8 FROM employees<br />
<br />
9 WHERE SUBSTR(job_id, 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
<br />
10 ORDER BY 1;<br />
<br />
<br />
<br />
Employee JOB_ID Salary DEPARTMENT_NAME <br />
<br />
------------------------- ---------- ------------ ------------------------------ <br />
<br />
Eleni Zlotkey SA_MAN =====$10,500 Sales <br />
<br />
Jonathon Taylor SA_REP ======$8,600 Sales <br />
<br />
Pat Fay MK_REP ======$6,000 Marketing <br />
<br />
<br />
<br />
SQL><br />
<br />
SQL> SELECT last_name, salary, job_id<br />
<br />
2 FROM employees<br />
<br />
3 WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
<br />
4 AND salary ><br />
<br />
5 (SELECT MAX(salary)<br />
<br />
6 FROM employees<br />
<br />
7 JOIN departments USING (department_id)<br />
<br />
8 JOIN locations USING (location_id)<br />
<br />
9 WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
<br />
<br />
LAST_NAME SALARY JOB_ID <br />
<br />
------------------------- ---------- ---------- <br />
<br />
Kochhar 17000 AD_VP <br />
<br />
De Haan 17000 AD_VP <br />
<br />
<br />
<br />
SQL> SELECT last_name, first_name, job_id, hire_date<br />
<br />
2 FROM employees<br />
<br />
3 WHERE hire_date ><br />
<br />
4 (SELECT MAX(hire_date)<br />
<br />
5 FROM employees<br />
<br />
6 WHERE department_id =<br />
<br />
7 (SELECT department_id<br />
<br />
8 FROM departments<br />
<br />
9 WHERE UPPER(department_name) = 'IT'))<br />
<br />
10 AND (department_id !=<br />
<br />
11 (SELECT department_id<br />
<br />
12 FROM departments<br />
<br />
13 WHERE UPPER(department_name) = 'EXECUTIVE')<br />
<br />
14 OR department_id IS NULL)<br />
<br />
15 ORDER BY 4 DESC;<br />
<br />
<br />
<br />
LAST_NAME FIRST_NAME JOB_ID HIRE_DATE <br />
<br />
------------------------- -------------------- ---------- --------- <br />
<br />
Zlotkey Eleni SA_MAN 29-JAN-00 <br />
<br />
Mourgos Kevin ST_MAN 16-NOV-99 <br />
<br />
Grant Kimberely SA_REP 24-MAY-99 <br />
<br />
<br />
<br />
SQL> SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay",<br />
<br />
2 MIN(salary) "Lowest Dept/Job Pay"<br />
<br />
3 FROM employees<br />
<br />
4 WHERE UPPER(job_id) NOT LIKE '%VP'<br />
<br />
5 AND department_id NOT IN<br />
<br />
6 (SELECT department_id<br />
<br />
7 FROM departments<br />
<br />
8 WHERE UPPER(department_name) IN ('IT','SALES'))<br />
<br />
9 GROUP BY department_id, job_id<br />
<br />
10 HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
<br />
11 ORDER BY 1, 2;<br />
<br />
<br />
<br />
DEPARTMENT_ID JOB_ID Average Dept/Job Pay Lowest Dept/Job Pay <br />
<br />
------------- ---------- -------------------- ------------------- <br />
<br />
20 MK_MAN 13000 13000 <br />
<br />
20 MK_REP 6000 6000 <br />
<br />
50 ST_MAN 5800 5800 <br />
<br />
110 AC_ACCOUNT 8300 8300 <br />
<br />
110 AC_MGR 12000 12000 <br />
<br />
<br />
<br />
SQL> SELECT department_id, department_name,<br />
<br />
2 RPAD(TRIM(NVL(city, 'Not Assinged Yet')), 25, ' ') "City",<br />
<br />
3 COUNT(DISTINCT job_id) "# of Jobs"<br />
<br />
4 FROM employees<br />
<br />
5 RIGHT OUTER JOIN departments USING (department_id)<br />
<br />
6 LEFT OUTER JOIN locations USING (location_id)<br />
<br />
7 GROUP BY department_id, department_name, city;<br />
<br />
<br />
<br />
DEPARTMENT_ID DEPARTMENT_NAME City # of Jobs <br />
<br />
------------- ------------------------------ ------------------------- ---------- <br />
<br />
110 Accounting Seattle 2 <br />
<br />
50 Shipping South San Francisco 2 <br />
<br />
80 Sales Oxford 2 <br />
<br />
10 Administration Seattle 1 <br />
<br />
190 Contracting Seattle 0 <br />
<br />
90 Executive Seattle 2 <br />
<br />
20 Marketing Toronto 2 <br />
<br />
60 IT Southlake 1 <br />
<br />
<br />
<br />
8 rows selected.<br />
<br />
<br />
<br />
SQL> spool off<br />
</pre><br />
==SQL Statements==<br />
===1.===<br />
''YuJin''<br />
<pre><br />
SELECT employee_id, RPAD(CONCAT(CONCAT(last_name, ', '),first_name), 25) "Full Name",<br />
job_id,<br />
TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
"Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
ORDER BY 4 DESC;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT employee_id,<br />
SUBSTR(last_name ||' '|| first_name, 1, 25) "Full Name",<br />
job_id,<br />
TO_CHAR(hire_date,'fmMonth "First in the year" YYYY') "Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date,'fmMON') IN ('MAY','NOV')<br />
ORDER BY hire_date DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select employee_id "Emp#",<br />
(last_name ||', '|| first_name) "Full Name",<br />
job_id "Job",<br />
to_char(trunc(hire_date, 'MONTH'), 'FMMonth Ddspth "in the year"<br />
YYYY') "Start Date"<br />
from employees<br />
where to_char(hire_date, 'fmMonth') in ('May', 'November')<br />
order by hire_date desc;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT employee_id, SUBSTR(last_name ||' '|| first_name, 1, 25) "Full Name",<br />
job_id,<br />
TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
"Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
ORDER BY hire_date DESC;<br />
</pre><br />
<br />
===2.===<br />
''YuJin''<br />
<pre><br />
SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
|| job_id || ' will have a new salary of $' || salary * 1.15 "Happy Employees"<br />
FROM employees<br />
WHERE salary BETWEEN 5000 AND 12000<br />
AND job_id IN ('IT_PROG', 'ST_CLERK')<br />
ORDER BY employee_id;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT 'Employee named '||first_name||' '||last_name||' who is '||job_id||' will have a new salary of $'|| salary *1.15 "Happy Employees"<br />
FROM employees<br />
WHERE job_id IN ('IT_PROG','ST CLERK')<br />
AND (salary BETWEEN 5000 AND 12000)<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
Select ('Employee named ' || first_name ||' '|| last_name || ' who is ' || job_id || ' will have a new salary of ' || (salary*1.15)) "Happy Employees"<br />
From employees<br />
Where salary between 5000 and 12000<br />
And upper(job_id) in ('IT_PROG', 'ST_CLERK')<br />
order by employee_id;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
|| job_id || ' will have a new salary of ' || TO_CHAR(salary * 1.15, 'fm$999999') "Happy Employees"<br />
FROM employees<br />
WHERE salary BETWEEN 5000 AND 12000<br />
AND UPPER(job_id) IN ('IT_PROG', 'ST_CLERK')<br />
ORDER BY employee_id;<br />
</pre><br />
<br />
===3.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, salary, job_id,<br />
RPAD(NVL(TO_CHAR(manager_id), 'No Manager'), 10) "Manager #",<br />
LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
FROM employees<br />
WHERE (job_id LIKE 'MK%' OR manager_id IS NULL)<br />
AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
ORDER BY 2 DESC;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, salary, job_id, NVL(TO_CHAR(manager_id),'No Manager') Manager#,<br />
TO_CHAR(salary*12,'$999,999') "Total Income"<br />
FROM employees<br />
WHERE (manager_id IS NULL<br />
OR job_id LIKE 'MK%')<br />
AND ( salary* (NVL(commission_pct,0) + 1) + 1000 ) > 10000<br />
ORDER BY salary DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, salary, job_id, nvl(to_char(manager_id),'No Manager') Manager#,<br />
to_char(salary*12,'$999,999') "Total Income"<br />
from employees<br />
where (upper(job_id) like 'MK%' or manager_id IS NULL)<br />
and salary * (1 + nvl(commission_pct, 0)) + 1000 > 10000<br />
order by 2 desc;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT last_name, salary, job_id,<br />
SUBSTR(NVL(TO_CHAR(manager_id), 'No Manager'), 1, 10) "Manager #",<br />
LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
FROM employees<br />
WHERE (UPPER(job_id) LIKE 'MK%' OR manager_id IS NULL)<br />
AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
ORDER BY salary DESC;<br />
<br />
</pre><br />
<br />
===4.===<br />
''YuJin''<br />
<pre><br />
SELECT RPAD(CONCAT(CONCAT(first_name,' '),last_name), 25) "Employee", job_id,<br />
LPAD(TRIM(TO_CHAR(salary, '$999,999')), 12, '=') "Salary", department_name<br />
FROM employees e JOIN departments d<br />
ON (e.department_id = d.department_id)<br />
WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
AND salary <<br />
(SELECT MAX(salary)<br />
FROM employees<br />
WHERE SUBSTR(job_id, 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
ORDER BY 1;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT SUBSTR(first_name||' '||last_name, 25) Employee, job_id,<br />
LPAD(TO_CHAR(salary,'$99,999'), 12, '=') Salary, department_name<br />
FROM employees e JOIN departments d<br />
ON (d.department_id=e.department_id)<br />
WHERE salary < (SELECT MAX(salary)<br />
FROM employees<br />
WHERE UPPER(SUBSTR(job_id,4)) NOT IN ('VP', 'PRES', 'MAN', 'MGR')<br />
)<br />
AND UPPER(department_name) IN ('MARKETING','SALES')<br />
ORDER BY first_name, last_name<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select substr(first_name ||' '|| last_name) "Employee", job_id, to_char(salary, '$999,999', 12, '=') Salary, department_name<br />
from employees e join departments d<br />
on (e.department_id = d.department_id)<br />
where upper(department_name) in ('MARKETING', 'SALES')<br />
and salary < (select max(salary)<br />
from employees<br />
where substr(job_id,4) not in ('PRES','VP','MAN','MGR'))<br />
order by "Employee";<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT SUBSTR(first_name ||' '|| last_name, 1, 25) "Employee", job_id,<br />
LPAD(TO_CHAR(salary, 'fm$999,999'), 12, '=') "Salary", department_name<br />
FROM employees e JOIN departments d<br />
ON (e.department_id = d.department_id)<br />
WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
AND salary <<br />
(SELECT MAX(salary)<br />
FROM employees<br />
WHERE SUBSTR(UPPER(job_id), 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
ORDER BY 1;<br />
</pre><br />
<br />
===5.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
AND salary ><br />
(SELECT MAX(salary)<br />
FROM employees<br />
JOIN departments USING (department_id)<br />
JOIN locations USING (location_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE salary > (SELECT MAX(salary)<br />
FROM locations JOIN departments<br />
USING (location_id)<br />
JOIN employees<br />
USING (department_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD')<br />
)<br />
AND UPPER(job_id) NOT LIKE '%PRES'<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, salary, job_id<br />
from employees<br />
where salary > (select max(salary)<br />
from employees join departments<br />
using (department_id)<br />
join locations<br />
using (location_id)<br />
where upper(city) in ('TORONTO','OXFORD'))<br />
and upper(job_id) not like '%PRES'<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
AND salary ><br />
(SELECT MAX(salary)<br />
FROM employees<br />
JOIN departments USING (department_id)<br />
JOIN locations USING (location_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
</pre><br />
<br />
===6.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, first_name, job_id, hire_date<br />
FROM employees<br />
WHERE hire_date ><br />
(SELECT MAX(hire_date)<br />
FROM employees<br />
WHERE department_id =<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'IT'))<br />
AND (department_id !=<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'EXECUTIVE')<br />
OR department_id IS NULL)<br />
ORDER BY 4 DESC;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, first_name, job_id, hire_date<br />
FROM employees e<br />
WHERE hire_date > (SELECT MAX(hire_date)<br />
FROM employees<br />
WHERE department_id = (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'IT'<br />
)<br />
)<br />
AND (department_id <> (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) ='EXECUTIVE')<br />
OR department_id IS NULL)<br />
ORDER BY hire_date DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, first_name, job_id, hire_date<br />
from employees<br />
where hire_date > (select max(hire_date)<br />
from employees<br />
where department_id = (select department_id<br />
from departments<br />
where upper(department_name) = 'IT'))<br />
and (department_id != (select department_id<br />
from departments<br />
where upper(department_name) = 'EXECUTIVE')<br />
or department_id IS NULL)<br />
order by hire_date desc;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT last_name, first_name, job_id, hire_date<br />
FROM employees<br />
WHERE hire_date ><br />
(SELECT MAX(hire_date)<br />
FROM employees<br />
WHERE department_id =<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'IT'))<br />
AND (department_id !=<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'EXECUTIVE')<br />
OR department_id IS NULL)<br />
ORDER BY hire_date DESC;<br />
</pre><br />
<br />
===7.===<br />
''YuJin''<br />
<pre><br />
SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay",<br />
MIN(salary) "Lowest Dept/Job Pay"<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%VP'<br />
AND department_id NOT IN<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) IN ('IT','SALES'))<br />
GROUP BY department_id, job_id<br />
HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
ORDER BY 1, 2;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay", MIN(salary) "Lowest Dept/Job Pay"<br />
FROM employees<br />
WHERE department_id <> ALL (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) IN ('IT','SALES')<br />
)<br />
AND job_id NOT LIKE '%VP'<br />
GROUP BY department_id, job_id<br />
HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
ORDER BY department_id, job_id<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select department_id, job_id, avg(salary) "Average Dept/Job Pay", min(salary) "Lowest Dept/Job Pay"<br />
from employees<br />
where upper(job_id) not like '%VP'<br />
and department_id != all(select department_id<br />
from departments<br />
where upper(department_name) in ('IT','SALES'))<br />
group by department_id, job_id<br />
having min(salary) between 5000 and 15000<br />
order by department_id, job_id<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay",<br />
MIN(salary) "Lowest Dept/Job Pay"<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%VP'<br />
AND department_id != ALL<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) IN ('IT','SALES'))<br />
GROUP BY department_id, job_id<br />
HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
ORDER BY department_id, job_id;<br />
</pre><br />
<br />
===8.===<br />
''YuJin''<br />
<pre><br />
SELECT department_id, department_name,<br />
RPAD(TRIM(NVL(city, 'Not Assinged Yet')), 25, ' ') "City",<br />
COUNT(DISTINCT job_id) "# of Jobs"<br />
FROM employees<br />
RIGHT OUTER JOIN departments USING (department_id)<br />
LEFT OUTER JOIN locations USING (location_id)<br />
GROUP BY department_id, department_name, city;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT department_id, department_name, SUBSTR(NVL(city,'Not Assigned Yet'),1,25) City,<br />
COUNT(DISTINCT job_id) "# of Jobs"<br />
FROM locations l RIGHT OUTER JOIN departments d<br />
USING (location_id)<br />
LEFT OUTER JOIN employees e<br />
USING (department_id)<br />
GROUP BY department_id, department_name, city<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select department_id, department_name, substr(nvl(city,'Not Assigned Yet'),1,25) City,<br />
count(distinct job_id) "# of Jobs"<br />
from employees right outer join departments<br />
using (department_id)<br />
left outer join locations<br />
using (location_id)<br />
group by department_id, department_name, city<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT department_id, department_name,<br />
SUBSTR(NVL(city, 'Not Assinged Yet'),1, 25) "City",<br />
COUNT(DISTINCT job_id) "# of Jobs"<br />
FROM employees<br />
RIGHT OUTER JOIN departments USING (department_id)<br />
LEFT OUTER JOIN locations USING (location_id)<br />
GROUP BY department_id, department_name, city;<br />
<br />
</pre></div>
Yujin.jeong
https://wiki.cdot.senecacollege.ca/w/index.php?title=J.Y.S&diff=50848
J.Y.S
2010-11-27T20:09:26Z
<p>Yujin.jeong: /* DDL Statements (CREATE TABLE) */</p>
<hr />
<div>This page is to efficiently manage our group assignments!<br />
== Member List == <br />
*[mailto:,,yjeong@learn.senecac.on.ca,?subject=dbs301 Email All]<br />
<br />
{| class="wikitable sortable" border="1" cellpadding="5"<br />
! First Name !! Last Name !! wiki id !! Learn e-mail !! Phone<br />
|-<br />
|[[User:Yujin.jeong | YuJin]]||Jeong||[[Special:Contributions/yujin.jeong | yujin.jeong]]||[mailto:yjeong@learn.senecac.on.ca?sujbect=dbs301 yjeong]|| 647 - 832 - 6771<br />
|-<br />
<br />
|-<br />
|Saad|| || || ||<br />
|-<br />
<br />
|-<br />
|James|| || || ||<br />
|-<br />
|}<br />
<br />
=Assignment 3 (worth 9%)=<br />
==Due Date==<br />
Thursday, December 2nd, 3:00pm<br />
Printout of all TIC charts and DDL / DML statements<br />
<br />
==Solution==<br />
==== DDL Statements (CREATE TABLE) ====<br />
1. AREA<br />
<pre><br />
CREATE TABLE AREA<br />
(<br />
AreaID NUMBER(4) CONSTRAINT area_areaid_pk PRIMARY KEY,<br />
AreaName VARCHAR2(30) NOT NULL CONSTRAINT area_areaname_uk UNIQUE,<br />
ElmSchool VARCHAR2(40),<br />
MidSchool VARCHAR2(40),<br />
HighSchool VARCHAR2(40),<br />
Comments VARCHAR2(100)<br />
);<br />
</pre><br />
2. AGENCY<br />
<pre><br />
CREATE TABLE AGENCY<br />
(<br />
AgencyID NUMBER(4) CONSTRAINT agency_agencyid_pk PRIMARY KEY,<br />
AgencyName VARCHAR2(40) NOT NULL CONSTRAINT agency_agencyname_uk UNIQUE,<br />
AgencyPhone VARCHAR2(15) NOT NULL CONSTRAINT agency_agencyphone_uk UNIQUE<br />
);<br />
</pre><br />
3. PROPERTY<br />
<pre><br />
CREATE TABLE PROPERTY<br />
(<br />
PropertyID NUMBER(6),<br />
Street VARCHAR2(40) NOT NULL,<br />
City VARCHAR2(30) NOT NULL,<br />
Province CHAR(2) NOT NULL,<br />
PostalCode CHAR(6) NOT NULL,<br />
Bedrooms NUMBER(1) NOT NULL,<br />
Bathrooms NUMBER(1) NOT NULL,<br />
ListingPrice NUMBER(6) NOT NULL,<br />
AreaID NUMBER(4) NOT NULL,<br />
CONSTRAINT property_propertyid_pk PRIMARY KEY(PropertyID),<br />
CONSTRAINT property_bedrooms_ck CHECK(Bedrooms BETWEEN 1 AND 9),<br />
CONSTRAINT property_bathrooms_ck CHECK(Bathrooms BETWEEN 1 AND 9),<br />
CONSTRAINT property_listingprice_ck CHECK(ListingPrice BETWEEN 1 AND 4999999),<br />
CONSTRAINT property_areaid_fk FOREIGN KEY(AreaID) REFERENCES AREA(AreaID)<br />
);<br />
</pre><br />
4. SINGLE<br />
<pre><br />
CREATE TABLE SINGLE<br />
(<br />
PropertyID NUMBER(6), <br />
LotSize NUMBER(8,2) NOT NULL,<br />
CONSTRAINT single_propertyID_pk PRIMARY KEY(PropertyID), <br />
CONSTRAINT single_propertyID_fk FOREIGN KEY(PropertyID) REFERENCES PROPERTY(PropertyID),<br />
CONSTRAINT single_lotsize_ck CHECK(LotSize > 0)<br />
);<br />
<br />
</pre><br />
5. CONDO<br />
<pre><br />
CREATE TABLE CONDO<br />
(<br />
PropertyID NUMBER(6),<br />
Fee NUMBER(8,2) NOT NULL, <br />
CONSTRAINT condo_propertyID_pk PRIMARY KEY(PropertyID),<br />
CONSTRAINT condo_propertyID_fk FOREIGN KEY(PropertyID) REFERENCES PROPERTY(PropertyID),<br />
CONSTRAINT condo_fee_ck CHECK(Fee > 0)<br />
);<br />
<br />
</pre><br />
6. OUTLET<br />
<pre><br />
CREATE TABLE OUTLET<br />
(<br />
OutletID NUMBER(4), <br />
OutletName VARCHAR2(40) NOT NULL,<br />
OutletPhone VARCHAR2(15) NOT NULL,<br />
OutletType CHAR(1) NOT NULL,<br />
CONSTRAINT outlet_outletid_pk PRIMARY KEY(OutletID),<br />
CONSTRAINT outlet_outlettype_ck CHECK(OutletType IN('N','M','W','F')),<br />
CONSTRAINT outlet_outletname_type_uk UNIQUE(OutletName, OutletType)<br />
);<br />
<br />
</pre><br />
7. ADVERTISEMENT<br />
<pre><br />
CREATE TABLE OUTLET<br />
(<br />
OutletID NUMBER(4), <br />
OutletName VARCHAR2(40) NOT NULL,<br />
OutletPhone VARCHAR2(15) NOT NULL,<br />
OutletType CHAR(1) NOT NULL,<br />
CONSTRAINT outlet_outletid_pk PRIMARY KEY(OutletID),<br />
CONSTRAINT outlet_outlettype_ck CHECK(OutletType IN('N','M','W','F')),<br />
CONSTRAINT outlet_outletname_type_uk UNIQUE(OutletName, OutletType)<br />
);<br />
</pre><br />
8. CLIENT<br />
<pre><br />
CREATE TABLE CLIENT<br />
(<br />
ClientID NUMBER(6),<br />
Fname VARCHAR2(30) NOT NULL,<br />
Lname VARCHAR2(30) NOT NULL,<br />
Phone VARCHAR2(15) NOT NULL,<br />
Email VARCHAR2(40),<br />
RefID NUMBER(6),<br />
CONSTRAINT client_clientid_pk PRIMARY KEY(ClientID),<br />
CONSTRAINT client_phone_uk UNIQUE(Phone),<br />
CONSTRAINT client_email_uk UNIQUE(Email),<br />
CONSTRAINT client_refid_fk FOREIGN KEY(RefID) REFERENCES CLEINT(ClientID)<br />
);<br />
</pre><br />
9. DEED<br />
<pre><br />
CREATE TABLE DEED<br />
(<br />
PropertyID NUMBER(6),<br />
SellerID NUMBER(6),<br />
OwnPct NUMBER(5,2) NOT NULL,<br />
BuyerID NUMBER(6),<br />
BuyPrice NUMBER(7),<br />
CONSTRAINT deed_deedid_pk PRIMARY KEY(PropertyID, SellerID),<br />
CONSTRAINT deed_propertyid_fk FOREIGN KEY(PropertyID) REFERENCES PROPERTY(PropertyID),<br />
CONSTRAINT deed_sellerid_fk FOREIGN KEY(SellerID) REFERENCES CLIENT(ClientID),<br />
CONSTRAINT deed_buyerid_fk FOREIGN KEY(BuyerID) REFERENCES CLIENT(ClientID),<br />
CONSTRAINT deed_ownpct_ck CHECK(OwnPct > 0 AND OwnPct <= 100),<br />
CONSTRAINT deed_buyprice_ck CHECK(BuyPrice BETWEEN 1 AND 4999999)<br />
);<br />
<br />
</pre><br />
<br />
=Assignment 1=<br />
==Due Date==<br />
Thursday, October 21st, 4:00pm<br />
Printout submission only( SELECT Statements + ALL outputs)<br />
==Description==<br />
[https://cs.senecac.on.ca/~nconkic/assign1.doc Assignment1]<br />
==Solution==<br />
<pre><br />
SQL> SELECT employee_id, RPAD(CONCAT(CONCAT(last_name, ', '),first_name), 25) "Full Name",<br />
<br />
2 job_id,<br />
<br />
3 TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
<br />
4 "Start Date"<br />
<br />
5 FROM employees<br />
<br />
6 WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
<br />
7 ORDER BY 4 DESC;<br />
<br />
<br />
<br />
EMPLOYEE_ID Full Name JOB_ID Start Date <br />
<br />
----------- ------------------------- ---------- ----------------------------------------- <br />
<br />
124 Mourgos, Kevin ST_MAN November First in the year 1999 <br />
<br />
178 Grant, Kimberely SA_REP May First in the year 1999 <br />
<br />
174 Abel, Ellen SA_REP May First in the year 1996 <br />
<br />
104 Ernst, Bruce IT_PROG May First in the year 1991 <br />
<br />
<br />
<br />
SQL> SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
<br />
2 || job_id || ' will have a new salary of $' || salary * 1.15 "Happy Employees"<br />
<br />
3 FROM employees<br />
<br />
4 WHERE salary BETWEEN 5000 AND 12000<br />
<br />
5 AND job_id IN ('IT_PROG', 'ST_CLERK')<br />
<br />
6 ORDER BY employee_id;<br />
<br />
<br />
<br />
Happy Employees <br />
<br />
----------------------------------------------------------------------------------------------------<br />
<br />
Employee named Alexander Hunold who is IT_PROG will have a new salary of $10350 <br />
<br />
Employee named Bruce Ernst who is IT_PROG will have a new salary of $6900 <br />
<br />
<br />
<br />
SQL> SELECT last_name, salary, job_id,<br />
<br />
2 RPAD(NVL(TO_CHAR(manager_id), 'No Manager'), 10) "Manager #",<br />
<br />
3 LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
<br />
4 FROM employees<br />
<br />
5 WHERE (job_id LIKE 'MK%' OR manager_id IS NULL)<br />
<br />
6 AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
<br />
7 ORDER BY 2 DESC;<br />
<br />
<br />
<br />
LAST_NAME SALARY JOB_ID Manager # Total Income <br />
<br />
------------------------- ---------- ---------- ---------- ------------ <br />
<br />
King 24000 AD_PRES No Manager $288,000 <br />
<br />
Hartstein 13000 MK_MAN 100 $156,000 <br />
<br />
<br />
<br />
SQL> SELECT RPAD(CONCAT(CONCAT(first_name,' '),last_name), 25) "Employee", job_id,<br />
<br />
2 LPAD(TRIM(TO_CHAR(salary, '$999,999')), 12, '=') "Salary", department_name<br />
<br />
3 FROM employees e JOIN departments d<br />
<br />
4 ON (e.department_id = d.department_id)<br />
<br />
5 WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
<br />
6 AND salary <<br />
<br />
7 (SELECT MAX(salary)<br />
<br />
8 FROM employees<br />
<br />
9 WHERE SUBSTR(job_id, 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
<br />
10 ORDER BY 1;<br />
<br />
<br />
<br />
Employee JOB_ID Salary DEPARTMENT_NAME <br />
<br />
------------------------- ---------- ------------ ------------------------------ <br />
<br />
Eleni Zlotkey SA_MAN =====$10,500 Sales <br />
<br />
Jonathon Taylor SA_REP ======$8,600 Sales <br />
<br />
Pat Fay MK_REP ======$6,000 Marketing <br />
<br />
<br />
<br />
SQL><br />
<br />
SQL> SELECT last_name, salary, job_id<br />
<br />
2 FROM employees<br />
<br />
3 WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
<br />
4 AND salary ><br />
<br />
5 (SELECT MAX(salary)<br />
<br />
6 FROM employees<br />
<br />
7 JOIN departments USING (department_id)<br />
<br />
8 JOIN locations USING (location_id)<br />
<br />
9 WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
<br />
<br />
LAST_NAME SALARY JOB_ID <br />
<br />
------------------------- ---------- ---------- <br />
<br />
Kochhar 17000 AD_VP <br />
<br />
De Haan 17000 AD_VP <br />
<br />
<br />
<br />
SQL> SELECT last_name, first_name, job_id, hire_date<br />
<br />
2 FROM employees<br />
<br />
3 WHERE hire_date ><br />
<br />
4 (SELECT MAX(hire_date)<br />
<br />
5 FROM employees<br />
<br />
6 WHERE department_id =<br />
<br />
7 (SELECT department_id<br />
<br />
8 FROM departments<br />
<br />
9 WHERE UPPER(department_name) = 'IT'))<br />
<br />
10 AND (department_id !=<br />
<br />
11 (SELECT department_id<br />
<br />
12 FROM departments<br />
<br />
13 WHERE UPPER(department_name) = 'EXECUTIVE')<br />
<br />
14 OR department_id IS NULL)<br />
<br />
15 ORDER BY 4 DESC;<br />
<br />
<br />
<br />
LAST_NAME FIRST_NAME JOB_ID HIRE_DATE <br />
<br />
------------------------- -------------------- ---------- --------- <br />
<br />
Zlotkey Eleni SA_MAN 29-JAN-00 <br />
<br />
Mourgos Kevin ST_MAN 16-NOV-99 <br />
<br />
Grant Kimberely SA_REP 24-MAY-99 <br />
<br />
<br />
<br />
SQL> SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay",<br />
<br />
2 MIN(salary) "Lowest Dept/Job Pay"<br />
<br />
3 FROM employees<br />
<br />
4 WHERE UPPER(job_id) NOT LIKE '%VP'<br />
<br />
5 AND department_id NOT IN<br />
<br />
6 (SELECT department_id<br />
<br />
7 FROM departments<br />
<br />
8 WHERE UPPER(department_name) IN ('IT','SALES'))<br />
<br />
9 GROUP BY department_id, job_id<br />
<br />
10 HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
<br />
11 ORDER BY 1, 2;<br />
<br />
<br />
<br />
DEPARTMENT_ID JOB_ID Average Dept/Job Pay Lowest Dept/Job Pay <br />
<br />
------------- ---------- -------------------- ------------------- <br />
<br />
20 MK_MAN 13000 13000 <br />
<br />
20 MK_REP 6000 6000 <br />
<br />
50 ST_MAN 5800 5800 <br />
<br />
110 AC_ACCOUNT 8300 8300 <br />
<br />
110 AC_MGR 12000 12000 <br />
<br />
<br />
<br />
SQL> SELECT department_id, department_name,<br />
<br />
2 RPAD(TRIM(NVL(city, 'Not Assinged Yet')), 25, ' ') "City",<br />
<br />
3 COUNT(DISTINCT job_id) "# of Jobs"<br />
<br />
4 FROM employees<br />
<br />
5 RIGHT OUTER JOIN departments USING (department_id)<br />
<br />
6 LEFT OUTER JOIN locations USING (location_id)<br />
<br />
7 GROUP BY department_id, department_name, city;<br />
<br />
<br />
<br />
DEPARTMENT_ID DEPARTMENT_NAME City # of Jobs <br />
<br />
------------- ------------------------------ ------------------------- ---------- <br />
<br />
110 Accounting Seattle 2 <br />
<br />
50 Shipping South San Francisco 2 <br />
<br />
80 Sales Oxford 2 <br />
<br />
10 Administration Seattle 1 <br />
<br />
190 Contracting Seattle 0 <br />
<br />
90 Executive Seattle 2 <br />
<br />
20 Marketing Toronto 2 <br />
<br />
60 IT Southlake 1 <br />
<br />
<br />
<br />
8 rows selected.<br />
<br />
<br />
<br />
SQL> spool off<br />
</pre><br />
==SQL Statements==<br />
===1.===<br />
''YuJin''<br />
<pre><br />
SELECT employee_id, RPAD(CONCAT(CONCAT(last_name, ', '),first_name), 25) "Full Name",<br />
job_id,<br />
TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
"Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
ORDER BY 4 DESC;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT employee_id,<br />
SUBSTR(last_name ||' '|| first_name, 1, 25) "Full Name",<br />
job_id,<br />
TO_CHAR(hire_date,'fmMonth "First in the year" YYYY') "Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date,'fmMON') IN ('MAY','NOV')<br />
ORDER BY hire_date DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select employee_id "Emp#",<br />
(last_name ||', '|| first_name) "Full Name",<br />
job_id "Job",<br />
to_char(trunc(hire_date, 'MONTH'), 'FMMonth Ddspth "in the year"<br />
YYYY') "Start Date"<br />
from employees<br />
where to_char(hire_date, 'fmMonth') in ('May', 'November')<br />
order by hire_date desc;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT employee_id, SUBSTR(last_name ||' '|| first_name, 1, 25) "Full Name",<br />
job_id,<br />
TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
"Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
ORDER BY hire_date DESC;<br />
</pre><br />
<br />
===2.===<br />
''YuJin''<br />
<pre><br />
SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
|| job_id || ' will have a new salary of $' || salary * 1.15 "Happy Employees"<br />
FROM employees<br />
WHERE salary BETWEEN 5000 AND 12000<br />
AND job_id IN ('IT_PROG', 'ST_CLERK')<br />
ORDER BY employee_id;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT 'Employee named '||first_name||' '||last_name||' who is '||job_id||' will have a new salary of $'|| salary *1.15 "Happy Employees"<br />
FROM employees<br />
WHERE job_id IN ('IT_PROG','ST CLERK')<br />
AND (salary BETWEEN 5000 AND 12000)<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
Select ('Employee named ' || first_name ||' '|| last_name || ' who is ' || job_id || ' will have a new salary of ' || (salary*1.15)) "Happy Employees"<br />
From employees<br />
Where salary between 5000 and 12000<br />
And upper(job_id) in ('IT_PROG', 'ST_CLERK')<br />
order by employee_id;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
|| job_id || ' will have a new salary of ' || TO_CHAR(salary * 1.15, 'fm$999999') "Happy Employees"<br />
FROM employees<br />
WHERE salary BETWEEN 5000 AND 12000<br />
AND UPPER(job_id) IN ('IT_PROG', 'ST_CLERK')<br />
ORDER BY employee_id;<br />
</pre><br />
<br />
===3.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, salary, job_id,<br />
RPAD(NVL(TO_CHAR(manager_id), 'No Manager'), 10) "Manager #",<br />
LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
FROM employees<br />
WHERE (job_id LIKE 'MK%' OR manager_id IS NULL)<br />
AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
ORDER BY 2 DESC;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, salary, job_id, NVL(TO_CHAR(manager_id),'No Manager') Manager#,<br />
TO_CHAR(salary*12,'$999,999') "Total Income"<br />
FROM employees<br />
WHERE (manager_id IS NULL<br />
OR job_id LIKE 'MK%')<br />
AND ( salary* (NVL(commission_pct,0) + 1) + 1000 ) > 10000<br />
ORDER BY salary DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, salary, job_id, nvl(to_char(manager_id),'No Manager') Manager#,<br />
to_char(salary*12,'$999,999') "Total Income"<br />
from employees<br />
where (upper(job_id) like 'MK%' or manager_id IS NULL)<br />
and salary * (1 + nvl(commission_pct, 0)) + 1000 > 10000<br />
order by 2 desc;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT last_name, salary, job_id,<br />
SUBSTR(NVL(TO_CHAR(manager_id), 'No Manager'), 1, 10) "Manager #",<br />
LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
FROM employees<br />
WHERE (UPPER(job_id) LIKE 'MK%' OR manager_id IS NULL)<br />
AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
ORDER BY salary DESC;<br />
<br />
</pre><br />
<br />
===4.===<br />
''YuJin''<br />
<pre><br />
SELECT RPAD(CONCAT(CONCAT(first_name,' '),last_name), 25) "Employee", job_id,<br />
LPAD(TRIM(TO_CHAR(salary, '$999,999')), 12, '=') "Salary", department_name<br />
FROM employees e JOIN departments d<br />
ON (e.department_id = d.department_id)<br />
WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
AND salary <<br />
(SELECT MAX(salary)<br />
FROM employees<br />
WHERE SUBSTR(job_id, 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
ORDER BY 1;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT SUBSTR(first_name||' '||last_name, 25) Employee, job_id,<br />
LPAD(TO_CHAR(salary,'$99,999'), 12, '=') Salary, department_name<br />
FROM employees e JOIN departments d<br />
ON (d.department_id=e.department_id)<br />
WHERE salary < (SELECT MAX(salary)<br />
FROM employees<br />
WHERE UPPER(SUBSTR(job_id,4)) NOT IN ('VP', 'PRES', 'MAN', 'MGR')<br />
)<br />
AND UPPER(department_name) IN ('MARKETING','SALES')<br />
ORDER BY first_name, last_name<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select substr(first_name ||' '|| last_name) "Employee", job_id, to_char(salary, '$999,999', 12, '=') Salary, department_name<br />
from employees e join departments d<br />
on (e.department_id = d.department_id)<br />
where upper(department_name) in ('MARKETING', 'SALES')<br />
and salary < (select max(salary)<br />
from employees<br />
where substr(job_id,4) not in ('PRES','VP','MAN','MGR'))<br />
order by "Employee";<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT SUBSTR(first_name ||' '|| last_name, 1, 25) "Employee", job_id,<br />
LPAD(TO_CHAR(salary, 'fm$999,999'), 12, '=') "Salary", department_name<br />
FROM employees e JOIN departments d<br />
ON (e.department_id = d.department_id)<br />
WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
AND salary <<br />
(SELECT MAX(salary)<br />
FROM employees<br />
WHERE SUBSTR(UPPER(job_id), 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
ORDER BY 1;<br />
</pre><br />
<br />
===5.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
AND salary ><br />
(SELECT MAX(salary)<br />
FROM employees<br />
JOIN departments USING (department_id)<br />
JOIN locations USING (location_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE salary > (SELECT MAX(salary)<br />
FROM locations JOIN departments<br />
USING (location_id)<br />
JOIN employees<br />
USING (department_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD')<br />
)<br />
AND UPPER(job_id) NOT LIKE '%PRES'<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, salary, job_id<br />
from employees<br />
where salary > (select max(salary)<br />
from employees join departments<br />
using (department_id)<br />
join locations<br />
using (location_id)<br />
where upper(city) in ('TORONTO','OXFORD'))<br />
and upper(job_id) not like '%PRES'<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
AND salary ><br />
(SELECT MAX(salary)<br />
FROM employees<br />
JOIN departments USING (department_id)<br />
JOIN locations USING (location_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
</pre><br />
<br />
===6.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, first_name, job_id, hire_date<br />
FROM employees<br />
WHERE hire_date ><br />
(SELECT MAX(hire_date)<br />
FROM employees<br />
WHERE department_id =<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'IT'))<br />
AND (department_id !=<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'EXECUTIVE')<br />
OR department_id IS NULL)<br />
ORDER BY 4 DESC;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, first_name, job_id, hire_date<br />
FROM employees e<br />
WHERE hire_date > (SELECT MAX(hire_date)<br />
FROM employees<br />
WHERE department_id = (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'IT'<br />
)<br />
)<br />
AND (department_id <> (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) ='EXECUTIVE')<br />
OR department_id IS NULL)<br />
ORDER BY hire_date DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, first_name, job_id, hire_date<br />
from employees<br />
where hire_date > (select max(hire_date)<br />
from employees<br />
where department_id = (select department_id<br />
from departments<br />
where upper(department_name) = 'IT'))<br />
and (department_id != (select department_id<br />
from departments<br />
where upper(department_name) = 'EXECUTIVE')<br />
or department_id IS NULL)<br />
order by hire_date desc;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT last_name, first_name, job_id, hire_date<br />
FROM employees<br />
WHERE hire_date ><br />
(SELECT MAX(hire_date)<br />
FROM employees<br />
WHERE department_id =<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'IT'))<br />
AND (department_id !=<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'EXECUTIVE')<br />
OR department_id IS NULL)<br />
ORDER BY hire_date DESC;<br />
</pre><br />
<br />
===7.===<br />
''YuJin''<br />
<pre><br />
SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay",<br />
MIN(salary) "Lowest Dept/Job Pay"<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%VP'<br />
AND department_id NOT IN<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) IN ('IT','SALES'))<br />
GROUP BY department_id, job_id<br />
HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
ORDER BY 1, 2;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay", MIN(salary) "Lowest Dept/Job Pay"<br />
FROM employees<br />
WHERE department_id <> ALL (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) IN ('IT','SALES')<br />
)<br />
AND job_id NOT LIKE '%VP'<br />
GROUP BY department_id, job_id<br />
HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
ORDER BY department_id, job_id<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select department_id, job_id, avg(salary) "Average Dept/Job Pay", min(salary) "Lowest Dept/Job Pay"<br />
from employees<br />
where upper(job_id) not like '%VP'<br />
and department_id != all(select department_id<br />
from departments<br />
where upper(department_name) in ('IT','SALES'))<br />
group by department_id, job_id<br />
having min(salary) between 5000 and 15000<br />
order by department_id, job_id<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay",<br />
MIN(salary) "Lowest Dept/Job Pay"<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%VP'<br />
AND department_id != ALL<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) IN ('IT','SALES'))<br />
GROUP BY department_id, job_id<br />
HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
ORDER BY department_id, job_id;<br />
</pre><br />
<br />
===8.===<br />
''YuJin''<br />
<pre><br />
SELECT department_id, department_name,<br />
RPAD(TRIM(NVL(city, 'Not Assinged Yet')), 25, ' ') "City",<br />
COUNT(DISTINCT job_id) "# of Jobs"<br />
FROM employees<br />
RIGHT OUTER JOIN departments USING (department_id)<br />
LEFT OUTER JOIN locations USING (location_id)<br />
GROUP BY department_id, department_name, city;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT department_id, department_name, SUBSTR(NVL(city,'Not Assigned Yet'),1,25) City,<br />
COUNT(DISTINCT job_id) "# of Jobs"<br />
FROM locations l RIGHT OUTER JOIN departments d<br />
USING (location_id)<br />
LEFT OUTER JOIN employees e<br />
USING (department_id)<br />
GROUP BY department_id, department_name, city<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select department_id, department_name, substr(nvl(city,'Not Assigned Yet'),1,25) City,<br />
count(distinct job_id) "# of Jobs"<br />
from employees right outer join departments<br />
using (department_id)<br />
left outer join locations<br />
using (location_id)<br />
group by department_id, department_name, city<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT department_id, department_name,<br />
SUBSTR(NVL(city, 'Not Assinged Yet'),1, 25) "City",<br />
COUNT(DISTINCT job_id) "# of Jobs"<br />
FROM employees<br />
RIGHT OUTER JOIN departments USING (department_id)<br />
LEFT OUTER JOIN locations USING (location_id)<br />
GROUP BY department_id, department_name, city;<br />
<br />
</pre></div>
Yujin.jeong
https://wiki.cdot.senecacollege.ca/w/index.php?title=J.Y.S&diff=50847
J.Y.S
2010-11-27T20:06:04Z
<p>Yujin.jeong: /* DDL Statements (CREATE TABLE) */</p>
<hr />
<div>This page is to efficiently manage our group assignments!<br />
== Member List == <br />
*[mailto:,,yjeong@learn.senecac.on.ca,?subject=dbs301 Email All]<br />
<br />
{| class="wikitable sortable" border="1" cellpadding="5"<br />
! First Name !! Last Name !! wiki id !! Learn e-mail !! Phone<br />
|-<br />
|[[User:Yujin.jeong | YuJin]]||Jeong||[[Special:Contributions/yujin.jeong | yujin.jeong]]||[mailto:yjeong@learn.senecac.on.ca?sujbect=dbs301 yjeong]|| 647 - 832 - 6771<br />
|-<br />
<br />
|-<br />
|Saad|| || || ||<br />
|-<br />
<br />
|-<br />
|James|| || || ||<br />
|-<br />
|}<br />
<br />
=Assignment 3 (worth 9%)=<br />
==Due Date==<br />
Thursday, December 2nd, 3:00pm<br />
Printout of all TIC charts and DDL / DML statements<br />
<br />
==Solution==<br />
==== DDL Statements (CREATE TABLE) ====<br />
1. AREA<br />
<pre><br />
CREATE TABLE AREA<br />
(<br />
AreaID NUMBER(4) CONSTRAINT area_areaid_pk PRIMARY KEY,<br />
AreaName VARCHAR2(30) NOT NULL CONSTRAINT area_areaname_uk UNIQUE,<br />
ElmSchool VARCHAR2(40),<br />
MidSchool VARCHAR2(40),<br />
HighSchool VARCHAR2(40),<br />
Comments VARCHAR2(100)<br />
);<br />
</pre><br />
2. AGENCY<br />
<pre><br />
CREATE TABLE AGENCY<br />
(<br />
AgencyID NUMBER(4) CONSTRAINT agency_agencyid_pk PRIMARY KEY,<br />
AgencyName VARCHAR2(40) NOT NULL CONSTRAINT agency_agencyname_uk UNIQUE,<br />
AgencyPhone VARCHAR2(15) NOT NULL CONSTRAINT agency_agencyphone_uk UNIQUE<br />
);<br />
</pre><br />
3. PROPERTY<br />
<pre><br />
CREATE TABLE PROPERTY<br />
(<br />
PropertyID NUMBER(6) CONSTRAINT property_propertyid_pk PRIMARY KEY,<br />
Street VARCHAR2(40) NOT NULL,<br />
City VARCHAR2(30) NOT NULL,<br />
Province CHAR(2) NOT NULL,<br />
PostalCode CHAR(6) NOT NULL,<br />
Bedrooms NUMBER(1) NOT NULL<br />
CONSTRAINT property_bedrooms_ck CHECK(Bedrooms BETWEEN 1 AND 9),<br />
Bathrooms NUMBER(1) NOT NULL<br />
CONSTRAINT property_bathrooms_ck CHECK(Bathrooms BETWEEN 1 AND 9),<br />
ListingPrice NUMBER(6) NOT NULL<br />
CONSTRAINT property_listingprice_ck CHECK(ListingPrice BETWEEN 1 AND 4999999),<br />
AreaID NUMBER(4) NOT NULL<br />
CONSTRAINT property_areaid_fk FOREIGN KEY(AreaID) REFERENCES AREA(AreaID)<br />
);<br />
</pre><br />
4. SINGLE<br />
<pre><br />
CREATE TABLE SINGLE<br />
(<br />
PropertyID NUMBER(6), <br />
LotSize NUMBER(8,2) NOT NULL,<br />
CONSTRAINT single_propertyID_pk PRIMARY KEY(PropertyID), <br />
CONSTRAINT single_propertyID_fk FOREIGN KEY(PropertyID) REFERENCES PROPERTY(PropertyID),<br />
CONSTRAINT single_lotsize_ck CHECK(LotSize > 0)<br />
);<br />
<br />
</pre><br />
5. CONDO<br />
<pre><br />
CREATE TABLE CONDO<br />
(<br />
PropertyID NUMBER(6),<br />
Fee NUMBER(8,2) NOT NULL, <br />
CONSTRAINT condo_propertyID_pk PRIMARY KEY(PropertyID),<br />
CONSTRAINT condo_propertyID_fk FOREIGN KEY(PropertyID) REFERENCES PROPERTY(PropertyID),<br />
CONSTRAINT condo_fee_ck CHECK(Fee > 0)<br />
);<br />
<br />
</pre><br />
6. OUTLET<br />
<pre><br />
CREATE TABLE OUTLET<br />
(<br />
OutletID NUMBER(4), <br />
OutletName VARCHAR2(40) NOT NULL,<br />
OutletPhone VARCHAR2(15) NOT NULL,<br />
OutletType CHAR(1) NOT NULL,<br />
CONSTRAINT outlet_outletid_pk PRIMARY KEY(OutletID),<br />
CONSTRAINT outlet_outlettype_ck CHECK(OutletType IN('N','M','W','F')),<br />
CONSTRAINT outlet_outletname_type_uk UNIQUE(OutletName, OutletType)<br />
);<br />
<br />
</pre><br />
7. ADVERTISEMENT<br />
<pre><br />
CREATE TABLE OUTLET<br />
(<br />
OutletID NUMBER(4), <br />
OutletName VARCHAR2(40) NOT NULL,<br />
OutletPhone VARCHAR2(15) NOT NULL,<br />
OutletType CHAR(1) NOT NULL,<br />
CONSTRAINT outlet_outletid_pk PRIMARY KEY(OutletID),<br />
CONSTRAINT outlet_outlettype_ck CHECK(OutletType IN('N','M','W','F')),<br />
CONSTRAINT outlet_outletname_type_uk UNIQUE(OutletName, OutletType)<br />
);<br />
</pre><br />
8. CLIENT<br />
<pre><br />
CREATE TABLE CLIENT<br />
(<br />
ClientID NUMBER(6),<br />
Fname VARCHAR2(30) NOT NULL,<br />
Lname VARCHAR2(30) NOT NULL,<br />
Phone VARCHAR2(15) NOT NULL,<br />
Email VARCHAR2(40),<br />
RefID NUMBER(6),<br />
CONSTRAINT client_clientid_pk PRIMARY KEY(ClientID),<br />
CONSTRAINT client_phone_uk UNIQUE(Phone),<br />
CONSTRAINT client_email_uk UNIQUE(Email),<br />
CONSTRAINT client_refid_fk FOREIGN KEY(RefID) REFERENCES CLEINT(ClientID)<br />
);<br />
</pre><br />
9. DEED<br />
<pre><br />
CREATE TABLE DEED<br />
(<br />
PropertyID NUMBER(6),<br />
SellerID NUMBER(6),<br />
OwnPct NUMBER(5,2) NOT NULL,<br />
BuyerID NUMBER(6),<br />
BuyPrice NUMBER(7),<br />
CONSTRAINT deed_deedid_pk PRIMARY KEY(PropertyID, SellerID),<br />
CONSTRAINT deed_propertyid_fk FOREIGN KEY(PropertyID) REFERENCES PROPERTY(PropertyID),<br />
CONSTRAINT deed_sellerid_fk FOREIGN KEY(SellerID) REFERENCES CLIENT(ClientID),<br />
CONSTRAINT deed_buyerid_fk FOREIGN KEY(BuyerID) REFERENCES CLIENT(ClientID),<br />
CONSTRAINT deed_ownpct_ck CHECK(OwnPct > 0 AND OwnPct <= 100),<br />
CONSTRAINT deed_buyprice_ck CHECK(BuyPrice BETWEEN 1 AND 4999999)<br />
);<br />
<br />
</pre><br />
<br />
=Assignment 1=<br />
==Due Date==<br />
Thursday, October 21st, 4:00pm<br />
Printout submission only( SELECT Statements + ALL outputs)<br />
==Description==<br />
[https://cs.senecac.on.ca/~nconkic/assign1.doc Assignment1]<br />
==Solution==<br />
<pre><br />
SQL> SELECT employee_id, RPAD(CONCAT(CONCAT(last_name, ', '),first_name), 25) "Full Name",<br />
<br />
2 job_id,<br />
<br />
3 TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
<br />
4 "Start Date"<br />
<br />
5 FROM employees<br />
<br />
6 WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
<br />
7 ORDER BY 4 DESC;<br />
<br />
<br />
<br />
EMPLOYEE_ID Full Name JOB_ID Start Date <br />
<br />
----------- ------------------------- ---------- ----------------------------------------- <br />
<br />
124 Mourgos, Kevin ST_MAN November First in the year 1999 <br />
<br />
178 Grant, Kimberely SA_REP May First in the year 1999 <br />
<br />
174 Abel, Ellen SA_REP May First in the year 1996 <br />
<br />
104 Ernst, Bruce IT_PROG May First in the year 1991 <br />
<br />
<br />
<br />
SQL> SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
<br />
2 || job_id || ' will have a new salary of $' || salary * 1.15 "Happy Employees"<br />
<br />
3 FROM employees<br />
<br />
4 WHERE salary BETWEEN 5000 AND 12000<br />
<br />
5 AND job_id IN ('IT_PROG', 'ST_CLERK')<br />
<br />
6 ORDER BY employee_id;<br />
<br />
<br />
<br />
Happy Employees <br />
<br />
----------------------------------------------------------------------------------------------------<br />
<br />
Employee named Alexander Hunold who is IT_PROG will have a new salary of $10350 <br />
<br />
Employee named Bruce Ernst who is IT_PROG will have a new salary of $6900 <br />
<br />
<br />
<br />
SQL> SELECT last_name, salary, job_id,<br />
<br />
2 RPAD(NVL(TO_CHAR(manager_id), 'No Manager'), 10) "Manager #",<br />
<br />
3 LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
<br />
4 FROM employees<br />
<br />
5 WHERE (job_id LIKE 'MK%' OR manager_id IS NULL)<br />
<br />
6 AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
<br />
7 ORDER BY 2 DESC;<br />
<br />
<br />
<br />
LAST_NAME SALARY JOB_ID Manager # Total Income <br />
<br />
------------------------- ---------- ---------- ---------- ------------ <br />
<br />
King 24000 AD_PRES No Manager $288,000 <br />
<br />
Hartstein 13000 MK_MAN 100 $156,000 <br />
<br />
<br />
<br />
SQL> SELECT RPAD(CONCAT(CONCAT(first_name,' '),last_name), 25) "Employee", job_id,<br />
<br />
2 LPAD(TRIM(TO_CHAR(salary, '$999,999')), 12, '=') "Salary", department_name<br />
<br />
3 FROM employees e JOIN departments d<br />
<br />
4 ON (e.department_id = d.department_id)<br />
<br />
5 WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
<br />
6 AND salary <<br />
<br />
7 (SELECT MAX(salary)<br />
<br />
8 FROM employees<br />
<br />
9 WHERE SUBSTR(job_id, 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
<br />
10 ORDER BY 1;<br />
<br />
<br />
<br />
Employee JOB_ID Salary DEPARTMENT_NAME <br />
<br />
------------------------- ---------- ------------ ------------------------------ <br />
<br />
Eleni Zlotkey SA_MAN =====$10,500 Sales <br />
<br />
Jonathon Taylor SA_REP ======$8,600 Sales <br />
<br />
Pat Fay MK_REP ======$6,000 Marketing <br />
<br />
<br />
<br />
SQL><br />
<br />
SQL> SELECT last_name, salary, job_id<br />
<br />
2 FROM employees<br />
<br />
3 WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
<br />
4 AND salary ><br />
<br />
5 (SELECT MAX(salary)<br />
<br />
6 FROM employees<br />
<br />
7 JOIN departments USING (department_id)<br />
<br />
8 JOIN locations USING (location_id)<br />
<br />
9 WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
<br />
<br />
LAST_NAME SALARY JOB_ID <br />
<br />
------------------------- ---------- ---------- <br />
<br />
Kochhar 17000 AD_VP <br />
<br />
De Haan 17000 AD_VP <br />
<br />
<br />
<br />
SQL> SELECT last_name, first_name, job_id, hire_date<br />
<br />
2 FROM employees<br />
<br />
3 WHERE hire_date ><br />
<br />
4 (SELECT MAX(hire_date)<br />
<br />
5 FROM employees<br />
<br />
6 WHERE department_id =<br />
<br />
7 (SELECT department_id<br />
<br />
8 FROM departments<br />
<br />
9 WHERE UPPER(department_name) = 'IT'))<br />
<br />
10 AND (department_id !=<br />
<br />
11 (SELECT department_id<br />
<br />
12 FROM departments<br />
<br />
13 WHERE UPPER(department_name) = 'EXECUTIVE')<br />
<br />
14 OR department_id IS NULL)<br />
<br />
15 ORDER BY 4 DESC;<br />
<br />
<br />
<br />
LAST_NAME FIRST_NAME JOB_ID HIRE_DATE <br />
<br />
------------------------- -------------------- ---------- --------- <br />
<br />
Zlotkey Eleni SA_MAN 29-JAN-00 <br />
<br />
Mourgos Kevin ST_MAN 16-NOV-99 <br />
<br />
Grant Kimberely SA_REP 24-MAY-99 <br />
<br />
<br />
<br />
SQL> SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay",<br />
<br />
2 MIN(salary) "Lowest Dept/Job Pay"<br />
<br />
3 FROM employees<br />
<br />
4 WHERE UPPER(job_id) NOT LIKE '%VP'<br />
<br />
5 AND department_id NOT IN<br />
<br />
6 (SELECT department_id<br />
<br />
7 FROM departments<br />
<br />
8 WHERE UPPER(department_name) IN ('IT','SALES'))<br />
<br />
9 GROUP BY department_id, job_id<br />
<br />
10 HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
<br />
11 ORDER BY 1, 2;<br />
<br />
<br />
<br />
DEPARTMENT_ID JOB_ID Average Dept/Job Pay Lowest Dept/Job Pay <br />
<br />
------------- ---------- -------------------- ------------------- <br />
<br />
20 MK_MAN 13000 13000 <br />
<br />
20 MK_REP 6000 6000 <br />
<br />
50 ST_MAN 5800 5800 <br />
<br />
110 AC_ACCOUNT 8300 8300 <br />
<br />
110 AC_MGR 12000 12000 <br />
<br />
<br />
<br />
SQL> SELECT department_id, department_name,<br />
<br />
2 RPAD(TRIM(NVL(city, 'Not Assinged Yet')), 25, ' ') "City",<br />
<br />
3 COUNT(DISTINCT job_id) "# of Jobs"<br />
<br />
4 FROM employees<br />
<br />
5 RIGHT OUTER JOIN departments USING (department_id)<br />
<br />
6 LEFT OUTER JOIN locations USING (location_id)<br />
<br />
7 GROUP BY department_id, department_name, city;<br />
<br />
<br />
<br />
DEPARTMENT_ID DEPARTMENT_NAME City # of Jobs <br />
<br />
------------- ------------------------------ ------------------------- ---------- <br />
<br />
110 Accounting Seattle 2 <br />
<br />
50 Shipping South San Francisco 2 <br />
<br />
80 Sales Oxford 2 <br />
<br />
10 Administration Seattle 1 <br />
<br />
190 Contracting Seattle 0 <br />
<br />
90 Executive Seattle 2 <br />
<br />
20 Marketing Toronto 2 <br />
<br />
60 IT Southlake 1 <br />
<br />
<br />
<br />
8 rows selected.<br />
<br />
<br />
<br />
SQL> spool off<br />
</pre><br />
==SQL Statements==<br />
===1.===<br />
''YuJin''<br />
<pre><br />
SELECT employee_id, RPAD(CONCAT(CONCAT(last_name, ', '),first_name), 25) "Full Name",<br />
job_id,<br />
TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
"Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
ORDER BY 4 DESC;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT employee_id,<br />
SUBSTR(last_name ||' '|| first_name, 1, 25) "Full Name",<br />
job_id,<br />
TO_CHAR(hire_date,'fmMonth "First in the year" YYYY') "Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date,'fmMON') IN ('MAY','NOV')<br />
ORDER BY hire_date DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select employee_id "Emp#",<br />
(last_name ||', '|| first_name) "Full Name",<br />
job_id "Job",<br />
to_char(trunc(hire_date, 'MONTH'), 'FMMonth Ddspth "in the year"<br />
YYYY') "Start Date"<br />
from employees<br />
where to_char(hire_date, 'fmMonth') in ('May', 'November')<br />
order by hire_date desc;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT employee_id, SUBSTR(last_name ||' '|| first_name, 1, 25) "Full Name",<br />
job_id,<br />
TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
"Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
ORDER BY hire_date DESC;<br />
</pre><br />
<br />
===2.===<br />
''YuJin''<br />
<pre><br />
SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
|| job_id || ' will have a new salary of $' || salary * 1.15 "Happy Employees"<br />
FROM employees<br />
WHERE salary BETWEEN 5000 AND 12000<br />
AND job_id IN ('IT_PROG', 'ST_CLERK')<br />
ORDER BY employee_id;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT 'Employee named '||first_name||' '||last_name||' who is '||job_id||' will have a new salary of $'|| salary *1.15 "Happy Employees"<br />
FROM employees<br />
WHERE job_id IN ('IT_PROG','ST CLERK')<br />
AND (salary BETWEEN 5000 AND 12000)<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
Select ('Employee named ' || first_name ||' '|| last_name || ' who is ' || job_id || ' will have a new salary of ' || (salary*1.15)) "Happy Employees"<br />
From employees<br />
Where salary between 5000 and 12000<br />
And upper(job_id) in ('IT_PROG', 'ST_CLERK')<br />
order by employee_id;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
|| job_id || ' will have a new salary of ' || TO_CHAR(salary * 1.15, 'fm$999999') "Happy Employees"<br />
FROM employees<br />
WHERE salary BETWEEN 5000 AND 12000<br />
AND UPPER(job_id) IN ('IT_PROG', 'ST_CLERK')<br />
ORDER BY employee_id;<br />
</pre><br />
<br />
===3.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, salary, job_id,<br />
RPAD(NVL(TO_CHAR(manager_id), 'No Manager'), 10) "Manager #",<br />
LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
FROM employees<br />
WHERE (job_id LIKE 'MK%' OR manager_id IS NULL)<br />
AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
ORDER BY 2 DESC;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, salary, job_id, NVL(TO_CHAR(manager_id),'No Manager') Manager#,<br />
TO_CHAR(salary*12,'$999,999') "Total Income"<br />
FROM employees<br />
WHERE (manager_id IS NULL<br />
OR job_id LIKE 'MK%')<br />
AND ( salary* (NVL(commission_pct,0) + 1) + 1000 ) > 10000<br />
ORDER BY salary DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, salary, job_id, nvl(to_char(manager_id),'No Manager') Manager#,<br />
to_char(salary*12,'$999,999') "Total Income"<br />
from employees<br />
where (upper(job_id) like 'MK%' or manager_id IS NULL)<br />
and salary * (1 + nvl(commission_pct, 0)) + 1000 > 10000<br />
order by 2 desc;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT last_name, salary, job_id,<br />
SUBSTR(NVL(TO_CHAR(manager_id), 'No Manager'), 1, 10) "Manager #",<br />
LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
FROM employees<br />
WHERE (UPPER(job_id) LIKE 'MK%' OR manager_id IS NULL)<br />
AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
ORDER BY salary DESC;<br />
<br />
</pre><br />
<br />
===4.===<br />
''YuJin''<br />
<pre><br />
SELECT RPAD(CONCAT(CONCAT(first_name,' '),last_name), 25) "Employee", job_id,<br />
LPAD(TRIM(TO_CHAR(salary, '$999,999')), 12, '=') "Salary", department_name<br />
FROM employees e JOIN departments d<br />
ON (e.department_id = d.department_id)<br />
WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
AND salary <<br />
(SELECT MAX(salary)<br />
FROM employees<br />
WHERE SUBSTR(job_id, 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
ORDER BY 1;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT SUBSTR(first_name||' '||last_name, 25) Employee, job_id,<br />
LPAD(TO_CHAR(salary,'$99,999'), 12, '=') Salary, department_name<br />
FROM employees e JOIN departments d<br />
ON (d.department_id=e.department_id)<br />
WHERE salary < (SELECT MAX(salary)<br />
FROM employees<br />
WHERE UPPER(SUBSTR(job_id,4)) NOT IN ('VP', 'PRES', 'MAN', 'MGR')<br />
)<br />
AND UPPER(department_name) IN ('MARKETING','SALES')<br />
ORDER BY first_name, last_name<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select substr(first_name ||' '|| last_name) "Employee", job_id, to_char(salary, '$999,999', 12, '=') Salary, department_name<br />
from employees e join departments d<br />
on (e.department_id = d.department_id)<br />
where upper(department_name) in ('MARKETING', 'SALES')<br />
and salary < (select max(salary)<br />
from employees<br />
where substr(job_id,4) not in ('PRES','VP','MAN','MGR'))<br />
order by "Employee";<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT SUBSTR(first_name ||' '|| last_name, 1, 25) "Employee", job_id,<br />
LPAD(TO_CHAR(salary, 'fm$999,999'), 12, '=') "Salary", department_name<br />
FROM employees e JOIN departments d<br />
ON (e.department_id = d.department_id)<br />
WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
AND salary <<br />
(SELECT MAX(salary)<br />
FROM employees<br />
WHERE SUBSTR(UPPER(job_id), 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
ORDER BY 1;<br />
</pre><br />
<br />
===5.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
AND salary ><br />
(SELECT MAX(salary)<br />
FROM employees<br />
JOIN departments USING (department_id)<br />
JOIN locations USING (location_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE salary > (SELECT MAX(salary)<br />
FROM locations JOIN departments<br />
USING (location_id)<br />
JOIN employees<br />
USING (department_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD')<br />
)<br />
AND UPPER(job_id) NOT LIKE '%PRES'<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, salary, job_id<br />
from employees<br />
where salary > (select max(salary)<br />
from employees join departments<br />
using (department_id)<br />
join locations<br />
using (location_id)<br />
where upper(city) in ('TORONTO','OXFORD'))<br />
and upper(job_id) not like '%PRES'<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
AND salary ><br />
(SELECT MAX(salary)<br />
FROM employees<br />
JOIN departments USING (department_id)<br />
JOIN locations USING (location_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
</pre><br />
<br />
===6.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, first_name, job_id, hire_date<br />
FROM employees<br />
WHERE hire_date ><br />
(SELECT MAX(hire_date)<br />
FROM employees<br />
WHERE department_id =<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'IT'))<br />
AND (department_id !=<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'EXECUTIVE')<br />
OR department_id IS NULL)<br />
ORDER BY 4 DESC;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, first_name, job_id, hire_date<br />
FROM employees e<br />
WHERE hire_date > (SELECT MAX(hire_date)<br />
FROM employees<br />
WHERE department_id = (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'IT'<br />
)<br />
)<br />
AND (department_id <> (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) ='EXECUTIVE')<br />
OR department_id IS NULL)<br />
ORDER BY hire_date DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, first_name, job_id, hire_date<br />
from employees<br />
where hire_date > (select max(hire_date)<br />
from employees<br />
where department_id = (select department_id<br />
from departments<br />
where upper(department_name) = 'IT'))<br />
and (department_id != (select department_id<br />
from departments<br />
where upper(department_name) = 'EXECUTIVE')<br />
or department_id IS NULL)<br />
order by hire_date desc;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT last_name, first_name, job_id, hire_date<br />
FROM employees<br />
WHERE hire_date ><br />
(SELECT MAX(hire_date)<br />
FROM employees<br />
WHERE department_id =<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'IT'))<br />
AND (department_id !=<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'EXECUTIVE')<br />
OR department_id IS NULL)<br />
ORDER BY hire_date DESC;<br />
</pre><br />
<br />
===7.===<br />
''YuJin''<br />
<pre><br />
SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay",<br />
MIN(salary) "Lowest Dept/Job Pay"<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%VP'<br />
AND department_id NOT IN<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) IN ('IT','SALES'))<br />
GROUP BY department_id, job_id<br />
HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
ORDER BY 1, 2;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay", MIN(salary) "Lowest Dept/Job Pay"<br />
FROM employees<br />
WHERE department_id <> ALL (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) IN ('IT','SALES')<br />
)<br />
AND job_id NOT LIKE '%VP'<br />
GROUP BY department_id, job_id<br />
HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
ORDER BY department_id, job_id<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select department_id, job_id, avg(salary) "Average Dept/Job Pay", min(salary) "Lowest Dept/Job Pay"<br />
from employees<br />
where upper(job_id) not like '%VP'<br />
and department_id != all(select department_id<br />
from departments<br />
where upper(department_name) in ('IT','SALES'))<br />
group by department_id, job_id<br />
having min(salary) between 5000 and 15000<br />
order by department_id, job_id<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay",<br />
MIN(salary) "Lowest Dept/Job Pay"<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%VP'<br />
AND department_id != ALL<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) IN ('IT','SALES'))<br />
GROUP BY department_id, job_id<br />
HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
ORDER BY department_id, job_id;<br />
</pre><br />
<br />
===8.===<br />
''YuJin''<br />
<pre><br />
SELECT department_id, department_name,<br />
RPAD(TRIM(NVL(city, 'Not Assinged Yet')), 25, ' ') "City",<br />
COUNT(DISTINCT job_id) "# of Jobs"<br />
FROM employees<br />
RIGHT OUTER JOIN departments USING (department_id)<br />
LEFT OUTER JOIN locations USING (location_id)<br />
GROUP BY department_id, department_name, city;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT department_id, department_name, SUBSTR(NVL(city,'Not Assigned Yet'),1,25) City,<br />
COUNT(DISTINCT job_id) "# of Jobs"<br />
FROM locations l RIGHT OUTER JOIN departments d<br />
USING (location_id)<br />
LEFT OUTER JOIN employees e<br />
USING (department_id)<br />
GROUP BY department_id, department_name, city<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select department_id, department_name, substr(nvl(city,'Not Assigned Yet'),1,25) City,<br />
count(distinct job_id) "# of Jobs"<br />
from employees right outer join departments<br />
using (department_id)<br />
left outer join locations<br />
using (location_id)<br />
group by department_id, department_name, city<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT department_id, department_name,<br />
SUBSTR(NVL(city, 'Not Assinged Yet'),1, 25) "City",<br />
COUNT(DISTINCT job_id) "# of Jobs"<br />
FROM employees<br />
RIGHT OUTER JOIN departments USING (department_id)<br />
LEFT OUTER JOIN locations USING (location_id)<br />
GROUP BY department_id, department_name, city;<br />
<br />
</pre></div>
Yujin.jeong
https://wiki.cdot.senecacollege.ca/w/index.php?title=J.Y.S&diff=50846
J.Y.S
2010-11-27T20:01:54Z
<p>Yujin.jeong: </p>
<hr />
<div>This page is to efficiently manage our group assignments!<br />
== Member List == <br />
*[mailto:,,yjeong@learn.senecac.on.ca,?subject=dbs301 Email All]<br />
<br />
{| class="wikitable sortable" border="1" cellpadding="5"<br />
! First Name !! Last Name !! wiki id !! Learn e-mail !! Phone<br />
|-<br />
|[[User:Yujin.jeong | YuJin]]||Jeong||[[Special:Contributions/yujin.jeong | yujin.jeong]]||[mailto:yjeong@learn.senecac.on.ca?sujbect=dbs301 yjeong]|| 647 - 832 - 6771<br />
|-<br />
<br />
|-<br />
|Saad|| || || ||<br />
|-<br />
<br />
|-<br />
|James|| || || ||<br />
|-<br />
|}<br />
<br />
=Assignment 3 (worth 9%)=<br />
==Due Date==<br />
Thursday, December 2nd, 3:00pm<br />
Printout of all TIC charts and DDL / DML statements<br />
<br />
==Solution==<br />
==== DDL Statements (CREATE TABLE) ====<br />
1. AREA<br />
<pre><br />
CREATE TABLE AREA<br />
(<br />
AreaID NUMBER(4) CONSTRAINT area_areaid_pk PRIMARY KEY,<br />
AreaName VARCHAR2(30) NOT NULL CONSTRAINT area_areaname_uk UNIQUE,<br />
ElmSchool VARCHAR2(40),<br />
MidSchool VARCHAR2(40),<br />
HighSchool VARCHAR2(40),<br />
Comments VARCHAR2(100)<br />
);<br />
</pre><br />
2. AGENCY<br />
<pre><br />
CREATE TABLE AGENCY<br />
(<br />
AgencyID NUMBER(4) CONSTRAINT agency_agencyid_pk PRIMARY KEY,<br />
AgencyName VARCHAR2(40) NOT NULL CONSTRAINT agency_agencyname_uk UNIQUE,<br />
AgencyPhone VARCHAR2(15) NOT NULL CONSTRAINT agency_agencyphone_uk UNIQUE<br />
);<br />
</pre><br />
3. PROPERTY<br />
<pre><br />
CREATE TABLE PROPERTY<br />
(<br />
PropertyID NUMBER(6) CONSTRAINT property_propertyid_pk PRIMARY KEY,<br />
Street VARCHAR2(40) NOT NULL,<br />
City VARCHAR2(30) NOT NULL,<br />
Province CHAR(2) NOT NULL,<br />
PostalCode CHAR(6) NOT NULL,<br />
Bedrooms NUMBER(1) NOT NULL<br />
CONSTRAINT property_bedrooms_ck CHECK(Bedrooms BETWEEN 1 AND 9),<br />
Bathrooms NUMBER(1) NOT NULL<br />
CONSTRAINT property_bathrooms_ck CHECK(Bathrooms BETWEEN 1 AND 9),<br />
ListingPrice NUMBER(6) NOT NULL<br />
CONSTRAINT property_listingprice_ck CHECK(ListingPrice BETWEEN 1 AND 4999999),<br />
AreaID NUMBER(4) NOT NULL<br />
CONSTRAINT property_areaid_fk FOREIGN KEY(AreaID) REFERENCES AREA(AreaID)<br />
);<br />
</pre><br />
4. SINGLE<br />
<pre><br />
CREATE TABLE SINGLE<br />
(<br />
PropertyID NUMBER(6) CONSTRAINT single_propertyID_pk PRIMARY KEY<br />
CONSTRAINT single_propertyID_fk FOREIGN KEY(PropertyID)<br />
REFERENCES PROPERTY(PropertyID),<br />
LotSize NUMBER(8,2) NOT NULL CONSTRAINT single_lotsize_ck CHECK(LotSize > 0)<br />
);<br />
<br />
</pre><br />
5. CONDO<br />
<pre><br />
CREATE TABLE CONDO<br />
(<br />
PropertyID NUMBER(6) CONSTRAINT condo_propertyID_pk PRIMARY KEY<br />
CONSTRAINT condo_propertyID_fk FOREIGN KEY(PropertyID)<br />
REFERENCES PROPERTY(PropertyID),<br />
Fee NUMBER(8,2) NOT NULL CONSTRAINT condo_fee_ck CHECK(Fee > 0)<br />
);<br />
<br />
</pre><br />
6. OUTLET<br />
<pre><br />
CREATE TABLE OUTLET<br />
(<br />
OutletID NUMBER(4), <br />
OutletName VARCHAR2(40) NOT NULL,<br />
OutletPhone VARCHAR2(15) NOT NULL,<br />
OutletType CHAR(1) NOT NULL,<br />
CONSTRAINT outlet_outletid_pk PRIMARY KEY(OutletID),<br />
CONSTRAINT outlet_outlettype_ck CHECK(OutletType IN('N','M','W','F')),<br />
CONSTRAINT outlet_outletname_type_uk UNIQUE(OutletName, OutletType)<br />
);<br />
<br />
</pre><br />
7. ADVERTISEMENT<br />
<pre><br />
CREATE TABLE OUTLET<br />
(<br />
OutletID NUMBER(4), <br />
OutletName VARCHAR2(40) NOT NULL,<br />
OutletPhone VARCHAR2(15) NOT NULL,<br />
OutletType CHAR(1) NOT NULL,<br />
CONSTRAINT outlet_outletid_pk PRIMARY KEY(OutletID),<br />
CONSTRAINT outlet_outlettype_ck CHECK(OutletType IN('N','M','W','F')),<br />
CONSTRAINT outlet_outletname_type_uk UNIQUE(OutletName, OutletType)<br />
);<br />
</pre><br />
8. CLIENT<br />
<pre><br />
CREATE TABLE CLIENT<br />
(<br />
ClientID NUMBER(6),<br />
Fname VARCHAR2(30) NOT NULL,<br />
Lname VARCHAR2(30) NOT NULL,<br />
Phone VARCHAR2(15) NOT NULL,<br />
Email VARCHAR2(40),<br />
RefID NUMBER(6),<br />
CONSTRAINT client_clientid_pk PRIMARY KEY(ClientID),<br />
CONSTRAINT client_phone_uk UNIQUE(Phone),<br />
CONSTRAINT client_email_uk UNIQUE(Email),<br />
CONSTRAINT client_refid_fk FOREIGN KEY(RefID) REFERENCES CLEINT(ClientID)<br />
);<br />
</pre><br />
9. DEED<br />
<pre><br />
CREATE TABLE DEED<br />
(<br />
PropertyID NUMBER(6),<br />
SellerID NUMBER(6),<br />
OwnPct NUMBER(5,2) NOT NULL,<br />
BuyerID NUMBER(6),<br />
BuyPrice NUMBER(7),<br />
CONSTRAINT deed_deedid_pk PRIMARY KEY(PropertyID, SellerID),<br />
CONSTRAINT deed_propertyid_fk FOREIGN KEY(PropertyID) REFERENCES PROPERTY(PropertyID),<br />
CONSTRAINT deed_sellerid_fk FOREIGN KEY(SellerID) REFERENCES CLIENT(ClientID),<br />
CONSTRAINT deed_buyerid_fk FOREIGN KEY(BuyerID) REFERENCES CLIENT(ClientID),<br />
CONSTRAINT deed_ownpct_ck CHECK(OwnPct > 0 AND OwnPct <= 100),<br />
CONSTRAINT deed_buyprice_ck CHECK(BuyPrice BETWEEN 1 AND 4999999)<br />
);<br />
<br />
</pre><br />
=Assignment 1=<br />
==Due Date==<br />
Thursday, October 21st, 4:00pm<br />
Printout submission only( SELECT Statements + ALL outputs)<br />
==Description==<br />
[https://cs.senecac.on.ca/~nconkic/assign1.doc Assignment1]<br />
==Solution==<br />
<pre><br />
SQL> SELECT employee_id, RPAD(CONCAT(CONCAT(last_name, ', '),first_name), 25) "Full Name",<br />
<br />
2 job_id,<br />
<br />
3 TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
<br />
4 "Start Date"<br />
<br />
5 FROM employees<br />
<br />
6 WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
<br />
7 ORDER BY 4 DESC;<br />
<br />
<br />
<br />
EMPLOYEE_ID Full Name JOB_ID Start Date <br />
<br />
----------- ------------------------- ---------- ----------------------------------------- <br />
<br />
124 Mourgos, Kevin ST_MAN November First in the year 1999 <br />
<br />
178 Grant, Kimberely SA_REP May First in the year 1999 <br />
<br />
174 Abel, Ellen SA_REP May First in the year 1996 <br />
<br />
104 Ernst, Bruce IT_PROG May First in the year 1991 <br />
<br />
<br />
<br />
SQL> SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
<br />
2 || job_id || ' will have a new salary of $' || salary * 1.15 "Happy Employees"<br />
<br />
3 FROM employees<br />
<br />
4 WHERE salary BETWEEN 5000 AND 12000<br />
<br />
5 AND job_id IN ('IT_PROG', 'ST_CLERK')<br />
<br />
6 ORDER BY employee_id;<br />
<br />
<br />
<br />
Happy Employees <br />
<br />
----------------------------------------------------------------------------------------------------<br />
<br />
Employee named Alexander Hunold who is IT_PROG will have a new salary of $10350 <br />
<br />
Employee named Bruce Ernst who is IT_PROG will have a new salary of $6900 <br />
<br />
<br />
<br />
SQL> SELECT last_name, salary, job_id,<br />
<br />
2 RPAD(NVL(TO_CHAR(manager_id), 'No Manager'), 10) "Manager #",<br />
<br />
3 LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
<br />
4 FROM employees<br />
<br />
5 WHERE (job_id LIKE 'MK%' OR manager_id IS NULL)<br />
<br />
6 AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
<br />
7 ORDER BY 2 DESC;<br />
<br />
<br />
<br />
LAST_NAME SALARY JOB_ID Manager # Total Income <br />
<br />
------------------------- ---------- ---------- ---------- ------------ <br />
<br />
King 24000 AD_PRES No Manager $288,000 <br />
<br />
Hartstein 13000 MK_MAN 100 $156,000 <br />
<br />
<br />
<br />
SQL> SELECT RPAD(CONCAT(CONCAT(first_name,' '),last_name), 25) "Employee", job_id,<br />
<br />
2 LPAD(TRIM(TO_CHAR(salary, '$999,999')), 12, '=') "Salary", department_name<br />
<br />
3 FROM employees e JOIN departments d<br />
<br />
4 ON (e.department_id = d.department_id)<br />
<br />
5 WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
<br />
6 AND salary <<br />
<br />
7 (SELECT MAX(salary)<br />
<br />
8 FROM employees<br />
<br />
9 WHERE SUBSTR(job_id, 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
<br />
10 ORDER BY 1;<br />
<br />
<br />
<br />
Employee JOB_ID Salary DEPARTMENT_NAME <br />
<br />
------------------------- ---------- ------------ ------------------------------ <br />
<br />
Eleni Zlotkey SA_MAN =====$10,500 Sales <br />
<br />
Jonathon Taylor SA_REP ======$8,600 Sales <br />
<br />
Pat Fay MK_REP ======$6,000 Marketing <br />
<br />
<br />
<br />
SQL><br />
<br />
SQL> SELECT last_name, salary, job_id<br />
<br />
2 FROM employees<br />
<br />
3 WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
<br />
4 AND salary ><br />
<br />
5 (SELECT MAX(salary)<br />
<br />
6 FROM employees<br />
<br />
7 JOIN departments USING (department_id)<br />
<br />
8 JOIN locations USING (location_id)<br />
<br />
9 WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
<br />
<br />
LAST_NAME SALARY JOB_ID <br />
<br />
------------------------- ---------- ---------- <br />
<br />
Kochhar 17000 AD_VP <br />
<br />
De Haan 17000 AD_VP <br />
<br />
<br />
<br />
SQL> SELECT last_name, first_name, job_id, hire_date<br />
<br />
2 FROM employees<br />
<br />
3 WHERE hire_date ><br />
<br />
4 (SELECT MAX(hire_date)<br />
<br />
5 FROM employees<br />
<br />
6 WHERE department_id =<br />
<br />
7 (SELECT department_id<br />
<br />
8 FROM departments<br />
<br />
9 WHERE UPPER(department_name) = 'IT'))<br />
<br />
10 AND (department_id !=<br />
<br />
11 (SELECT department_id<br />
<br />
12 FROM departments<br />
<br />
13 WHERE UPPER(department_name) = 'EXECUTIVE')<br />
<br />
14 OR department_id IS NULL)<br />
<br />
15 ORDER BY 4 DESC;<br />
<br />
<br />
<br />
LAST_NAME FIRST_NAME JOB_ID HIRE_DATE <br />
<br />
------------------------- -------------------- ---------- --------- <br />
<br />
Zlotkey Eleni SA_MAN 29-JAN-00 <br />
<br />
Mourgos Kevin ST_MAN 16-NOV-99 <br />
<br />
Grant Kimberely SA_REP 24-MAY-99 <br />
<br />
<br />
<br />
SQL> SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay",<br />
<br />
2 MIN(salary) "Lowest Dept/Job Pay"<br />
<br />
3 FROM employees<br />
<br />
4 WHERE UPPER(job_id) NOT LIKE '%VP'<br />
<br />
5 AND department_id NOT IN<br />
<br />
6 (SELECT department_id<br />
<br />
7 FROM departments<br />
<br />
8 WHERE UPPER(department_name) IN ('IT','SALES'))<br />
<br />
9 GROUP BY department_id, job_id<br />
<br />
10 HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
<br />
11 ORDER BY 1, 2;<br />
<br />
<br />
<br />
DEPARTMENT_ID JOB_ID Average Dept/Job Pay Lowest Dept/Job Pay <br />
<br />
------------- ---------- -------------------- ------------------- <br />
<br />
20 MK_MAN 13000 13000 <br />
<br />
20 MK_REP 6000 6000 <br />
<br />
50 ST_MAN 5800 5800 <br />
<br />
110 AC_ACCOUNT 8300 8300 <br />
<br />
110 AC_MGR 12000 12000 <br />
<br />
<br />
<br />
SQL> SELECT department_id, department_name,<br />
<br />
2 RPAD(TRIM(NVL(city, 'Not Assinged Yet')), 25, ' ') "City",<br />
<br />
3 COUNT(DISTINCT job_id) "# of Jobs"<br />
<br />
4 FROM employees<br />
<br />
5 RIGHT OUTER JOIN departments USING (department_id)<br />
<br />
6 LEFT OUTER JOIN locations USING (location_id)<br />
<br />
7 GROUP BY department_id, department_name, city;<br />
<br />
<br />
<br />
DEPARTMENT_ID DEPARTMENT_NAME City # of Jobs <br />
<br />
------------- ------------------------------ ------------------------- ---------- <br />
<br />
110 Accounting Seattle 2 <br />
<br />
50 Shipping South San Francisco 2 <br />
<br />
80 Sales Oxford 2 <br />
<br />
10 Administration Seattle 1 <br />
<br />
190 Contracting Seattle 0 <br />
<br />
90 Executive Seattle 2 <br />
<br />
20 Marketing Toronto 2 <br />
<br />
60 IT Southlake 1 <br />
<br />
<br />
<br />
8 rows selected.<br />
<br />
<br />
<br />
SQL> spool off<br />
</pre><br />
==SQL Statements==<br />
===1.===<br />
''YuJin''<br />
<pre><br />
SELECT employee_id, RPAD(CONCAT(CONCAT(last_name, ', '),first_name), 25) "Full Name",<br />
job_id,<br />
TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
"Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
ORDER BY 4 DESC;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT employee_id,<br />
SUBSTR(last_name ||' '|| first_name, 1, 25) "Full Name",<br />
job_id,<br />
TO_CHAR(hire_date,'fmMonth "First in the year" YYYY') "Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date,'fmMON') IN ('MAY','NOV')<br />
ORDER BY hire_date DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select employee_id "Emp#",<br />
(last_name ||', '|| first_name) "Full Name",<br />
job_id "Job",<br />
to_char(trunc(hire_date, 'MONTH'), 'FMMonth Ddspth "in the year"<br />
YYYY') "Start Date"<br />
from employees<br />
where to_char(hire_date, 'fmMonth') in ('May', 'November')<br />
order by hire_date desc;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT employee_id, SUBSTR(last_name ||' '|| first_name, 1, 25) "Full Name",<br />
job_id,<br />
TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
"Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
ORDER BY hire_date DESC;<br />
</pre><br />
<br />
===2.===<br />
''YuJin''<br />
<pre><br />
SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
|| job_id || ' will have a new salary of $' || salary * 1.15 "Happy Employees"<br />
FROM employees<br />
WHERE salary BETWEEN 5000 AND 12000<br />
AND job_id IN ('IT_PROG', 'ST_CLERK')<br />
ORDER BY employee_id;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT 'Employee named '||first_name||' '||last_name||' who is '||job_id||' will have a new salary of $'|| salary *1.15 "Happy Employees"<br />
FROM employees<br />
WHERE job_id IN ('IT_PROG','ST CLERK')<br />
AND (salary BETWEEN 5000 AND 12000)<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
Select ('Employee named ' || first_name ||' '|| last_name || ' who is ' || job_id || ' will have a new salary of ' || (salary*1.15)) "Happy Employees"<br />
From employees<br />
Where salary between 5000 and 12000<br />
And upper(job_id) in ('IT_PROG', 'ST_CLERK')<br />
order by employee_id;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
|| job_id || ' will have a new salary of ' || TO_CHAR(salary * 1.15, 'fm$999999') "Happy Employees"<br />
FROM employees<br />
WHERE salary BETWEEN 5000 AND 12000<br />
AND UPPER(job_id) IN ('IT_PROG', 'ST_CLERK')<br />
ORDER BY employee_id;<br />
</pre><br />
<br />
===3.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, salary, job_id,<br />
RPAD(NVL(TO_CHAR(manager_id), 'No Manager'), 10) "Manager #",<br />
LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
FROM employees<br />
WHERE (job_id LIKE 'MK%' OR manager_id IS NULL)<br />
AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
ORDER BY 2 DESC;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, salary, job_id, NVL(TO_CHAR(manager_id),'No Manager') Manager#,<br />
TO_CHAR(salary*12,'$999,999') "Total Income"<br />
FROM employees<br />
WHERE (manager_id IS NULL<br />
OR job_id LIKE 'MK%')<br />
AND ( salary* (NVL(commission_pct,0) + 1) + 1000 ) > 10000<br />
ORDER BY salary DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, salary, job_id, nvl(to_char(manager_id),'No Manager') Manager#,<br />
to_char(salary*12,'$999,999') "Total Income"<br />
from employees<br />
where (upper(job_id) like 'MK%' or manager_id IS NULL)<br />
and salary * (1 + nvl(commission_pct, 0)) + 1000 > 10000<br />
order by 2 desc;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT last_name, salary, job_id,<br />
SUBSTR(NVL(TO_CHAR(manager_id), 'No Manager'), 1, 10) "Manager #",<br />
LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
FROM employees<br />
WHERE (UPPER(job_id) LIKE 'MK%' OR manager_id IS NULL)<br />
AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
ORDER BY salary DESC;<br />
<br />
</pre><br />
<br />
===4.===<br />
''YuJin''<br />
<pre><br />
SELECT RPAD(CONCAT(CONCAT(first_name,' '),last_name), 25) "Employee", job_id,<br />
LPAD(TRIM(TO_CHAR(salary, '$999,999')), 12, '=') "Salary", department_name<br />
FROM employees e JOIN departments d<br />
ON (e.department_id = d.department_id)<br />
WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
AND salary <<br />
(SELECT MAX(salary)<br />
FROM employees<br />
WHERE SUBSTR(job_id, 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
ORDER BY 1;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT SUBSTR(first_name||' '||last_name, 25) Employee, job_id,<br />
LPAD(TO_CHAR(salary,'$99,999'), 12, '=') Salary, department_name<br />
FROM employees e JOIN departments d<br />
ON (d.department_id=e.department_id)<br />
WHERE salary < (SELECT MAX(salary)<br />
FROM employees<br />
WHERE UPPER(SUBSTR(job_id,4)) NOT IN ('VP', 'PRES', 'MAN', 'MGR')<br />
)<br />
AND UPPER(department_name) IN ('MARKETING','SALES')<br />
ORDER BY first_name, last_name<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select substr(first_name ||' '|| last_name) "Employee", job_id, to_char(salary, '$999,999', 12, '=') Salary, department_name<br />
from employees e join departments d<br />
on (e.department_id = d.department_id)<br />
where upper(department_name) in ('MARKETING', 'SALES')<br />
and salary < (select max(salary)<br />
from employees<br />
where substr(job_id,4) not in ('PRES','VP','MAN','MGR'))<br />
order by "Employee";<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT SUBSTR(first_name ||' '|| last_name, 1, 25) "Employee", job_id,<br />
LPAD(TO_CHAR(salary, 'fm$999,999'), 12, '=') "Salary", department_name<br />
FROM employees e JOIN departments d<br />
ON (e.department_id = d.department_id)<br />
WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
AND salary <<br />
(SELECT MAX(salary)<br />
FROM employees<br />
WHERE SUBSTR(UPPER(job_id), 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
ORDER BY 1;<br />
</pre><br />
<br />
===5.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
AND salary ><br />
(SELECT MAX(salary)<br />
FROM employees<br />
JOIN departments USING (department_id)<br />
JOIN locations USING (location_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE salary > (SELECT MAX(salary)<br />
FROM locations JOIN departments<br />
USING (location_id)<br />
JOIN employees<br />
USING (department_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD')<br />
)<br />
AND UPPER(job_id) NOT LIKE '%PRES'<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, salary, job_id<br />
from employees<br />
where salary > (select max(salary)<br />
from employees join departments<br />
using (department_id)<br />
join locations<br />
using (location_id)<br />
where upper(city) in ('TORONTO','OXFORD'))<br />
and upper(job_id) not like '%PRES'<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
AND salary ><br />
(SELECT MAX(salary)<br />
FROM employees<br />
JOIN departments USING (department_id)<br />
JOIN locations USING (location_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
</pre><br />
<br />
===6.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, first_name, job_id, hire_date<br />
FROM employees<br />
WHERE hire_date ><br />
(SELECT MAX(hire_date)<br />
FROM employees<br />
WHERE department_id =<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'IT'))<br />
AND (department_id !=<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'EXECUTIVE')<br />
OR department_id IS NULL)<br />
ORDER BY 4 DESC;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, first_name, job_id, hire_date<br />
FROM employees e<br />
WHERE hire_date > (SELECT MAX(hire_date)<br />
FROM employees<br />
WHERE department_id = (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'IT'<br />
)<br />
)<br />
AND (department_id <> (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) ='EXECUTIVE')<br />
OR department_id IS NULL)<br />
ORDER BY hire_date DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, first_name, job_id, hire_date<br />
from employees<br />
where hire_date > (select max(hire_date)<br />
from employees<br />
where department_id = (select department_id<br />
from departments<br />
where upper(department_name) = 'IT'))<br />
and (department_id != (select department_id<br />
from departments<br />
where upper(department_name) = 'EXECUTIVE')<br />
or department_id IS NULL)<br />
order by hire_date desc;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT last_name, first_name, job_id, hire_date<br />
FROM employees<br />
WHERE hire_date ><br />
(SELECT MAX(hire_date)<br />
FROM employees<br />
WHERE department_id =<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'IT'))<br />
AND (department_id !=<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'EXECUTIVE')<br />
OR department_id IS NULL)<br />
ORDER BY hire_date DESC;<br />
</pre><br />
<br />
===7.===<br />
''YuJin''<br />
<pre><br />
SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay",<br />
MIN(salary) "Lowest Dept/Job Pay"<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%VP'<br />
AND department_id NOT IN<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) IN ('IT','SALES'))<br />
GROUP BY department_id, job_id<br />
HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
ORDER BY 1, 2;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay", MIN(salary) "Lowest Dept/Job Pay"<br />
FROM employees<br />
WHERE department_id <> ALL (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) IN ('IT','SALES')<br />
)<br />
AND job_id NOT LIKE '%VP'<br />
GROUP BY department_id, job_id<br />
HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
ORDER BY department_id, job_id<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select department_id, job_id, avg(salary) "Average Dept/Job Pay", min(salary) "Lowest Dept/Job Pay"<br />
from employees<br />
where upper(job_id) not like '%VP'<br />
and department_id != all(select department_id<br />
from departments<br />
where upper(department_name) in ('IT','SALES'))<br />
group by department_id, job_id<br />
having min(salary) between 5000 and 15000<br />
order by department_id, job_id<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay",<br />
MIN(salary) "Lowest Dept/Job Pay"<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%VP'<br />
AND department_id != ALL<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) IN ('IT','SALES'))<br />
GROUP BY department_id, job_id<br />
HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
ORDER BY department_id, job_id;<br />
</pre><br />
<br />
===8.===<br />
''YuJin''<br />
<pre><br />
SELECT department_id, department_name,<br />
RPAD(TRIM(NVL(city, 'Not Assinged Yet')), 25, ' ') "City",<br />
COUNT(DISTINCT job_id) "# of Jobs"<br />
FROM employees<br />
RIGHT OUTER JOIN departments USING (department_id)<br />
LEFT OUTER JOIN locations USING (location_id)<br />
GROUP BY department_id, department_name, city;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT department_id, department_name, SUBSTR(NVL(city,'Not Assigned Yet'),1,25) City,<br />
COUNT(DISTINCT job_id) "# of Jobs"<br />
FROM locations l RIGHT OUTER JOIN departments d<br />
USING (location_id)<br />
LEFT OUTER JOIN employees e<br />
USING (department_id)<br />
GROUP BY department_id, department_name, city<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select department_id, department_name, substr(nvl(city,'Not Assigned Yet'),1,25) City,<br />
count(distinct job_id) "# of Jobs"<br />
from employees right outer join departments<br />
using (department_id)<br />
left outer join locations<br />
using (location_id)<br />
group by department_id, department_name, city<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT department_id, department_name,<br />
SUBSTR(NVL(city, 'Not Assinged Yet'),1, 25) "City",<br />
COUNT(DISTINCT job_id) "# of Jobs"<br />
FROM employees<br />
RIGHT OUTER JOIN departments USING (department_id)<br />
LEFT OUTER JOIN locations USING (location_id)<br />
GROUP BY department_id, department_name, city;<br />
<br />
</pre></div>
Yujin.jeong
https://wiki.cdot.senecacollege.ca/w/index.php?title=J.Y.S&diff=50845
J.Y.S
2010-11-27T19:23:21Z
<p>Yujin.jeong: </p>
<hr />
<div>This page is to efficiently manage our group assignments!<br />
== Member List == <br />
*[mailto:,,yjeong@learn.senecac.on.ca,?subject=dbs301 Email All]<br />
<br />
{| class="wikitable sortable" border="1" cellpadding="5"<br />
! First Name !! Last Name !! wiki id !! Learn e-mail !! Phone<br />
|-<br />
|[[User:Yujin.jeong | YuJin]]||Jeong||[[Special:Contributions/yujin.jeong | yujin.jeong]]||[mailto:yjeong@learn.senecac.on.ca?sujbect=dbs301 yjeong]|| 647 - 832 - 6771<br />
|-<br />
<br />
|-<br />
|Saad|| || || ||<br />
|-<br />
<br />
|-<br />
|James|| || || ||<br />
|-<br />
|}<br />
<br />
=Assignment 3 (worth 9%)=<br />
==Due Date==<br />
Thursday, December 2nd, 3:00pm<br />
Printout of all TIC charts and DDL / DML statements<br />
<br />
==Solution==<br />
==== DDL Statements (CREATE TABLE) ====<br />
1. AREA<br />
<pre><br />
CREATE TABLE AREA<br />
(<br />
AreaID NUMBER(4) CONSTRAINT area_areaid_pk PRIMARY KEY,<br />
AreaName VARCHAR2(30) NOT NULL CONSTRAINT area_areaname_uk UNIQUE,<br />
ElmSchool VARCHAR2(40),<br />
MidSchool VARCHAR2(40),<br />
HighSchool VARCHAR2(40),<br />
Comments VARCHAR2(100)<br />
);<br />
</pre><br />
2. AGENCY<br />
<pre><br />
</pre><br />
3. PROPERTY<br />
<pre><br />
</pre><br />
4. SINGLE<br />
<pre><br />
</pre><br />
5. CONDO<br />
<pre><br />
</pre><br />
6. OUTLET<br />
<pre><br />
</pre><br />
7. ADVERTISEMENT<br />
<pre><br />
</pre><br />
8. CLIENT<br />
<pre><br />
</pre><br />
9. DEED<br />
<pre><br />
</pre><br />
=Assignment 1=<br />
==Due Date==<br />
Thursday, October 21st, 4:00pm<br />
Printout submission only( SELECT Statements + ALL outputs)<br />
==Description==<br />
[https://cs.senecac.on.ca/~nconkic/assign1.doc Assignment1]<br />
==Solution==<br />
<pre><br />
SQL> SELECT employee_id, RPAD(CONCAT(CONCAT(last_name, ', '),first_name), 25) "Full Name",<br />
<br />
2 job_id,<br />
<br />
3 TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
<br />
4 "Start Date"<br />
<br />
5 FROM employees<br />
<br />
6 WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
<br />
7 ORDER BY 4 DESC;<br />
<br />
<br />
<br />
EMPLOYEE_ID Full Name JOB_ID Start Date <br />
<br />
----------- ------------------------- ---------- ----------------------------------------- <br />
<br />
124 Mourgos, Kevin ST_MAN November First in the year 1999 <br />
<br />
178 Grant, Kimberely SA_REP May First in the year 1999 <br />
<br />
174 Abel, Ellen SA_REP May First in the year 1996 <br />
<br />
104 Ernst, Bruce IT_PROG May First in the year 1991 <br />
<br />
<br />
<br />
SQL> SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
<br />
2 || job_id || ' will have a new salary of $' || salary * 1.15 "Happy Employees"<br />
<br />
3 FROM employees<br />
<br />
4 WHERE salary BETWEEN 5000 AND 12000<br />
<br />
5 AND job_id IN ('IT_PROG', 'ST_CLERK')<br />
<br />
6 ORDER BY employee_id;<br />
<br />
<br />
<br />
Happy Employees <br />
<br />
----------------------------------------------------------------------------------------------------<br />
<br />
Employee named Alexander Hunold who is IT_PROG will have a new salary of $10350 <br />
<br />
Employee named Bruce Ernst who is IT_PROG will have a new salary of $6900 <br />
<br />
<br />
<br />
SQL> SELECT last_name, salary, job_id,<br />
<br />
2 RPAD(NVL(TO_CHAR(manager_id), 'No Manager'), 10) "Manager #",<br />
<br />
3 LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
<br />
4 FROM employees<br />
<br />
5 WHERE (job_id LIKE 'MK%' OR manager_id IS NULL)<br />
<br />
6 AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
<br />
7 ORDER BY 2 DESC;<br />
<br />
<br />
<br />
LAST_NAME SALARY JOB_ID Manager # Total Income <br />
<br />
------------------------- ---------- ---------- ---------- ------------ <br />
<br />
King 24000 AD_PRES No Manager $288,000 <br />
<br />
Hartstein 13000 MK_MAN 100 $156,000 <br />
<br />
<br />
<br />
SQL> SELECT RPAD(CONCAT(CONCAT(first_name,' '),last_name), 25) "Employee", job_id,<br />
<br />
2 LPAD(TRIM(TO_CHAR(salary, '$999,999')), 12, '=') "Salary", department_name<br />
<br />
3 FROM employees e JOIN departments d<br />
<br />
4 ON (e.department_id = d.department_id)<br />
<br />
5 WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
<br />
6 AND salary <<br />
<br />
7 (SELECT MAX(salary)<br />
<br />
8 FROM employees<br />
<br />
9 WHERE SUBSTR(job_id, 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
<br />
10 ORDER BY 1;<br />
<br />
<br />
<br />
Employee JOB_ID Salary DEPARTMENT_NAME <br />
<br />
------------------------- ---------- ------------ ------------------------------ <br />
<br />
Eleni Zlotkey SA_MAN =====$10,500 Sales <br />
<br />
Jonathon Taylor SA_REP ======$8,600 Sales <br />
<br />
Pat Fay MK_REP ======$6,000 Marketing <br />
<br />
<br />
<br />
SQL><br />
<br />
SQL> SELECT last_name, salary, job_id<br />
<br />
2 FROM employees<br />
<br />
3 WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
<br />
4 AND salary ><br />
<br />
5 (SELECT MAX(salary)<br />
<br />
6 FROM employees<br />
<br />
7 JOIN departments USING (department_id)<br />
<br />
8 JOIN locations USING (location_id)<br />
<br />
9 WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
<br />
<br />
LAST_NAME SALARY JOB_ID <br />
<br />
------------------------- ---------- ---------- <br />
<br />
Kochhar 17000 AD_VP <br />
<br />
De Haan 17000 AD_VP <br />
<br />
<br />
<br />
SQL> SELECT last_name, first_name, job_id, hire_date<br />
<br />
2 FROM employees<br />
<br />
3 WHERE hire_date ><br />
<br />
4 (SELECT MAX(hire_date)<br />
<br />
5 FROM employees<br />
<br />
6 WHERE department_id =<br />
<br />
7 (SELECT department_id<br />
<br />
8 FROM departments<br />
<br />
9 WHERE UPPER(department_name) = 'IT'))<br />
<br />
10 AND (department_id !=<br />
<br />
11 (SELECT department_id<br />
<br />
12 FROM departments<br />
<br />
13 WHERE UPPER(department_name) = 'EXECUTIVE')<br />
<br />
14 OR department_id IS NULL)<br />
<br />
15 ORDER BY 4 DESC;<br />
<br />
<br />
<br />
LAST_NAME FIRST_NAME JOB_ID HIRE_DATE <br />
<br />
------------------------- -------------------- ---------- --------- <br />
<br />
Zlotkey Eleni SA_MAN 29-JAN-00 <br />
<br />
Mourgos Kevin ST_MAN 16-NOV-99 <br />
<br />
Grant Kimberely SA_REP 24-MAY-99 <br />
<br />
<br />
<br />
SQL> SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay",<br />
<br />
2 MIN(salary) "Lowest Dept/Job Pay"<br />
<br />
3 FROM employees<br />
<br />
4 WHERE UPPER(job_id) NOT LIKE '%VP'<br />
<br />
5 AND department_id NOT IN<br />
<br />
6 (SELECT department_id<br />
<br />
7 FROM departments<br />
<br />
8 WHERE UPPER(department_name) IN ('IT','SALES'))<br />
<br />
9 GROUP BY department_id, job_id<br />
<br />
10 HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
<br />
11 ORDER BY 1, 2;<br />
<br />
<br />
<br />
DEPARTMENT_ID JOB_ID Average Dept/Job Pay Lowest Dept/Job Pay <br />
<br />
------------- ---------- -------------------- ------------------- <br />
<br />
20 MK_MAN 13000 13000 <br />
<br />
20 MK_REP 6000 6000 <br />
<br />
50 ST_MAN 5800 5800 <br />
<br />
110 AC_ACCOUNT 8300 8300 <br />
<br />
110 AC_MGR 12000 12000 <br />
<br />
<br />
<br />
SQL> SELECT department_id, department_name,<br />
<br />
2 RPAD(TRIM(NVL(city, 'Not Assinged Yet')), 25, ' ') "City",<br />
<br />
3 COUNT(DISTINCT job_id) "# of Jobs"<br />
<br />
4 FROM employees<br />
<br />
5 RIGHT OUTER JOIN departments USING (department_id)<br />
<br />
6 LEFT OUTER JOIN locations USING (location_id)<br />
<br />
7 GROUP BY department_id, department_name, city;<br />
<br />
<br />
<br />
DEPARTMENT_ID DEPARTMENT_NAME City # of Jobs <br />
<br />
------------- ------------------------------ ------------------------- ---------- <br />
<br />
110 Accounting Seattle 2 <br />
<br />
50 Shipping South San Francisco 2 <br />
<br />
80 Sales Oxford 2 <br />
<br />
10 Administration Seattle 1 <br />
<br />
190 Contracting Seattle 0 <br />
<br />
90 Executive Seattle 2 <br />
<br />
20 Marketing Toronto 2 <br />
<br />
60 IT Southlake 1 <br />
<br />
<br />
<br />
8 rows selected.<br />
<br />
<br />
<br />
SQL> spool off<br />
</pre><br />
==SQL Statements==<br />
===1.===<br />
''YuJin''<br />
<pre><br />
SELECT employee_id, RPAD(CONCAT(CONCAT(last_name, ', '),first_name), 25) "Full Name",<br />
job_id,<br />
TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
"Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
ORDER BY 4 DESC;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT employee_id,<br />
SUBSTR(last_name ||' '|| first_name, 1, 25) "Full Name",<br />
job_id,<br />
TO_CHAR(hire_date,'fmMonth "First in the year" YYYY') "Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date,'fmMON') IN ('MAY','NOV')<br />
ORDER BY hire_date DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select employee_id "Emp#",<br />
(last_name ||', '|| first_name) "Full Name",<br />
job_id "Job",<br />
to_char(trunc(hire_date, 'MONTH'), 'FMMonth Ddspth "in the year"<br />
YYYY') "Start Date"<br />
from employees<br />
where to_char(hire_date, 'fmMonth') in ('May', 'November')<br />
order by hire_date desc;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT employee_id, SUBSTR(last_name ||' '|| first_name, 1, 25) "Full Name",<br />
job_id,<br />
TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
"Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
ORDER BY hire_date DESC;<br />
</pre><br />
<br />
===2.===<br />
''YuJin''<br />
<pre><br />
SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
|| job_id || ' will have a new salary of $' || salary * 1.15 "Happy Employees"<br />
FROM employees<br />
WHERE salary BETWEEN 5000 AND 12000<br />
AND job_id IN ('IT_PROG', 'ST_CLERK')<br />
ORDER BY employee_id;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT 'Employee named '||first_name||' '||last_name||' who is '||job_id||' will have a new salary of $'|| salary *1.15 "Happy Employees"<br />
FROM employees<br />
WHERE job_id IN ('IT_PROG','ST CLERK')<br />
AND (salary BETWEEN 5000 AND 12000)<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
Select ('Employee named ' || first_name ||' '|| last_name || ' who is ' || job_id || ' will have a new salary of ' || (salary*1.15)) "Happy Employees"<br />
From employees<br />
Where salary between 5000 and 12000<br />
And upper(job_id) in ('IT_PROG', 'ST_CLERK')<br />
order by employee_id;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
|| job_id || ' will have a new salary of ' || TO_CHAR(salary * 1.15, 'fm$999999') "Happy Employees"<br />
FROM employees<br />
WHERE salary BETWEEN 5000 AND 12000<br />
AND UPPER(job_id) IN ('IT_PROG', 'ST_CLERK')<br />
ORDER BY employee_id;<br />
</pre><br />
<br />
===3.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, salary, job_id,<br />
RPAD(NVL(TO_CHAR(manager_id), 'No Manager'), 10) "Manager #",<br />
LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
FROM employees<br />
WHERE (job_id LIKE 'MK%' OR manager_id IS NULL)<br />
AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
ORDER BY 2 DESC;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, salary, job_id, NVL(TO_CHAR(manager_id),'No Manager') Manager#,<br />
TO_CHAR(salary*12,'$999,999') "Total Income"<br />
FROM employees<br />
WHERE (manager_id IS NULL<br />
OR job_id LIKE 'MK%')<br />
AND ( salary* (NVL(commission_pct,0) + 1) + 1000 ) > 10000<br />
ORDER BY salary DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, salary, job_id, nvl(to_char(manager_id),'No Manager') Manager#,<br />
to_char(salary*12,'$999,999') "Total Income"<br />
from employees<br />
where (upper(job_id) like 'MK%' or manager_id IS NULL)<br />
and salary * (1 + nvl(commission_pct, 0)) + 1000 > 10000<br />
order by 2 desc;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT last_name, salary, job_id,<br />
SUBSTR(NVL(TO_CHAR(manager_id), 'No Manager'), 1, 10) "Manager #",<br />
LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
FROM employees<br />
WHERE (UPPER(job_id) LIKE 'MK%' OR manager_id IS NULL)<br />
AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
ORDER BY salary DESC;<br />
<br />
</pre><br />
<br />
===4.===<br />
''YuJin''<br />
<pre><br />
SELECT RPAD(CONCAT(CONCAT(first_name,' '),last_name), 25) "Employee", job_id,<br />
LPAD(TRIM(TO_CHAR(salary, '$999,999')), 12, '=') "Salary", department_name<br />
FROM employees e JOIN departments d<br />
ON (e.department_id = d.department_id)<br />
WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
AND salary <<br />
(SELECT MAX(salary)<br />
FROM employees<br />
WHERE SUBSTR(job_id, 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
ORDER BY 1;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT SUBSTR(first_name||' '||last_name, 25) Employee, job_id,<br />
LPAD(TO_CHAR(salary,'$99,999'), 12, '=') Salary, department_name<br />
FROM employees e JOIN departments d<br />
ON (d.department_id=e.department_id)<br />
WHERE salary < (SELECT MAX(salary)<br />
FROM employees<br />
WHERE UPPER(SUBSTR(job_id,4)) NOT IN ('VP', 'PRES', 'MAN', 'MGR')<br />
)<br />
AND UPPER(department_name) IN ('MARKETING','SALES')<br />
ORDER BY first_name, last_name<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select substr(first_name ||' '|| last_name) "Employee", job_id, to_char(salary, '$999,999', 12, '=') Salary, department_name<br />
from employees e join departments d<br />
on (e.department_id = d.department_id)<br />
where upper(department_name) in ('MARKETING', 'SALES')<br />
and salary < (select max(salary)<br />
from employees<br />
where substr(job_id,4) not in ('PRES','VP','MAN','MGR'))<br />
order by "Employee";<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT SUBSTR(first_name ||' '|| last_name, 1, 25) "Employee", job_id,<br />
LPAD(TO_CHAR(salary, 'fm$999,999'), 12, '=') "Salary", department_name<br />
FROM employees e JOIN departments d<br />
ON (e.department_id = d.department_id)<br />
WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
AND salary <<br />
(SELECT MAX(salary)<br />
FROM employees<br />
WHERE SUBSTR(UPPER(job_id), 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
ORDER BY 1;<br />
</pre><br />
<br />
===5.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
AND salary ><br />
(SELECT MAX(salary)<br />
FROM employees<br />
JOIN departments USING (department_id)<br />
JOIN locations USING (location_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE salary > (SELECT MAX(salary)<br />
FROM locations JOIN departments<br />
USING (location_id)<br />
JOIN employees<br />
USING (department_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD')<br />
)<br />
AND UPPER(job_id) NOT LIKE '%PRES'<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, salary, job_id<br />
from employees<br />
where salary > (select max(salary)<br />
from employees join departments<br />
using (department_id)<br />
join locations<br />
using (location_id)<br />
where upper(city) in ('TORONTO','OXFORD'))<br />
and upper(job_id) not like '%PRES'<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
AND salary ><br />
(SELECT MAX(salary)<br />
FROM employees<br />
JOIN departments USING (department_id)<br />
JOIN locations USING (location_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
</pre><br />
<br />
===6.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, first_name, job_id, hire_date<br />
FROM employees<br />
WHERE hire_date ><br />
(SELECT MAX(hire_date)<br />
FROM employees<br />
WHERE department_id =<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'IT'))<br />
AND (department_id !=<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'EXECUTIVE')<br />
OR department_id IS NULL)<br />
ORDER BY 4 DESC;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, first_name, job_id, hire_date<br />
FROM employees e<br />
WHERE hire_date > (SELECT MAX(hire_date)<br />
FROM employees<br />
WHERE department_id = (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'IT'<br />
)<br />
)<br />
AND (department_id <> (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) ='EXECUTIVE')<br />
OR department_id IS NULL)<br />
ORDER BY hire_date DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, first_name, job_id, hire_date<br />
from employees<br />
where hire_date > (select max(hire_date)<br />
from employees<br />
where department_id = (select department_id<br />
from departments<br />
where upper(department_name) = 'IT'))<br />
and (department_id != (select department_id<br />
from departments<br />
where upper(department_name) = 'EXECUTIVE')<br />
or department_id IS NULL)<br />
order by hire_date desc;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT last_name, first_name, job_id, hire_date<br />
FROM employees<br />
WHERE hire_date ><br />
(SELECT MAX(hire_date)<br />
FROM employees<br />
WHERE department_id =<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'IT'))<br />
AND (department_id !=<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'EXECUTIVE')<br />
OR department_id IS NULL)<br />
ORDER BY hire_date DESC;<br />
</pre><br />
<br />
===7.===<br />
''YuJin''<br />
<pre><br />
SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay",<br />
MIN(salary) "Lowest Dept/Job Pay"<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%VP'<br />
AND department_id NOT IN<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) IN ('IT','SALES'))<br />
GROUP BY department_id, job_id<br />
HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
ORDER BY 1, 2;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay", MIN(salary) "Lowest Dept/Job Pay"<br />
FROM employees<br />
WHERE department_id <> ALL (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) IN ('IT','SALES')<br />
)<br />
AND job_id NOT LIKE '%VP'<br />
GROUP BY department_id, job_id<br />
HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
ORDER BY department_id, job_id<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select department_id, job_id, avg(salary) "Average Dept/Job Pay", min(salary) "Lowest Dept/Job Pay"<br />
from employees<br />
where upper(job_id) not like '%VP'<br />
and department_id != all(select department_id<br />
from departments<br />
where upper(department_name) in ('IT','SALES'))<br />
group by department_id, job_id<br />
having min(salary) between 5000 and 15000<br />
order by department_id, job_id<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay",<br />
MIN(salary) "Lowest Dept/Job Pay"<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%VP'<br />
AND department_id != ALL<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) IN ('IT','SALES'))<br />
GROUP BY department_id, job_id<br />
HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
ORDER BY department_id, job_id;<br />
</pre><br />
<br />
===8.===<br />
''YuJin''<br />
<pre><br />
SELECT department_id, department_name,<br />
RPAD(TRIM(NVL(city, 'Not Assinged Yet')), 25, ' ') "City",<br />
COUNT(DISTINCT job_id) "# of Jobs"<br />
FROM employees<br />
RIGHT OUTER JOIN departments USING (department_id)<br />
LEFT OUTER JOIN locations USING (location_id)<br />
GROUP BY department_id, department_name, city;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT department_id, department_name, SUBSTR(NVL(city,'Not Assigned Yet'),1,25) City,<br />
COUNT(DISTINCT job_id) "# of Jobs"<br />
FROM locations l RIGHT OUTER JOIN departments d<br />
USING (location_id)<br />
LEFT OUTER JOIN employees e<br />
USING (department_id)<br />
GROUP BY department_id, department_name, city<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select department_id, department_name, substr(nvl(city,'Not Assigned Yet'),1,25) City,<br />
count(distinct job_id) "# of Jobs"<br />
from employees right outer join departments<br />
using (department_id)<br />
left outer join locations<br />
using (location_id)<br />
group by department_id, department_name, city<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT department_id, department_name,<br />
SUBSTR(NVL(city, 'Not Assinged Yet'),1, 25) "City",<br />
COUNT(DISTINCT job_id) "# of Jobs"<br />
FROM employees<br />
RIGHT OUTER JOIN departments USING (department_id)<br />
LEFT OUTER JOIN locations USING (location_id)<br />
GROUP BY department_id, department_name, city;<br />
<br />
</pre></div>
Yujin.jeong
https://wiki.cdot.senecacollege.ca/w/index.php?title=J.Y.S&diff=50844
J.Y.S
2010-11-27T19:22:33Z
<p>Yujin.jeong: </p>
<hr />
<div>This page is to efficiently manage our group assignments!<br />
== Member List == <br />
*[mailto:,,yjeong@learn.senecac.on.ca,?subject=dbs301 Email All]<br />
<br />
{| class="wikitable sortable" border="1" cellpadding="5"<br />
! First Name !! Last Name !! wiki id !! Learn e-mail !! Phone<br />
|-<br />
|[[User:Yujin.jeong | YuJin]]||Jeong||[[Special:Contributions/yujin.jeong | yujin.jeong]]||[mailto:yjeong@learn.senecac.on.ca?sujbect=gam666 yjeong]|| 647 - 832 - 6771<br />
|-<br />
<br />
|-<br />
|Saad|| || || ||<br />
|-<br />
<br />
|-<br />
|James|| || || ||<br />
|-<br />
|}<br />
<br />
=Assignment 3 (worth 9%)=<br />
==Due Date==<br />
Thursday, December 2nd, 3:00pm<br />
Normal 0 false false false EN-US KO X-NONE MicrosoftInternetExplorer4 Printout of all TIC charts and DDL / DML statements<br />
<br />
==Solution==<br />
==== DDL Statements (CREATE TABLE) ====<br />
1. AREA<br />
<pre><br />
CREATE TABLE AREA<br />
(<br />
AreaID NUMBER(4) CONSTRAINT area_areaid_pk PRIMARY KEY,<br />
AreaName VARCHAR2(30) NOT NULL CONSTRAINT area_areaname_uk UNIQUE,<br />
ElmSchool VARCHAR2(40),<br />
MidSchool VARCHAR2(40),<br />
HighSchool VARCHAR2(40),<br />
Comments VARCHAR2(100)<br />
);<br />
</pre><br />
2. AGENCY<br />
<pre><br />
</pre><br />
3. PROPERTY<br />
<pre><br />
</pre><br />
4. SINGLE<br />
<pre><br />
</pre><br />
5. CONDO<br />
<pre><br />
</pre><br />
6. OUTLET<br />
<pre><br />
</pre><br />
7. ADVERTISEMENT<br />
<pre><br />
</pre><br />
8. CLIENT<br />
<pre><br />
</pre><br />
9. DEED<br />
<pre><br />
</pre><br />
=Assignment 1=<br />
==Due Date==<br />
Thursday, October 21st, 4:00pm<br />
Printout submission only( SELECT Statements + ALL outputs)<br />
==Description==<br />
[https://cs.senecac.on.ca/~nconkic/assign1.doc Assignment1]<br />
==Solution==<br />
<pre><br />
SQL> SELECT employee_id, RPAD(CONCAT(CONCAT(last_name, ', '),first_name), 25) "Full Name",<br />
<br />
2 job_id,<br />
<br />
3 TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
<br />
4 "Start Date"<br />
<br />
5 FROM employees<br />
<br />
6 WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
<br />
7 ORDER BY 4 DESC;<br />
<br />
<br />
<br />
EMPLOYEE_ID Full Name JOB_ID Start Date <br />
<br />
----------- ------------------------- ---------- ----------------------------------------- <br />
<br />
124 Mourgos, Kevin ST_MAN November First in the year 1999 <br />
<br />
178 Grant, Kimberely SA_REP May First in the year 1999 <br />
<br />
174 Abel, Ellen SA_REP May First in the year 1996 <br />
<br />
104 Ernst, Bruce IT_PROG May First in the year 1991 <br />
<br />
<br />
<br />
SQL> SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
<br />
2 || job_id || ' will have a new salary of $' || salary * 1.15 "Happy Employees"<br />
<br />
3 FROM employees<br />
<br />
4 WHERE salary BETWEEN 5000 AND 12000<br />
<br />
5 AND job_id IN ('IT_PROG', 'ST_CLERK')<br />
<br />
6 ORDER BY employee_id;<br />
<br />
<br />
<br />
Happy Employees <br />
<br />
----------------------------------------------------------------------------------------------------<br />
<br />
Employee named Alexander Hunold who is IT_PROG will have a new salary of $10350 <br />
<br />
Employee named Bruce Ernst who is IT_PROG will have a new salary of $6900 <br />
<br />
<br />
<br />
SQL> SELECT last_name, salary, job_id,<br />
<br />
2 RPAD(NVL(TO_CHAR(manager_id), 'No Manager'), 10) "Manager #",<br />
<br />
3 LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
<br />
4 FROM employees<br />
<br />
5 WHERE (job_id LIKE 'MK%' OR manager_id IS NULL)<br />
<br />
6 AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
<br />
7 ORDER BY 2 DESC;<br />
<br />
<br />
<br />
LAST_NAME SALARY JOB_ID Manager # Total Income <br />
<br />
------------------------- ---------- ---------- ---------- ------------ <br />
<br />
King 24000 AD_PRES No Manager $288,000 <br />
<br />
Hartstein 13000 MK_MAN 100 $156,000 <br />
<br />
<br />
<br />
SQL> SELECT RPAD(CONCAT(CONCAT(first_name,' '),last_name), 25) "Employee", job_id,<br />
<br />
2 LPAD(TRIM(TO_CHAR(salary, '$999,999')), 12, '=') "Salary", department_name<br />
<br />
3 FROM employees e JOIN departments d<br />
<br />
4 ON (e.department_id = d.department_id)<br />
<br />
5 WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
<br />
6 AND salary <<br />
<br />
7 (SELECT MAX(salary)<br />
<br />
8 FROM employees<br />
<br />
9 WHERE SUBSTR(job_id, 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
<br />
10 ORDER BY 1;<br />
<br />
<br />
<br />
Employee JOB_ID Salary DEPARTMENT_NAME <br />
<br />
------------------------- ---------- ------------ ------------------------------ <br />
<br />
Eleni Zlotkey SA_MAN =====$10,500 Sales <br />
<br />
Jonathon Taylor SA_REP ======$8,600 Sales <br />
<br />
Pat Fay MK_REP ======$6,000 Marketing <br />
<br />
<br />
<br />
SQL><br />
<br />
SQL> SELECT last_name, salary, job_id<br />
<br />
2 FROM employees<br />
<br />
3 WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
<br />
4 AND salary ><br />
<br />
5 (SELECT MAX(salary)<br />
<br />
6 FROM employees<br />
<br />
7 JOIN departments USING (department_id)<br />
<br />
8 JOIN locations USING (location_id)<br />
<br />
9 WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
<br />
<br />
LAST_NAME SALARY JOB_ID <br />
<br />
------------------------- ---------- ---------- <br />
<br />
Kochhar 17000 AD_VP <br />
<br />
De Haan 17000 AD_VP <br />
<br />
<br />
<br />
SQL> SELECT last_name, first_name, job_id, hire_date<br />
<br />
2 FROM employees<br />
<br />
3 WHERE hire_date ><br />
<br />
4 (SELECT MAX(hire_date)<br />
<br />
5 FROM employees<br />
<br />
6 WHERE department_id =<br />
<br />
7 (SELECT department_id<br />
<br />
8 FROM departments<br />
<br />
9 WHERE UPPER(department_name) = 'IT'))<br />
<br />
10 AND (department_id !=<br />
<br />
11 (SELECT department_id<br />
<br />
12 FROM departments<br />
<br />
13 WHERE UPPER(department_name) = 'EXECUTIVE')<br />
<br />
14 OR department_id IS NULL)<br />
<br />
15 ORDER BY 4 DESC;<br />
<br />
<br />
<br />
LAST_NAME FIRST_NAME JOB_ID HIRE_DATE <br />
<br />
------------------------- -------------------- ---------- --------- <br />
<br />
Zlotkey Eleni SA_MAN 29-JAN-00 <br />
<br />
Mourgos Kevin ST_MAN 16-NOV-99 <br />
<br />
Grant Kimberely SA_REP 24-MAY-99 <br />
<br />
<br />
<br />
SQL> SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay",<br />
<br />
2 MIN(salary) "Lowest Dept/Job Pay"<br />
<br />
3 FROM employees<br />
<br />
4 WHERE UPPER(job_id) NOT LIKE '%VP'<br />
<br />
5 AND department_id NOT IN<br />
<br />
6 (SELECT department_id<br />
<br />
7 FROM departments<br />
<br />
8 WHERE UPPER(department_name) IN ('IT','SALES'))<br />
<br />
9 GROUP BY department_id, job_id<br />
<br />
10 HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
<br />
11 ORDER BY 1, 2;<br />
<br />
<br />
<br />
DEPARTMENT_ID JOB_ID Average Dept/Job Pay Lowest Dept/Job Pay <br />
<br />
------------- ---------- -------------------- ------------------- <br />
<br />
20 MK_MAN 13000 13000 <br />
<br />
20 MK_REP 6000 6000 <br />
<br />
50 ST_MAN 5800 5800 <br />
<br />
110 AC_ACCOUNT 8300 8300 <br />
<br />
110 AC_MGR 12000 12000 <br />
<br />
<br />
<br />
SQL> SELECT department_id, department_name,<br />
<br />
2 RPAD(TRIM(NVL(city, 'Not Assinged Yet')), 25, ' ') "City",<br />
<br />
3 COUNT(DISTINCT job_id) "# of Jobs"<br />
<br />
4 FROM employees<br />
<br />
5 RIGHT OUTER JOIN departments USING (department_id)<br />
<br />
6 LEFT OUTER JOIN locations USING (location_id)<br />
<br />
7 GROUP BY department_id, department_name, city;<br />
<br />
<br />
<br />
DEPARTMENT_ID DEPARTMENT_NAME City # of Jobs <br />
<br />
------------- ------------------------------ ------------------------- ---------- <br />
<br />
110 Accounting Seattle 2 <br />
<br />
50 Shipping South San Francisco 2 <br />
<br />
80 Sales Oxford 2 <br />
<br />
10 Administration Seattle 1 <br />
<br />
190 Contracting Seattle 0 <br />
<br />
90 Executive Seattle 2 <br />
<br />
20 Marketing Toronto 2 <br />
<br />
60 IT Southlake 1 <br />
<br />
<br />
<br />
8 rows selected.<br />
<br />
<br />
<br />
SQL> spool off<br />
</pre><br />
==SQL Statements==<br />
===1.===<br />
''YuJin''<br />
<pre><br />
SELECT employee_id, RPAD(CONCAT(CONCAT(last_name, ', '),first_name), 25) "Full Name",<br />
job_id,<br />
TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
"Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
ORDER BY 4 DESC;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT employee_id,<br />
SUBSTR(last_name ||' '|| first_name, 1, 25) "Full Name",<br />
job_id,<br />
TO_CHAR(hire_date,'fmMonth "First in the year" YYYY') "Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date,'fmMON') IN ('MAY','NOV')<br />
ORDER BY hire_date DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select employee_id "Emp#",<br />
(last_name ||', '|| first_name) "Full Name",<br />
job_id "Job",<br />
to_char(trunc(hire_date, 'MONTH'), 'FMMonth Ddspth "in the year"<br />
YYYY') "Start Date"<br />
from employees<br />
where to_char(hire_date, 'fmMonth') in ('May', 'November')<br />
order by hire_date desc;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT employee_id, SUBSTR(last_name ||' '|| first_name, 1, 25) "Full Name",<br />
job_id,<br />
TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
"Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
ORDER BY hire_date DESC;<br />
</pre><br />
<br />
===2.===<br />
''YuJin''<br />
<pre><br />
SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
|| job_id || ' will have a new salary of $' || salary * 1.15 "Happy Employees"<br />
FROM employees<br />
WHERE salary BETWEEN 5000 AND 12000<br />
AND job_id IN ('IT_PROG', 'ST_CLERK')<br />
ORDER BY employee_id;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT 'Employee named '||first_name||' '||last_name||' who is '||job_id||' will have a new salary of $'|| salary *1.15 "Happy Employees"<br />
FROM employees<br />
WHERE job_id IN ('IT_PROG','ST CLERK')<br />
AND (salary BETWEEN 5000 AND 12000)<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
Select ('Employee named ' || first_name ||' '|| last_name || ' who is ' || job_id || ' will have a new salary of ' || (salary*1.15)) "Happy Employees"<br />
From employees<br />
Where salary between 5000 and 12000<br />
And upper(job_id) in ('IT_PROG', 'ST_CLERK')<br />
order by employee_id;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
|| job_id || ' will have a new salary of ' || TO_CHAR(salary * 1.15, 'fm$999999') "Happy Employees"<br />
FROM employees<br />
WHERE salary BETWEEN 5000 AND 12000<br />
AND UPPER(job_id) IN ('IT_PROG', 'ST_CLERK')<br />
ORDER BY employee_id;<br />
</pre><br />
<br />
===3.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, salary, job_id,<br />
RPAD(NVL(TO_CHAR(manager_id), 'No Manager'), 10) "Manager #",<br />
LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
FROM employees<br />
WHERE (job_id LIKE 'MK%' OR manager_id IS NULL)<br />
AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
ORDER BY 2 DESC;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, salary, job_id, NVL(TO_CHAR(manager_id),'No Manager') Manager#,<br />
TO_CHAR(salary*12,'$999,999') "Total Income"<br />
FROM employees<br />
WHERE (manager_id IS NULL<br />
OR job_id LIKE 'MK%')<br />
AND ( salary* (NVL(commission_pct,0) + 1) + 1000 ) > 10000<br />
ORDER BY salary DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, salary, job_id, nvl(to_char(manager_id),'No Manager') Manager#,<br />
to_char(salary*12,'$999,999') "Total Income"<br />
from employees<br />
where (upper(job_id) like 'MK%' or manager_id IS NULL)<br />
and salary * (1 + nvl(commission_pct, 0)) + 1000 > 10000<br />
order by 2 desc;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT last_name, salary, job_id,<br />
SUBSTR(NVL(TO_CHAR(manager_id), 'No Manager'), 1, 10) "Manager #",<br />
LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
FROM employees<br />
WHERE (UPPER(job_id) LIKE 'MK%' OR manager_id IS NULL)<br />
AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
ORDER BY salary DESC;<br />
<br />
</pre><br />
<br />
===4.===<br />
''YuJin''<br />
<pre><br />
SELECT RPAD(CONCAT(CONCAT(first_name,' '),last_name), 25) "Employee", job_id,<br />
LPAD(TRIM(TO_CHAR(salary, '$999,999')), 12, '=') "Salary", department_name<br />
FROM employees e JOIN departments d<br />
ON (e.department_id = d.department_id)<br />
WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
AND salary <<br />
(SELECT MAX(salary)<br />
FROM employees<br />
WHERE SUBSTR(job_id, 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
ORDER BY 1;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT SUBSTR(first_name||' '||last_name, 25) Employee, job_id,<br />
LPAD(TO_CHAR(salary,'$99,999'), 12, '=') Salary, department_name<br />
FROM employees e JOIN departments d<br />
ON (d.department_id=e.department_id)<br />
WHERE salary < (SELECT MAX(salary)<br />
FROM employees<br />
WHERE UPPER(SUBSTR(job_id,4)) NOT IN ('VP', 'PRES', 'MAN', 'MGR')<br />
)<br />
AND UPPER(department_name) IN ('MARKETING','SALES')<br />
ORDER BY first_name, last_name<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select substr(first_name ||' '|| last_name) "Employee", job_id, to_char(salary, '$999,999', 12, '=') Salary, department_name<br />
from employees e join departments d<br />
on (e.department_id = d.department_id)<br />
where upper(department_name) in ('MARKETING', 'SALES')<br />
and salary < (select max(salary)<br />
from employees<br />
where substr(job_id,4) not in ('PRES','VP','MAN','MGR'))<br />
order by "Employee";<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT SUBSTR(first_name ||' '|| last_name, 1, 25) "Employee", job_id,<br />
LPAD(TO_CHAR(salary, 'fm$999,999'), 12, '=') "Salary", department_name<br />
FROM employees e JOIN departments d<br />
ON (e.department_id = d.department_id)<br />
WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
AND salary <<br />
(SELECT MAX(salary)<br />
FROM employees<br />
WHERE SUBSTR(UPPER(job_id), 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
ORDER BY 1;<br />
</pre><br />
<br />
===5.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
AND salary ><br />
(SELECT MAX(salary)<br />
FROM employees<br />
JOIN departments USING (department_id)<br />
JOIN locations USING (location_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE salary > (SELECT MAX(salary)<br />
FROM locations JOIN departments<br />
USING (location_id)<br />
JOIN employees<br />
USING (department_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD')<br />
)<br />
AND UPPER(job_id) NOT LIKE '%PRES'<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, salary, job_id<br />
from employees<br />
where salary > (select max(salary)<br />
from employees join departments<br />
using (department_id)<br />
join locations<br />
using (location_id)<br />
where upper(city) in ('TORONTO','OXFORD'))<br />
and upper(job_id) not like '%PRES'<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
AND salary ><br />
(SELECT MAX(salary)<br />
FROM employees<br />
JOIN departments USING (department_id)<br />
JOIN locations USING (location_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
</pre><br />
<br />
===6.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, first_name, job_id, hire_date<br />
FROM employees<br />
WHERE hire_date ><br />
(SELECT MAX(hire_date)<br />
FROM employees<br />
WHERE department_id =<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'IT'))<br />
AND (department_id !=<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'EXECUTIVE')<br />
OR department_id IS NULL)<br />
ORDER BY 4 DESC;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, first_name, job_id, hire_date<br />
FROM employees e<br />
WHERE hire_date > (SELECT MAX(hire_date)<br />
FROM employees<br />
WHERE department_id = (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'IT'<br />
)<br />
)<br />
AND (department_id <> (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) ='EXECUTIVE')<br />
OR department_id IS NULL)<br />
ORDER BY hire_date DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, first_name, job_id, hire_date<br />
from employees<br />
where hire_date > (select max(hire_date)<br />
from employees<br />
where department_id = (select department_id<br />
from departments<br />
where upper(department_name) = 'IT'))<br />
and (department_id != (select department_id<br />
from departments<br />
where upper(department_name) = 'EXECUTIVE')<br />
or department_id IS NULL)<br />
order by hire_date desc;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT last_name, first_name, job_id, hire_date<br />
FROM employees<br />
WHERE hire_date ><br />
(SELECT MAX(hire_date)<br />
FROM employees<br />
WHERE department_id =<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'IT'))<br />
AND (department_id !=<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'EXECUTIVE')<br />
OR department_id IS NULL)<br />
ORDER BY hire_date DESC;<br />
</pre><br />
<br />
===7.===<br />
''YuJin''<br />
<pre><br />
SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay",<br />
MIN(salary) "Lowest Dept/Job Pay"<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%VP'<br />
AND department_id NOT IN<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) IN ('IT','SALES'))<br />
GROUP BY department_id, job_id<br />
HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
ORDER BY 1, 2;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay", MIN(salary) "Lowest Dept/Job Pay"<br />
FROM employees<br />
WHERE department_id <> ALL (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) IN ('IT','SALES')<br />
)<br />
AND job_id NOT LIKE '%VP'<br />
GROUP BY department_id, job_id<br />
HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
ORDER BY department_id, job_id<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select department_id, job_id, avg(salary) "Average Dept/Job Pay", min(salary) "Lowest Dept/Job Pay"<br />
from employees<br />
where upper(job_id) not like '%VP'<br />
and department_id != all(select department_id<br />
from departments<br />
where upper(department_name) in ('IT','SALES'))<br />
group by department_id, job_id<br />
having min(salary) between 5000 and 15000<br />
order by department_id, job_id<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay",<br />
MIN(salary) "Lowest Dept/Job Pay"<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%VP'<br />
AND department_id != ALL<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) IN ('IT','SALES'))<br />
GROUP BY department_id, job_id<br />
HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
ORDER BY department_id, job_id;<br />
</pre><br />
<br />
===8.===<br />
''YuJin''<br />
<pre><br />
SELECT department_id, department_name,<br />
RPAD(TRIM(NVL(city, 'Not Assinged Yet')), 25, ' ') "City",<br />
COUNT(DISTINCT job_id) "# of Jobs"<br />
FROM employees<br />
RIGHT OUTER JOIN departments USING (department_id)<br />
LEFT OUTER JOIN locations USING (location_id)<br />
GROUP BY department_id, department_name, city;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT department_id, department_name, SUBSTR(NVL(city,'Not Assigned Yet'),1,25) City,<br />
COUNT(DISTINCT job_id) "# of Jobs"<br />
FROM locations l RIGHT OUTER JOIN departments d<br />
USING (location_id)<br />
LEFT OUTER JOIN employees e<br />
USING (department_id)<br />
GROUP BY department_id, department_name, city<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select department_id, department_name, substr(nvl(city,'Not Assigned Yet'),1,25) City,<br />
count(distinct job_id) "# of Jobs"<br />
from employees right outer join departments<br />
using (department_id)<br />
left outer join locations<br />
using (location_id)<br />
group by department_id, department_name, city<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT department_id, department_name,<br />
SUBSTR(NVL(city, 'Not Assinged Yet'),1, 25) "City",<br />
COUNT(DISTINCT job_id) "# of Jobs"<br />
FROM employees<br />
RIGHT OUTER JOIN departments USING (department_id)<br />
LEFT OUTER JOIN locations USING (location_id)<br />
GROUP BY department_id, department_name, city;<br />
<br />
</pre></div>
Yujin.jeong
https://wiki.cdot.senecacollege.ca/w/index.php?title=J.Y.S&diff=48473
J.Y.S
2010-10-20T21:09:56Z
<p>Yujin.jeong: /* 8. */</p>
<hr />
<div>This page is to efficiently manage our group assignments!<br />
== Member List == <br />
*[mailto:,,yjeong@learn.senecac.on.ca,?subject=dbs301 Email All]<br />
<br />
{| class="wikitable sortable" border="1" cellpadding="5"<br />
! First Name !! Last Name !! wiki id !! Learn e-mail !! Phone<br />
|-<br />
|[[User:Yujin.jeong | YuJin]]||Jeong||[[Special:Contributions/yujin.jeong | yujin.jeong]]||[mailto:yjeong@learn.senecac.on.ca?sujbect=gam666 yjeong]|| 647 - 832 - 6771<br />
|-<br />
<br />
|-<br />
|Saad|| || || ||<br />
|-<br />
<br />
|-<br />
|James|| || || ||<br />
|-<br />
|}<br />
<br />
=Assignment 1=<br />
==Due Date==<br />
Thursday, October 21st, 4:00pm<br />
Printout submission only( SELECT Statements + ALL outputs)<br />
==Description==<br />
[https://cs.senecac.on.ca/~nconkic/assign1.doc Assignment1]<br />
==Solution==<br />
<pre><br />
SQL> SELECT employee_id, RPAD(CONCAT(CONCAT(last_name, ', '),first_name), 25) "Full Name",<br />
<br />
2 job_id,<br />
<br />
3 TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
<br />
4 "Start Date"<br />
<br />
5 FROM employees<br />
<br />
6 WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
<br />
7 ORDER BY 4 DESC;<br />
<br />
<br />
<br />
EMPLOYEE_ID Full Name JOB_ID Start Date <br />
<br />
----------- ------------------------- ---------- ----------------------------------------- <br />
<br />
124 Mourgos, Kevin ST_MAN November First in the year 1999 <br />
<br />
178 Grant, Kimberely SA_REP May First in the year 1999 <br />
<br />
174 Abel, Ellen SA_REP May First in the year 1996 <br />
<br />
104 Ernst, Bruce IT_PROG May First in the year 1991 <br />
<br />
<br />
<br />
SQL> SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
<br />
2 || job_id || ' will have a new salary of $' || salary * 1.15 "Happy Employees"<br />
<br />
3 FROM employees<br />
<br />
4 WHERE salary BETWEEN 5000 AND 12000<br />
<br />
5 AND job_id IN ('IT_PROG', 'ST_CLERK')<br />
<br />
6 ORDER BY employee_id;<br />
<br />
<br />
<br />
Happy Employees <br />
<br />
----------------------------------------------------------------------------------------------------<br />
<br />
Employee named Alexander Hunold who is IT_PROG will have a new salary of $10350 <br />
<br />
Employee named Bruce Ernst who is IT_PROG will have a new salary of $6900 <br />
<br />
<br />
<br />
SQL> SELECT last_name, salary, job_id,<br />
<br />
2 RPAD(NVL(TO_CHAR(manager_id), 'No Manager'), 10) "Manager #",<br />
<br />
3 LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
<br />
4 FROM employees<br />
<br />
5 WHERE (job_id LIKE 'MK%' OR manager_id IS NULL)<br />
<br />
6 AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
<br />
7 ORDER BY 2 DESC;<br />
<br />
<br />
<br />
LAST_NAME SALARY JOB_ID Manager # Total Income <br />
<br />
------------------------- ---------- ---------- ---------- ------------ <br />
<br />
King 24000 AD_PRES No Manager $288,000 <br />
<br />
Hartstein 13000 MK_MAN 100 $156,000 <br />
<br />
<br />
<br />
SQL> SELECT RPAD(CONCAT(CONCAT(first_name,' '),last_name), 25) "Employee", job_id,<br />
<br />
2 LPAD(TRIM(TO_CHAR(salary, '$999,999')), 12, '=') "Salary", department_name<br />
<br />
3 FROM employees e JOIN departments d<br />
<br />
4 ON (e.department_id = d.department_id)<br />
<br />
5 WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
<br />
6 AND salary <<br />
<br />
7 (SELECT MAX(salary)<br />
<br />
8 FROM employees<br />
<br />
9 WHERE SUBSTR(job_id, 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
<br />
10 ORDER BY 1;<br />
<br />
<br />
<br />
Employee JOB_ID Salary DEPARTMENT_NAME <br />
<br />
------------------------- ---------- ------------ ------------------------------ <br />
<br />
Eleni Zlotkey SA_MAN =====$10,500 Sales <br />
<br />
Jonathon Taylor SA_REP ======$8,600 Sales <br />
<br />
Pat Fay MK_REP ======$6,000 Marketing <br />
<br />
<br />
<br />
SQL><br />
<br />
SQL> SELECT last_name, salary, job_id<br />
<br />
2 FROM employees<br />
<br />
3 WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
<br />
4 AND salary ><br />
<br />
5 (SELECT MAX(salary)<br />
<br />
6 FROM employees<br />
<br />
7 JOIN departments USING (department_id)<br />
<br />
8 JOIN locations USING (location_id)<br />
<br />
9 WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
<br />
<br />
LAST_NAME SALARY JOB_ID <br />
<br />
------------------------- ---------- ---------- <br />
<br />
Kochhar 17000 AD_VP <br />
<br />
De Haan 17000 AD_VP <br />
<br />
<br />
<br />
SQL> SELECT last_name, first_name, job_id, hire_date<br />
<br />
2 FROM employees<br />
<br />
3 WHERE hire_date ><br />
<br />
4 (SELECT MAX(hire_date)<br />
<br />
5 FROM employees<br />
<br />
6 WHERE department_id =<br />
<br />
7 (SELECT department_id<br />
<br />
8 FROM departments<br />
<br />
9 WHERE UPPER(department_name) = 'IT'))<br />
<br />
10 AND (department_id !=<br />
<br />
11 (SELECT department_id<br />
<br />
12 FROM departments<br />
<br />
13 WHERE UPPER(department_name) = 'EXECUTIVE')<br />
<br />
14 OR department_id IS NULL)<br />
<br />
15 ORDER BY 4 DESC;<br />
<br />
<br />
<br />
LAST_NAME FIRST_NAME JOB_ID HIRE_DATE <br />
<br />
------------------------- -------------------- ---------- --------- <br />
<br />
Zlotkey Eleni SA_MAN 29-JAN-00 <br />
<br />
Mourgos Kevin ST_MAN 16-NOV-99 <br />
<br />
Grant Kimberely SA_REP 24-MAY-99 <br />
<br />
<br />
<br />
SQL> SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay",<br />
<br />
2 MIN(salary) "Lowest Dept/Job Pay"<br />
<br />
3 FROM employees<br />
<br />
4 WHERE UPPER(job_id) NOT LIKE '%VP'<br />
<br />
5 AND department_id NOT IN<br />
<br />
6 (SELECT department_id<br />
<br />
7 FROM departments<br />
<br />
8 WHERE UPPER(department_name) IN ('IT','SALES'))<br />
<br />
9 GROUP BY department_id, job_id<br />
<br />
10 HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
<br />
11 ORDER BY 1, 2;<br />
<br />
<br />
<br />
DEPARTMENT_ID JOB_ID Average Dept/Job Pay Lowest Dept/Job Pay <br />
<br />
------------- ---------- -------------------- ------------------- <br />
<br />
20 MK_MAN 13000 13000 <br />
<br />
20 MK_REP 6000 6000 <br />
<br />
50 ST_MAN 5800 5800 <br />
<br />
110 AC_ACCOUNT 8300 8300 <br />
<br />
110 AC_MGR 12000 12000 <br />
<br />
<br />
<br />
SQL> SELECT department_id, department_name,<br />
<br />
2 RPAD(TRIM(NVL(city, 'Not Assinged Yet')), 25, ' ') "City",<br />
<br />
3 COUNT(DISTINCT job_id) "# of Jobs"<br />
<br />
4 FROM employees<br />
<br />
5 RIGHT OUTER JOIN departments USING (department_id)<br />
<br />
6 LEFT OUTER JOIN locations USING (location_id)<br />
<br />
7 GROUP BY department_id, department_name, city;<br />
<br />
<br />
<br />
DEPARTMENT_ID DEPARTMENT_NAME City # of Jobs <br />
<br />
------------- ------------------------------ ------------------------- ---------- <br />
<br />
110 Accounting Seattle 2 <br />
<br />
50 Shipping South San Francisco 2 <br />
<br />
80 Sales Oxford 2 <br />
<br />
10 Administration Seattle 1 <br />
<br />
190 Contracting Seattle 0 <br />
<br />
90 Executive Seattle 2 <br />
<br />
20 Marketing Toronto 2 <br />
<br />
60 IT Southlake 1 <br />
<br />
<br />
<br />
8 rows selected.<br />
<br />
<br />
<br />
SQL> spool off<br />
</pre><br />
==SQL Statements==<br />
===1.===<br />
''YuJin''<br />
<pre><br />
SELECT employee_id, RPAD(CONCAT(CONCAT(last_name, ', '),first_name), 25) "Full Name",<br />
job_id,<br />
TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
"Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
ORDER BY 4 DESC;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT employee_id,<br />
SUBSTR(last_name ||' '|| first_name, 1, 25) "Full Name",<br />
job_id,<br />
TO_CHAR(hire_date,'fmMonth "First in the year" YYYY') "Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date,'fmMON') IN ('MAY','NOV')<br />
ORDER BY hire_date DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select employee_id "Emp#",<br />
(last_name ||', '|| first_name) "Full Name",<br />
job_id "Job",<br />
to_char(trunc(hire_date, 'MONTH'), 'FMMonth Ddspth "in the year"<br />
YYYY') "Start Date"<br />
from employees<br />
where to_char(hire_date, 'fmMonth') in ('May', 'November')<br />
order by hire_date desc;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT employee_id, SUBSTR(last_name ||' '|| first_name, 1, 25) "Full Name",<br />
job_id,<br />
TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
"Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
ORDER BY hire_date DESC;<br />
</pre><br />
<br />
===2.===<br />
''YuJin''<br />
<pre><br />
SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
|| job_id || ' will have a new salary of $' || salary * 1.15 "Happy Employees"<br />
FROM employees<br />
WHERE salary BETWEEN 5000 AND 12000<br />
AND job_id IN ('IT_PROG', 'ST_CLERK')<br />
ORDER BY employee_id;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT 'Employee named '||first_name||' '||last_name||' who is '||job_id||' will have a new salary of $'|| salary *1.15 "Happy Employees"<br />
FROM employees<br />
WHERE job_id IN ('IT_PROG','ST CLERK')<br />
AND (salary BETWEEN 5000 AND 12000)<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
Select ('Employee named ' || first_name ||' '|| last_name || ' who is ' || job_id || ' will have a new salary of ' || (salary*1.15)) "Happy Employees"<br />
From employees<br />
Where salary between 5000 and 12000<br />
And upper(job_id) in ('IT_PROG', 'ST_CLERK')<br />
order by employee_id;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
|| job_id || ' will have a new salary of ' || TO_CHAR(salary * 1.15, 'fm$999999') "Happy Employees"<br />
FROM employees<br />
WHERE salary BETWEEN 5000 AND 12000<br />
AND UPPER(job_id) IN ('IT_PROG', 'ST_CLERK')<br />
ORDER BY employee_id;<br />
</pre><br />
<br />
===3.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, salary, job_id,<br />
RPAD(NVL(TO_CHAR(manager_id), 'No Manager'), 10) "Manager #",<br />
LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
FROM employees<br />
WHERE (job_id LIKE 'MK%' OR manager_id IS NULL)<br />
AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
ORDER BY 2 DESC;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, salary, job_id, NVL(TO_CHAR(manager_id),'No Manager') Manager#,<br />
TO_CHAR(salary*12,'$999,999') "Total Income"<br />
FROM employees<br />
WHERE (manager_id IS NULL<br />
OR job_id LIKE 'MK%')<br />
AND ( salary* (NVL(commission_pct,0) + 1) + 1000 ) > 10000<br />
ORDER BY salary DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, salary, job_id, nvl(to_char(manager_id),'No Manager') Manager#,<br />
to_char(salary*12,'$999,999') "Total Income"<br />
from employees<br />
where (upper(job_id) like 'MK%' or manager_id IS NULL)<br />
and salary * (1 + nvl(commission_pct, 0)) + 1000 > 10000<br />
order by 2 desc;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT last_name, salary, job_id,<br />
SUBSTR(NVL(TO_CHAR(manager_id), 'No Manager'), 1, 10) "Manager #",<br />
LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
FROM employees<br />
WHERE (UPPER(job_id) LIKE 'MK%' OR manager_id IS NULL)<br />
AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
ORDER BY salary DESC;<br />
<br />
</pre><br />
<br />
===4.===<br />
''YuJin''<br />
<pre><br />
SELECT RPAD(CONCAT(CONCAT(first_name,' '),last_name), 25) "Employee", job_id,<br />
LPAD(TRIM(TO_CHAR(salary, '$999,999')), 12, '=') "Salary", department_name<br />
FROM employees e JOIN departments d<br />
ON (e.department_id = d.department_id)<br />
WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
AND salary <<br />
(SELECT MAX(salary)<br />
FROM employees<br />
WHERE SUBSTR(job_id, 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
ORDER BY 1;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT SUBSTR(first_name||' '||last_name, 25) Employee, job_id,<br />
LPAD(TO_CHAR(salary,'$99,999'), 12, '=') Salary, department_name<br />
FROM employees e JOIN departments d<br />
ON (d.department_id=e.department_id)<br />
WHERE salary < (SELECT MAX(salary)<br />
FROM employees<br />
WHERE UPPER(SUBSTR(job_id,4)) NOT IN ('VP', 'PRES', 'MAN', 'MGR')<br />
)<br />
AND UPPER(department_name) IN ('MARKETING','SALES')<br />
ORDER BY first_name, last_name<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select substr(first_name ||' '|| last_name) "Employee", job_id, to_char(salary, '$999,999', 12, '=') Salary, department_name<br />
from employees e join departments d<br />
on (e.department_id = d.department_id)<br />
where upper(department_name) in ('MARKETING', 'SALES')<br />
and salary < (select max(salary)<br />
from employees<br />
where substr(job_id,4) not in ('PRES','VP','MAN','MGR'))<br />
order by "Employee";<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT SUBSTR(first_name ||' '|| last_name, 1, 25) "Employee", job_id,<br />
LPAD(TO_CHAR(salary, 'fm$999,999'), 12, '=') "Salary", department_name<br />
FROM employees e JOIN departments d<br />
ON (e.department_id = d.department_id)<br />
WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
AND salary <<br />
(SELECT MAX(salary)<br />
FROM employees<br />
WHERE SUBSTR(UPPER(job_id), 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
ORDER BY 1;<br />
</pre><br />
<br />
===5.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
AND salary ><br />
(SELECT MAX(salary)<br />
FROM employees<br />
JOIN departments USING (department_id)<br />
JOIN locations USING (location_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE salary > (SELECT MAX(salary)<br />
FROM locations JOIN departments<br />
USING (location_id)<br />
JOIN employees<br />
USING (department_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD')<br />
)<br />
AND UPPER(job_id) NOT LIKE '%PRES'<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, salary, job_id<br />
from employees<br />
where salary > (select max(salary)<br />
from employees join departments<br />
using (department_id)<br />
join locations<br />
using (location_id)<br />
where upper(city) in ('TORONTO','OXFORD'))<br />
and upper(job_id) not like '%PRES'<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
AND salary ><br />
(SELECT MAX(salary)<br />
FROM employees<br />
JOIN departments USING (department_id)<br />
JOIN locations USING (location_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
</pre><br />
<br />
===6.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, first_name, job_id, hire_date<br />
FROM employees<br />
WHERE hire_date ><br />
(SELECT MAX(hire_date)<br />
FROM employees<br />
WHERE department_id =<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'IT'))<br />
AND (department_id !=<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'EXECUTIVE')<br />
OR department_id IS NULL)<br />
ORDER BY 4 DESC;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, first_name, job_id, hire_date<br />
FROM employees e<br />
WHERE hire_date > (SELECT MAX(hire_date)<br />
FROM employees<br />
WHERE department_id = (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'IT'<br />
)<br />
)<br />
AND (department_id <> (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) ='EXECUTIVE')<br />
OR department_id IS NULL)<br />
ORDER BY hire_date DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, first_name, job_id, hire_date<br />
from employees<br />
where hire_date > (select max(hire_date)<br />
from employees<br />
where department_id = (select department_id<br />
from departments<br />
where upper(department_name) = 'IT'))<br />
and (department_id != (select department_id<br />
from departments<br />
where upper(department_name) = 'EXECUTIVE')<br />
or department_id IS NULL)<br />
order by hire_date desc;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT last_name, first_name, job_id, hire_date<br />
FROM employees<br />
WHERE hire_date ><br />
(SELECT MAX(hire_date)<br />
FROM employees<br />
WHERE department_id =<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'IT'))<br />
AND (department_id !=<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'EXECUTIVE')<br />
OR department_id IS NULL)<br />
ORDER BY hire_date DESC;<br />
</pre><br />
<br />
===7.===<br />
''YuJin''<br />
<pre><br />
SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay",<br />
MIN(salary) "Lowest Dept/Job Pay"<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%VP'<br />
AND department_id NOT IN<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) IN ('IT','SALES'))<br />
GROUP BY department_id, job_id<br />
HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
ORDER BY 1, 2;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay", MIN(salary) "Lowest Dept/Job Pay"<br />
FROM employees<br />
WHERE department_id <> ALL (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) IN ('IT','SALES')<br />
)<br />
AND job_id NOT LIKE '%VP'<br />
GROUP BY department_id, job_id<br />
HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
ORDER BY department_id, job_id<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select department_id, job_id, avg(salary) "Average Dept/Job Pay", min(salary) "Lowest Dept/Job Pay"<br />
from employees<br />
where upper(job_id) not like '%VP'<br />
and department_id != all(select department_id<br />
from departments<br />
where upper(department_name) in ('IT','SALES'))<br />
group by department_id, job_id<br />
having min(salary) between 5000 and 15000<br />
order by department_id, job_id<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay",<br />
MIN(salary) "Lowest Dept/Job Pay"<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%VP'<br />
AND department_id != ALL<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) IN ('IT','SALES'))<br />
GROUP BY department_id, job_id<br />
HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
ORDER BY department_id, job_id;<br />
</pre><br />
<br />
===8.===<br />
''YuJin''<br />
<pre><br />
SELECT department_id, department_name,<br />
RPAD(TRIM(NVL(city, 'Not Assinged Yet')), 25, ' ') "City",<br />
COUNT(DISTINCT job_id) "# of Jobs"<br />
FROM employees<br />
RIGHT OUTER JOIN departments USING (department_id)<br />
LEFT OUTER JOIN locations USING (location_id)<br />
GROUP BY department_id, department_name, city;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT department_id, department_name, SUBSTR(NVL(city,'Not Assigned Yet'),1,25) City,<br />
COUNT(DISTINCT job_id) "# of Jobs"<br />
FROM locations l RIGHT OUTER JOIN departments d<br />
USING (location_id)<br />
LEFT OUTER JOIN employees e<br />
USING (department_id)<br />
GROUP BY department_id, department_name, city<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select department_id, department_name, substr(nvl(city,'Not Assigned Yet'),1,25) City,<br />
count(distinct job_id) "# of Jobs"<br />
from employees right outer join departments<br />
using (department_id)<br />
left outer join locations<br />
using (location_id)<br />
group by department_id, department_name, city<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT department_id, department_name,<br />
SUBSTR(NVL(city, 'Not Assinged Yet'),1, 25) "City",<br />
COUNT(DISTINCT job_id) "# of Jobs"<br />
FROM employees<br />
RIGHT OUTER JOIN departments USING (department_id)<br />
LEFT OUTER JOIN locations USING (location_id)<br />
GROUP BY department_id, department_name, city;<br />
<br />
</pre></div>
Yujin.jeong
https://wiki.cdot.senecacollege.ca/w/index.php?title=J.Y.S&diff=48472
J.Y.S
2010-10-20T21:09:38Z
<p>Yujin.jeong: /* 8. */</p>
<hr />
<div>This page is to efficiently manage our group assignments!<br />
== Member List == <br />
*[mailto:,,yjeong@learn.senecac.on.ca,?subject=dbs301 Email All]<br />
<br />
{| class="wikitable sortable" border="1" cellpadding="5"<br />
! First Name !! Last Name !! wiki id !! Learn e-mail !! Phone<br />
|-<br />
|[[User:Yujin.jeong | YuJin]]||Jeong||[[Special:Contributions/yujin.jeong | yujin.jeong]]||[mailto:yjeong@learn.senecac.on.ca?sujbect=gam666 yjeong]|| 647 - 832 - 6771<br />
|-<br />
<br />
|-<br />
|Saad|| || || ||<br />
|-<br />
<br />
|-<br />
|James|| || || ||<br />
|-<br />
|}<br />
<br />
=Assignment 1=<br />
==Due Date==<br />
Thursday, October 21st, 4:00pm<br />
Printout submission only( SELECT Statements + ALL outputs)<br />
==Description==<br />
[https://cs.senecac.on.ca/~nconkic/assign1.doc Assignment1]<br />
==Solution==<br />
<pre><br />
SQL> SELECT employee_id, RPAD(CONCAT(CONCAT(last_name, ', '),first_name), 25) "Full Name",<br />
<br />
2 job_id,<br />
<br />
3 TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
<br />
4 "Start Date"<br />
<br />
5 FROM employees<br />
<br />
6 WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
<br />
7 ORDER BY 4 DESC;<br />
<br />
<br />
<br />
EMPLOYEE_ID Full Name JOB_ID Start Date <br />
<br />
----------- ------------------------- ---------- ----------------------------------------- <br />
<br />
124 Mourgos, Kevin ST_MAN November First in the year 1999 <br />
<br />
178 Grant, Kimberely SA_REP May First in the year 1999 <br />
<br />
174 Abel, Ellen SA_REP May First in the year 1996 <br />
<br />
104 Ernst, Bruce IT_PROG May First in the year 1991 <br />
<br />
<br />
<br />
SQL> SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
<br />
2 || job_id || ' will have a new salary of $' || salary * 1.15 "Happy Employees"<br />
<br />
3 FROM employees<br />
<br />
4 WHERE salary BETWEEN 5000 AND 12000<br />
<br />
5 AND job_id IN ('IT_PROG', 'ST_CLERK')<br />
<br />
6 ORDER BY employee_id;<br />
<br />
<br />
<br />
Happy Employees <br />
<br />
----------------------------------------------------------------------------------------------------<br />
<br />
Employee named Alexander Hunold who is IT_PROG will have a new salary of $10350 <br />
<br />
Employee named Bruce Ernst who is IT_PROG will have a new salary of $6900 <br />
<br />
<br />
<br />
SQL> SELECT last_name, salary, job_id,<br />
<br />
2 RPAD(NVL(TO_CHAR(manager_id), 'No Manager'), 10) "Manager #",<br />
<br />
3 LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
<br />
4 FROM employees<br />
<br />
5 WHERE (job_id LIKE 'MK%' OR manager_id IS NULL)<br />
<br />
6 AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
<br />
7 ORDER BY 2 DESC;<br />
<br />
<br />
<br />
LAST_NAME SALARY JOB_ID Manager # Total Income <br />
<br />
------------------------- ---------- ---------- ---------- ------------ <br />
<br />
King 24000 AD_PRES No Manager $288,000 <br />
<br />
Hartstein 13000 MK_MAN 100 $156,000 <br />
<br />
<br />
<br />
SQL> SELECT RPAD(CONCAT(CONCAT(first_name,' '),last_name), 25) "Employee", job_id,<br />
<br />
2 LPAD(TRIM(TO_CHAR(salary, '$999,999')), 12, '=') "Salary", department_name<br />
<br />
3 FROM employees e JOIN departments d<br />
<br />
4 ON (e.department_id = d.department_id)<br />
<br />
5 WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
<br />
6 AND salary <<br />
<br />
7 (SELECT MAX(salary)<br />
<br />
8 FROM employees<br />
<br />
9 WHERE SUBSTR(job_id, 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
<br />
10 ORDER BY 1;<br />
<br />
<br />
<br />
Employee JOB_ID Salary DEPARTMENT_NAME <br />
<br />
------------------------- ---------- ------------ ------------------------------ <br />
<br />
Eleni Zlotkey SA_MAN =====$10,500 Sales <br />
<br />
Jonathon Taylor SA_REP ======$8,600 Sales <br />
<br />
Pat Fay MK_REP ======$6,000 Marketing <br />
<br />
<br />
<br />
SQL><br />
<br />
SQL> SELECT last_name, salary, job_id<br />
<br />
2 FROM employees<br />
<br />
3 WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
<br />
4 AND salary ><br />
<br />
5 (SELECT MAX(salary)<br />
<br />
6 FROM employees<br />
<br />
7 JOIN departments USING (department_id)<br />
<br />
8 JOIN locations USING (location_id)<br />
<br />
9 WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
<br />
<br />
LAST_NAME SALARY JOB_ID <br />
<br />
------------------------- ---------- ---------- <br />
<br />
Kochhar 17000 AD_VP <br />
<br />
De Haan 17000 AD_VP <br />
<br />
<br />
<br />
SQL> SELECT last_name, first_name, job_id, hire_date<br />
<br />
2 FROM employees<br />
<br />
3 WHERE hire_date ><br />
<br />
4 (SELECT MAX(hire_date)<br />
<br />
5 FROM employees<br />
<br />
6 WHERE department_id =<br />
<br />
7 (SELECT department_id<br />
<br />
8 FROM departments<br />
<br />
9 WHERE UPPER(department_name) = 'IT'))<br />
<br />
10 AND (department_id !=<br />
<br />
11 (SELECT department_id<br />
<br />
12 FROM departments<br />
<br />
13 WHERE UPPER(department_name) = 'EXECUTIVE')<br />
<br />
14 OR department_id IS NULL)<br />
<br />
15 ORDER BY 4 DESC;<br />
<br />
<br />
<br />
LAST_NAME FIRST_NAME JOB_ID HIRE_DATE <br />
<br />
------------------------- -------------------- ---------- --------- <br />
<br />
Zlotkey Eleni SA_MAN 29-JAN-00 <br />
<br />
Mourgos Kevin ST_MAN 16-NOV-99 <br />
<br />
Grant Kimberely SA_REP 24-MAY-99 <br />
<br />
<br />
<br />
SQL> SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay",<br />
<br />
2 MIN(salary) "Lowest Dept/Job Pay"<br />
<br />
3 FROM employees<br />
<br />
4 WHERE UPPER(job_id) NOT LIKE '%VP'<br />
<br />
5 AND department_id NOT IN<br />
<br />
6 (SELECT department_id<br />
<br />
7 FROM departments<br />
<br />
8 WHERE UPPER(department_name) IN ('IT','SALES'))<br />
<br />
9 GROUP BY department_id, job_id<br />
<br />
10 HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
<br />
11 ORDER BY 1, 2;<br />
<br />
<br />
<br />
DEPARTMENT_ID JOB_ID Average Dept/Job Pay Lowest Dept/Job Pay <br />
<br />
------------- ---------- -------------------- ------------------- <br />
<br />
20 MK_MAN 13000 13000 <br />
<br />
20 MK_REP 6000 6000 <br />
<br />
50 ST_MAN 5800 5800 <br />
<br />
110 AC_ACCOUNT 8300 8300 <br />
<br />
110 AC_MGR 12000 12000 <br />
<br />
<br />
<br />
SQL> SELECT department_id, department_name,<br />
<br />
2 RPAD(TRIM(NVL(city, 'Not Assinged Yet')), 25, ' ') "City",<br />
<br />
3 COUNT(DISTINCT job_id) "# of Jobs"<br />
<br />
4 FROM employees<br />
<br />
5 RIGHT OUTER JOIN departments USING (department_id)<br />
<br />
6 LEFT OUTER JOIN locations USING (location_id)<br />
<br />
7 GROUP BY department_id, department_name, city;<br />
<br />
<br />
<br />
DEPARTMENT_ID DEPARTMENT_NAME City # of Jobs <br />
<br />
------------- ------------------------------ ------------------------- ---------- <br />
<br />
110 Accounting Seattle 2 <br />
<br />
50 Shipping South San Francisco 2 <br />
<br />
80 Sales Oxford 2 <br />
<br />
10 Administration Seattle 1 <br />
<br />
190 Contracting Seattle 0 <br />
<br />
90 Executive Seattle 2 <br />
<br />
20 Marketing Toronto 2 <br />
<br />
60 IT Southlake 1 <br />
<br />
<br />
<br />
8 rows selected.<br />
<br />
<br />
<br />
SQL> spool off<br />
</pre><br />
==SQL Statements==<br />
===1.===<br />
''YuJin''<br />
<pre><br />
SELECT employee_id, RPAD(CONCAT(CONCAT(last_name, ', '),first_name), 25) "Full Name",<br />
job_id,<br />
TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
"Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
ORDER BY 4 DESC;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT employee_id,<br />
SUBSTR(last_name ||' '|| first_name, 1, 25) "Full Name",<br />
job_id,<br />
TO_CHAR(hire_date,'fmMonth "First in the year" YYYY') "Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date,'fmMON') IN ('MAY','NOV')<br />
ORDER BY hire_date DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select employee_id "Emp#",<br />
(last_name ||', '|| first_name) "Full Name",<br />
job_id "Job",<br />
to_char(trunc(hire_date, 'MONTH'), 'FMMonth Ddspth "in the year"<br />
YYYY') "Start Date"<br />
from employees<br />
where to_char(hire_date, 'fmMonth') in ('May', 'November')<br />
order by hire_date desc;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT employee_id, SUBSTR(last_name ||' '|| first_name, 1, 25) "Full Name",<br />
job_id,<br />
TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
"Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
ORDER BY hire_date DESC;<br />
</pre><br />
<br />
===2.===<br />
''YuJin''<br />
<pre><br />
SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
|| job_id || ' will have a new salary of $' || salary * 1.15 "Happy Employees"<br />
FROM employees<br />
WHERE salary BETWEEN 5000 AND 12000<br />
AND job_id IN ('IT_PROG', 'ST_CLERK')<br />
ORDER BY employee_id;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT 'Employee named '||first_name||' '||last_name||' who is '||job_id||' will have a new salary of $'|| salary *1.15 "Happy Employees"<br />
FROM employees<br />
WHERE job_id IN ('IT_PROG','ST CLERK')<br />
AND (salary BETWEEN 5000 AND 12000)<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
Select ('Employee named ' || first_name ||' '|| last_name || ' who is ' || job_id || ' will have a new salary of ' || (salary*1.15)) "Happy Employees"<br />
From employees<br />
Where salary between 5000 and 12000<br />
And upper(job_id) in ('IT_PROG', 'ST_CLERK')<br />
order by employee_id;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
|| job_id || ' will have a new salary of ' || TO_CHAR(salary * 1.15, 'fm$999999') "Happy Employees"<br />
FROM employees<br />
WHERE salary BETWEEN 5000 AND 12000<br />
AND UPPER(job_id) IN ('IT_PROG', 'ST_CLERK')<br />
ORDER BY employee_id;<br />
</pre><br />
<br />
===3.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, salary, job_id,<br />
RPAD(NVL(TO_CHAR(manager_id), 'No Manager'), 10) "Manager #",<br />
LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
FROM employees<br />
WHERE (job_id LIKE 'MK%' OR manager_id IS NULL)<br />
AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
ORDER BY 2 DESC;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, salary, job_id, NVL(TO_CHAR(manager_id),'No Manager') Manager#,<br />
TO_CHAR(salary*12,'$999,999') "Total Income"<br />
FROM employees<br />
WHERE (manager_id IS NULL<br />
OR job_id LIKE 'MK%')<br />
AND ( salary* (NVL(commission_pct,0) + 1) + 1000 ) > 10000<br />
ORDER BY salary DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, salary, job_id, nvl(to_char(manager_id),'No Manager') Manager#,<br />
to_char(salary*12,'$999,999') "Total Income"<br />
from employees<br />
where (upper(job_id) like 'MK%' or manager_id IS NULL)<br />
and salary * (1 + nvl(commission_pct, 0)) + 1000 > 10000<br />
order by 2 desc;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT last_name, salary, job_id,<br />
SUBSTR(NVL(TO_CHAR(manager_id), 'No Manager'), 1, 10) "Manager #",<br />
LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
FROM employees<br />
WHERE (UPPER(job_id) LIKE 'MK%' OR manager_id IS NULL)<br />
AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
ORDER BY salary DESC;<br />
<br />
</pre><br />
<br />
===4.===<br />
''YuJin''<br />
<pre><br />
SELECT RPAD(CONCAT(CONCAT(first_name,' '),last_name), 25) "Employee", job_id,<br />
LPAD(TRIM(TO_CHAR(salary, '$999,999')), 12, '=') "Salary", department_name<br />
FROM employees e JOIN departments d<br />
ON (e.department_id = d.department_id)<br />
WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
AND salary <<br />
(SELECT MAX(salary)<br />
FROM employees<br />
WHERE SUBSTR(job_id, 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
ORDER BY 1;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT SUBSTR(first_name||' '||last_name, 25) Employee, job_id,<br />
LPAD(TO_CHAR(salary,'$99,999'), 12, '=') Salary, department_name<br />
FROM employees e JOIN departments d<br />
ON (d.department_id=e.department_id)<br />
WHERE salary < (SELECT MAX(salary)<br />
FROM employees<br />
WHERE UPPER(SUBSTR(job_id,4)) NOT IN ('VP', 'PRES', 'MAN', 'MGR')<br />
)<br />
AND UPPER(department_name) IN ('MARKETING','SALES')<br />
ORDER BY first_name, last_name<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select substr(first_name ||' '|| last_name) "Employee", job_id, to_char(salary, '$999,999', 12, '=') Salary, department_name<br />
from employees e join departments d<br />
on (e.department_id = d.department_id)<br />
where upper(department_name) in ('MARKETING', 'SALES')<br />
and salary < (select max(salary)<br />
from employees<br />
where substr(job_id,4) not in ('PRES','VP','MAN','MGR'))<br />
order by "Employee";<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT SUBSTR(first_name ||' '|| last_name, 1, 25) "Employee", job_id,<br />
LPAD(TO_CHAR(salary, 'fm$999,999'), 12, '=') "Salary", department_name<br />
FROM employees e JOIN departments d<br />
ON (e.department_id = d.department_id)<br />
WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
AND salary <<br />
(SELECT MAX(salary)<br />
FROM employees<br />
WHERE SUBSTR(UPPER(job_id), 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
ORDER BY 1;<br />
</pre><br />
<br />
===5.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
AND salary ><br />
(SELECT MAX(salary)<br />
FROM employees<br />
JOIN departments USING (department_id)<br />
JOIN locations USING (location_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE salary > (SELECT MAX(salary)<br />
FROM locations JOIN departments<br />
USING (location_id)<br />
JOIN employees<br />
USING (department_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD')<br />
)<br />
AND UPPER(job_id) NOT LIKE '%PRES'<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, salary, job_id<br />
from employees<br />
where salary > (select max(salary)<br />
from employees join departments<br />
using (department_id)<br />
join locations<br />
using (location_id)<br />
where upper(city) in ('TORONTO','OXFORD'))<br />
and upper(job_id) not like '%PRES'<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
AND salary ><br />
(SELECT MAX(salary)<br />
FROM employees<br />
JOIN departments USING (department_id)<br />
JOIN locations USING (location_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
</pre><br />
<br />
===6.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, first_name, job_id, hire_date<br />
FROM employees<br />
WHERE hire_date ><br />
(SELECT MAX(hire_date)<br />
FROM employees<br />
WHERE department_id =<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'IT'))<br />
AND (department_id !=<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'EXECUTIVE')<br />
OR department_id IS NULL)<br />
ORDER BY 4 DESC;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, first_name, job_id, hire_date<br />
FROM employees e<br />
WHERE hire_date > (SELECT MAX(hire_date)<br />
FROM employees<br />
WHERE department_id = (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'IT'<br />
)<br />
)<br />
AND (department_id <> (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) ='EXECUTIVE')<br />
OR department_id IS NULL)<br />
ORDER BY hire_date DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, first_name, job_id, hire_date<br />
from employees<br />
where hire_date > (select max(hire_date)<br />
from employees<br />
where department_id = (select department_id<br />
from departments<br />
where upper(department_name) = 'IT'))<br />
and (department_id != (select department_id<br />
from departments<br />
where upper(department_name) = 'EXECUTIVE')<br />
or department_id IS NULL)<br />
order by hire_date desc;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT last_name, first_name, job_id, hire_date<br />
FROM employees<br />
WHERE hire_date ><br />
(SELECT MAX(hire_date)<br />
FROM employees<br />
WHERE department_id =<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'IT'))<br />
AND (department_id !=<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'EXECUTIVE')<br />
OR department_id IS NULL)<br />
ORDER BY hire_date DESC;<br />
</pre><br />
<br />
===7.===<br />
''YuJin''<br />
<pre><br />
SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay",<br />
MIN(salary) "Lowest Dept/Job Pay"<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%VP'<br />
AND department_id NOT IN<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) IN ('IT','SALES'))<br />
GROUP BY department_id, job_id<br />
HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
ORDER BY 1, 2;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay", MIN(salary) "Lowest Dept/Job Pay"<br />
FROM employees<br />
WHERE department_id <> ALL (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) IN ('IT','SALES')<br />
)<br />
AND job_id NOT LIKE '%VP'<br />
GROUP BY department_id, job_id<br />
HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
ORDER BY department_id, job_id<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select department_id, job_id, avg(salary) "Average Dept/Job Pay", min(salary) "Lowest Dept/Job Pay"<br />
from employees<br />
where upper(job_id) not like '%VP'<br />
and department_id != all(select department_id<br />
from departments<br />
where upper(department_name) in ('IT','SALES'))<br />
group by department_id, job_id<br />
having min(salary) between 5000 and 15000<br />
order by department_id, job_id<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay",<br />
MIN(salary) "Lowest Dept/Job Pay"<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%VP'<br />
AND department_id != ALL<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) IN ('IT','SALES'))<br />
GROUP BY department_id, job_id<br />
HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
ORDER BY department_id, job_id;<br />
</pre><br />
<br />
===8.===<br />
''YuJin''<br />
<pre><br />
SELECT department_id, department_name,<br />
RPAD(TRIM(NVL(city, 'Not Assinged Yet')), 25, ' ') "City",<br />
COUNT(DISTINCT job_id) "# of Jobs"<br />
FROM employees<br />
RIGHT OUTER JOIN departments USING (department_id)<br />
LEFT OUTER JOIN locations USING (location_id)<br />
GROUP BY department_id, department_name, city;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT department_id, department_name, SUBSTR(NVL(city,'Not Assigned Yet'),1,25) City,<br />
COUNT(DISTINCT job_id) "# of Jobs"<br />
FROM locations l RIGHT OUTER JOIN departments d<br />
USING (location_id)<br />
LEFT OUTER JOIN employees e<br />
USING (department_id)<br />
GROUP BY department_id, department_name, city<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select department_id, department_name, substr(nvl(city,'Not Assigned Yet'),1,25) City,<br />
count(distinct job_id) "# of Jobs"<br />
from employees right outer join departments<br />
using (department_id)<br />
left outer join locations<br />
using (location_id)<br />
group by department_id, department_name, city<br />
</pre><br />
<br />
''YuJin''<br />
<pre><br />
SELECT department_id, department_name,<br />
SUBSTR(NVL(city, 'Not Assinged Yet'),1, 25) "City",<br />
COUNT(DISTINCT job_id) "# of Jobs"<br />
FROM employees<br />
RIGHT OUTER JOIN departments USING (department_id)<br />
LEFT OUTER JOIN locations USING (location_id)<br />
GROUP BY department_id, department_name, city;<br />
<br />
</pre></div>
Yujin.jeong
https://wiki.cdot.senecacollege.ca/w/index.php?title=J.Y.S&diff=48471
J.Y.S
2010-10-20T20:58:07Z
<p>Yujin.jeong: /* 7. */</p>
<hr />
<div>This page is to efficiently manage our group assignments!<br />
== Member List == <br />
*[mailto:,,yjeong@learn.senecac.on.ca,?subject=dbs301 Email All]<br />
<br />
{| class="wikitable sortable" border="1" cellpadding="5"<br />
! First Name !! Last Name !! wiki id !! Learn e-mail !! Phone<br />
|-<br />
|[[User:Yujin.jeong | YuJin]]||Jeong||[[Special:Contributions/yujin.jeong | yujin.jeong]]||[mailto:yjeong@learn.senecac.on.ca?sujbect=gam666 yjeong]|| 647 - 832 - 6771<br />
|-<br />
<br />
|-<br />
|Saad|| || || ||<br />
|-<br />
<br />
|-<br />
|James|| || || ||<br />
|-<br />
|}<br />
<br />
=Assignment 1=<br />
==Due Date==<br />
Thursday, October 21st, 4:00pm<br />
Printout submission only( SELECT Statements + ALL outputs)<br />
==Description==<br />
[https://cs.senecac.on.ca/~nconkic/assign1.doc Assignment1]<br />
==Solution==<br />
<pre><br />
SQL> SELECT employee_id, RPAD(CONCAT(CONCAT(last_name, ', '),first_name), 25) "Full Name",<br />
<br />
2 job_id,<br />
<br />
3 TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
<br />
4 "Start Date"<br />
<br />
5 FROM employees<br />
<br />
6 WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
<br />
7 ORDER BY 4 DESC;<br />
<br />
<br />
<br />
EMPLOYEE_ID Full Name JOB_ID Start Date <br />
<br />
----------- ------------------------- ---------- ----------------------------------------- <br />
<br />
124 Mourgos, Kevin ST_MAN November First in the year 1999 <br />
<br />
178 Grant, Kimberely SA_REP May First in the year 1999 <br />
<br />
174 Abel, Ellen SA_REP May First in the year 1996 <br />
<br />
104 Ernst, Bruce IT_PROG May First in the year 1991 <br />
<br />
<br />
<br />
SQL> SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
<br />
2 || job_id || ' will have a new salary of $' || salary * 1.15 "Happy Employees"<br />
<br />
3 FROM employees<br />
<br />
4 WHERE salary BETWEEN 5000 AND 12000<br />
<br />
5 AND job_id IN ('IT_PROG', 'ST_CLERK')<br />
<br />
6 ORDER BY employee_id;<br />
<br />
<br />
<br />
Happy Employees <br />
<br />
----------------------------------------------------------------------------------------------------<br />
<br />
Employee named Alexander Hunold who is IT_PROG will have a new salary of $10350 <br />
<br />
Employee named Bruce Ernst who is IT_PROG will have a new salary of $6900 <br />
<br />
<br />
<br />
SQL> SELECT last_name, salary, job_id,<br />
<br />
2 RPAD(NVL(TO_CHAR(manager_id), 'No Manager'), 10) "Manager #",<br />
<br />
3 LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
<br />
4 FROM employees<br />
<br />
5 WHERE (job_id LIKE 'MK%' OR manager_id IS NULL)<br />
<br />
6 AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
<br />
7 ORDER BY 2 DESC;<br />
<br />
<br />
<br />
LAST_NAME SALARY JOB_ID Manager # Total Income <br />
<br />
------------------------- ---------- ---------- ---------- ------------ <br />
<br />
King 24000 AD_PRES No Manager $288,000 <br />
<br />
Hartstein 13000 MK_MAN 100 $156,000 <br />
<br />
<br />
<br />
SQL> SELECT RPAD(CONCAT(CONCAT(first_name,' '),last_name), 25) "Employee", job_id,<br />
<br />
2 LPAD(TRIM(TO_CHAR(salary, '$999,999')), 12, '=') "Salary", department_name<br />
<br />
3 FROM employees e JOIN departments d<br />
<br />
4 ON (e.department_id = d.department_id)<br />
<br />
5 WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
<br />
6 AND salary <<br />
<br />
7 (SELECT MAX(salary)<br />
<br />
8 FROM employees<br />
<br />
9 WHERE SUBSTR(job_id, 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
<br />
10 ORDER BY 1;<br />
<br />
<br />
<br />
Employee JOB_ID Salary DEPARTMENT_NAME <br />
<br />
------------------------- ---------- ------------ ------------------------------ <br />
<br />
Eleni Zlotkey SA_MAN =====$10,500 Sales <br />
<br />
Jonathon Taylor SA_REP ======$8,600 Sales <br />
<br />
Pat Fay MK_REP ======$6,000 Marketing <br />
<br />
<br />
<br />
SQL><br />
<br />
SQL> SELECT last_name, salary, job_id<br />
<br />
2 FROM employees<br />
<br />
3 WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
<br />
4 AND salary ><br />
<br />
5 (SELECT MAX(salary)<br />
<br />
6 FROM employees<br />
<br />
7 JOIN departments USING (department_id)<br />
<br />
8 JOIN locations USING (location_id)<br />
<br />
9 WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
<br />
<br />
LAST_NAME SALARY JOB_ID <br />
<br />
------------------------- ---------- ---------- <br />
<br />
Kochhar 17000 AD_VP <br />
<br />
De Haan 17000 AD_VP <br />
<br />
<br />
<br />
SQL> SELECT last_name, first_name, job_id, hire_date<br />
<br />
2 FROM employees<br />
<br />
3 WHERE hire_date ><br />
<br />
4 (SELECT MAX(hire_date)<br />
<br />
5 FROM employees<br />
<br />
6 WHERE department_id =<br />
<br />
7 (SELECT department_id<br />
<br />
8 FROM departments<br />
<br />
9 WHERE UPPER(department_name) = 'IT'))<br />
<br />
10 AND (department_id !=<br />
<br />
11 (SELECT department_id<br />
<br />
12 FROM departments<br />
<br />
13 WHERE UPPER(department_name) = 'EXECUTIVE')<br />
<br />
14 OR department_id IS NULL)<br />
<br />
15 ORDER BY 4 DESC;<br />
<br />
<br />
<br />
LAST_NAME FIRST_NAME JOB_ID HIRE_DATE <br />
<br />
------------------------- -------------------- ---------- --------- <br />
<br />
Zlotkey Eleni SA_MAN 29-JAN-00 <br />
<br />
Mourgos Kevin ST_MAN 16-NOV-99 <br />
<br />
Grant Kimberely SA_REP 24-MAY-99 <br />
<br />
<br />
<br />
SQL> SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay",<br />
<br />
2 MIN(salary) "Lowest Dept/Job Pay"<br />
<br />
3 FROM employees<br />
<br />
4 WHERE UPPER(job_id) NOT LIKE '%VP'<br />
<br />
5 AND department_id NOT IN<br />
<br />
6 (SELECT department_id<br />
<br />
7 FROM departments<br />
<br />
8 WHERE UPPER(department_name) IN ('IT','SALES'))<br />
<br />
9 GROUP BY department_id, job_id<br />
<br />
10 HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
<br />
11 ORDER BY 1, 2;<br />
<br />
<br />
<br />
DEPARTMENT_ID JOB_ID Average Dept/Job Pay Lowest Dept/Job Pay <br />
<br />
------------- ---------- -------------------- ------------------- <br />
<br />
20 MK_MAN 13000 13000 <br />
<br />
20 MK_REP 6000 6000 <br />
<br />
50 ST_MAN 5800 5800 <br />
<br />
110 AC_ACCOUNT 8300 8300 <br />
<br />
110 AC_MGR 12000 12000 <br />
<br />
<br />
<br />
SQL> SELECT department_id, department_name,<br />
<br />
2 RPAD(TRIM(NVL(city, 'Not Assinged Yet')), 25, ' ') "City",<br />
<br />
3 COUNT(DISTINCT job_id) "# of Jobs"<br />
<br />
4 FROM employees<br />
<br />
5 RIGHT OUTER JOIN departments USING (department_id)<br />
<br />
6 LEFT OUTER JOIN locations USING (location_id)<br />
<br />
7 GROUP BY department_id, department_name, city;<br />
<br />
<br />
<br />
DEPARTMENT_ID DEPARTMENT_NAME City # of Jobs <br />
<br />
------------- ------------------------------ ------------------------- ---------- <br />
<br />
110 Accounting Seattle 2 <br />
<br />
50 Shipping South San Francisco 2 <br />
<br />
80 Sales Oxford 2 <br />
<br />
10 Administration Seattle 1 <br />
<br />
190 Contracting Seattle 0 <br />
<br />
90 Executive Seattle 2 <br />
<br />
20 Marketing Toronto 2 <br />
<br />
60 IT Southlake 1 <br />
<br />
<br />
<br />
8 rows selected.<br />
<br />
<br />
<br />
SQL> spool off<br />
</pre><br />
==SQL Statements==<br />
===1.===<br />
''YuJin''<br />
<pre><br />
SELECT employee_id, RPAD(CONCAT(CONCAT(last_name, ', '),first_name), 25) "Full Name",<br />
job_id,<br />
TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
"Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
ORDER BY 4 DESC;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT employee_id,<br />
SUBSTR(last_name ||' '|| first_name, 1, 25) "Full Name",<br />
job_id,<br />
TO_CHAR(hire_date,'fmMonth "First in the year" YYYY') "Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date,'fmMON') IN ('MAY','NOV')<br />
ORDER BY hire_date DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select employee_id "Emp#",<br />
(last_name ||', '|| first_name) "Full Name",<br />
job_id "Job",<br />
to_char(trunc(hire_date, 'MONTH'), 'FMMonth Ddspth "in the year"<br />
YYYY') "Start Date"<br />
from employees<br />
where to_char(hire_date, 'fmMonth') in ('May', 'November')<br />
order by hire_date desc;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT employee_id, SUBSTR(last_name ||' '|| first_name, 1, 25) "Full Name",<br />
job_id,<br />
TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
"Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
ORDER BY hire_date DESC;<br />
</pre><br />
<br />
===2.===<br />
''YuJin''<br />
<pre><br />
SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
|| job_id || ' will have a new salary of $' || salary * 1.15 "Happy Employees"<br />
FROM employees<br />
WHERE salary BETWEEN 5000 AND 12000<br />
AND job_id IN ('IT_PROG', 'ST_CLERK')<br />
ORDER BY employee_id;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT 'Employee named '||first_name||' '||last_name||' who is '||job_id||' will have a new salary of $'|| salary *1.15 "Happy Employees"<br />
FROM employees<br />
WHERE job_id IN ('IT_PROG','ST CLERK')<br />
AND (salary BETWEEN 5000 AND 12000)<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
Select ('Employee named ' || first_name ||' '|| last_name || ' who is ' || job_id || ' will have a new salary of ' || (salary*1.15)) "Happy Employees"<br />
From employees<br />
Where salary between 5000 and 12000<br />
And upper(job_id) in ('IT_PROG', 'ST_CLERK')<br />
order by employee_id;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
|| job_id || ' will have a new salary of ' || TO_CHAR(salary * 1.15, 'fm$999999') "Happy Employees"<br />
FROM employees<br />
WHERE salary BETWEEN 5000 AND 12000<br />
AND UPPER(job_id) IN ('IT_PROG', 'ST_CLERK')<br />
ORDER BY employee_id;<br />
</pre><br />
<br />
===3.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, salary, job_id,<br />
RPAD(NVL(TO_CHAR(manager_id), 'No Manager'), 10) "Manager #",<br />
LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
FROM employees<br />
WHERE (job_id LIKE 'MK%' OR manager_id IS NULL)<br />
AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
ORDER BY 2 DESC;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, salary, job_id, NVL(TO_CHAR(manager_id),'No Manager') Manager#,<br />
TO_CHAR(salary*12,'$999,999') "Total Income"<br />
FROM employees<br />
WHERE (manager_id IS NULL<br />
OR job_id LIKE 'MK%')<br />
AND ( salary* (NVL(commission_pct,0) + 1) + 1000 ) > 10000<br />
ORDER BY salary DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, salary, job_id, nvl(to_char(manager_id),'No Manager') Manager#,<br />
to_char(salary*12,'$999,999') "Total Income"<br />
from employees<br />
where (upper(job_id) like 'MK%' or manager_id IS NULL)<br />
and salary * (1 + nvl(commission_pct, 0)) + 1000 > 10000<br />
order by 2 desc;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT last_name, salary, job_id,<br />
SUBSTR(NVL(TO_CHAR(manager_id), 'No Manager'), 1, 10) "Manager #",<br />
LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
FROM employees<br />
WHERE (UPPER(job_id) LIKE 'MK%' OR manager_id IS NULL)<br />
AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
ORDER BY salary DESC;<br />
<br />
</pre><br />
<br />
===4.===<br />
''YuJin''<br />
<pre><br />
SELECT RPAD(CONCAT(CONCAT(first_name,' '),last_name), 25) "Employee", job_id,<br />
LPAD(TRIM(TO_CHAR(salary, '$999,999')), 12, '=') "Salary", department_name<br />
FROM employees e JOIN departments d<br />
ON (e.department_id = d.department_id)<br />
WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
AND salary <<br />
(SELECT MAX(salary)<br />
FROM employees<br />
WHERE SUBSTR(job_id, 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
ORDER BY 1;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT SUBSTR(first_name||' '||last_name, 25) Employee, job_id,<br />
LPAD(TO_CHAR(salary,'$99,999'), 12, '=') Salary, department_name<br />
FROM employees e JOIN departments d<br />
ON (d.department_id=e.department_id)<br />
WHERE salary < (SELECT MAX(salary)<br />
FROM employees<br />
WHERE UPPER(SUBSTR(job_id,4)) NOT IN ('VP', 'PRES', 'MAN', 'MGR')<br />
)<br />
AND UPPER(department_name) IN ('MARKETING','SALES')<br />
ORDER BY first_name, last_name<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select substr(first_name ||' '|| last_name) "Employee", job_id, to_char(salary, '$999,999', 12, '=') Salary, department_name<br />
from employees e join departments d<br />
on (e.department_id = d.department_id)<br />
where upper(department_name) in ('MARKETING', 'SALES')<br />
and salary < (select max(salary)<br />
from employees<br />
where substr(job_id,4) not in ('PRES','VP','MAN','MGR'))<br />
order by "Employee";<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT SUBSTR(first_name ||' '|| last_name, 1, 25) "Employee", job_id,<br />
LPAD(TO_CHAR(salary, 'fm$999,999'), 12, '=') "Salary", department_name<br />
FROM employees e JOIN departments d<br />
ON (e.department_id = d.department_id)<br />
WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
AND salary <<br />
(SELECT MAX(salary)<br />
FROM employees<br />
WHERE SUBSTR(UPPER(job_id), 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
ORDER BY 1;<br />
</pre><br />
<br />
===5.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
AND salary ><br />
(SELECT MAX(salary)<br />
FROM employees<br />
JOIN departments USING (department_id)<br />
JOIN locations USING (location_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE salary > (SELECT MAX(salary)<br />
FROM locations JOIN departments<br />
USING (location_id)<br />
JOIN employees<br />
USING (department_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD')<br />
)<br />
AND UPPER(job_id) NOT LIKE '%PRES'<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, salary, job_id<br />
from employees<br />
where salary > (select max(salary)<br />
from employees join departments<br />
using (department_id)<br />
join locations<br />
using (location_id)<br />
where upper(city) in ('TORONTO','OXFORD'))<br />
and upper(job_id) not like '%PRES'<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
AND salary ><br />
(SELECT MAX(salary)<br />
FROM employees<br />
JOIN departments USING (department_id)<br />
JOIN locations USING (location_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
</pre><br />
<br />
===6.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, first_name, job_id, hire_date<br />
FROM employees<br />
WHERE hire_date ><br />
(SELECT MAX(hire_date)<br />
FROM employees<br />
WHERE department_id =<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'IT'))<br />
AND (department_id !=<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'EXECUTIVE')<br />
OR department_id IS NULL)<br />
ORDER BY 4 DESC;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, first_name, job_id, hire_date<br />
FROM employees e<br />
WHERE hire_date > (SELECT MAX(hire_date)<br />
FROM employees<br />
WHERE department_id = (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'IT'<br />
)<br />
)<br />
AND (department_id <> (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) ='EXECUTIVE')<br />
OR department_id IS NULL)<br />
ORDER BY hire_date DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, first_name, job_id, hire_date<br />
from employees<br />
where hire_date > (select max(hire_date)<br />
from employees<br />
where department_id = (select department_id<br />
from departments<br />
where upper(department_name) = 'IT'))<br />
and (department_id != (select department_id<br />
from departments<br />
where upper(department_name) = 'EXECUTIVE')<br />
or department_id IS NULL)<br />
order by hire_date desc;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT last_name, first_name, job_id, hire_date<br />
FROM employees<br />
WHERE hire_date ><br />
(SELECT MAX(hire_date)<br />
FROM employees<br />
WHERE department_id =<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'IT'))<br />
AND (department_id !=<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'EXECUTIVE')<br />
OR department_id IS NULL)<br />
ORDER BY hire_date DESC;<br />
</pre><br />
<br />
===7.===<br />
''YuJin''<br />
<pre><br />
SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay",<br />
MIN(salary) "Lowest Dept/Job Pay"<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%VP'<br />
AND department_id NOT IN<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) IN ('IT','SALES'))<br />
GROUP BY department_id, job_id<br />
HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
ORDER BY 1, 2;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay", MIN(salary) "Lowest Dept/Job Pay"<br />
FROM employees<br />
WHERE department_id <> ALL (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) IN ('IT','SALES')<br />
)<br />
AND job_id NOT LIKE '%VP'<br />
GROUP BY department_id, job_id<br />
HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
ORDER BY department_id, job_id<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select department_id, job_id, avg(salary) "Average Dept/Job Pay", min(salary) "Lowest Dept/Job Pay"<br />
from employees<br />
where upper(job_id) not like '%VP'<br />
and department_id != all(select department_id<br />
from departments<br />
where upper(department_name) in ('IT','SALES'))<br />
group by department_id, job_id<br />
having min(salary) between 5000 and 15000<br />
order by department_id, job_id<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay",<br />
MIN(salary) "Lowest Dept/Job Pay"<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%VP'<br />
AND department_id != ALL<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) IN ('IT','SALES'))<br />
GROUP BY department_id, job_id<br />
HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
ORDER BY department_id, job_id;<br />
</pre><br />
<br />
===8.===<br />
''YuJin''<br />
<pre><br />
SELECT department_id, department_name,<br />
RPAD(TRIM(NVL(city, 'Not Assinged Yet')), 25, ' ') "City",<br />
COUNT(DISTINCT job_id) "# of Jobs"<br />
FROM employees<br />
RIGHT OUTER JOIN departments USING (department_id)<br />
LEFT OUTER JOIN locations USING (location_id)<br />
GROUP BY department_id, department_name, city;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT department_id, department_name, SUBSTR(NVL(city,'Not Assigned Yet'),1,25) City,<br />
COUNT(DISTINCT job_id) "# of Jobs"<br />
FROM locations l RIGHT OUTER JOIN departments d<br />
USING (location_id)<br />
LEFT OUTER JOIN employees e<br />
USING (department_id)<br />
GROUP BY department_id, department_name, city<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select department_id, department_name, substr(nvl(city,'Not Assigned Yet'),1,25) City,<br />
count(distinct job_id) "# of Jobs"<br />
from employees right outer join departments<br />
using (department_id)<br />
left outer join locations<br />
using (location_id)<br />
group by department_id, department_name, city<br />
</pre></div>
Yujin.jeong
https://wiki.cdot.senecacollege.ca/w/index.php?title=J.Y.S&diff=48470
J.Y.S
2010-10-20T20:56:43Z
<p>Yujin.jeong: /* 7. */</p>
<hr />
<div>This page is to efficiently manage our group assignments!<br />
== Member List == <br />
*[mailto:,,yjeong@learn.senecac.on.ca,?subject=dbs301 Email All]<br />
<br />
{| class="wikitable sortable" border="1" cellpadding="5"<br />
! First Name !! Last Name !! wiki id !! Learn e-mail !! Phone<br />
|-<br />
|[[User:Yujin.jeong | YuJin]]||Jeong||[[Special:Contributions/yujin.jeong | yujin.jeong]]||[mailto:yjeong@learn.senecac.on.ca?sujbect=gam666 yjeong]|| 647 - 832 - 6771<br />
|-<br />
<br />
|-<br />
|Saad|| || || ||<br />
|-<br />
<br />
|-<br />
|James|| || || ||<br />
|-<br />
|}<br />
<br />
=Assignment 1=<br />
==Due Date==<br />
Thursday, October 21st, 4:00pm<br />
Printout submission only( SELECT Statements + ALL outputs)<br />
==Description==<br />
[https://cs.senecac.on.ca/~nconkic/assign1.doc Assignment1]<br />
==Solution==<br />
<pre><br />
SQL> SELECT employee_id, RPAD(CONCAT(CONCAT(last_name, ', '),first_name), 25) "Full Name",<br />
<br />
2 job_id,<br />
<br />
3 TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
<br />
4 "Start Date"<br />
<br />
5 FROM employees<br />
<br />
6 WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
<br />
7 ORDER BY 4 DESC;<br />
<br />
<br />
<br />
EMPLOYEE_ID Full Name JOB_ID Start Date <br />
<br />
----------- ------------------------- ---------- ----------------------------------------- <br />
<br />
124 Mourgos, Kevin ST_MAN November First in the year 1999 <br />
<br />
178 Grant, Kimberely SA_REP May First in the year 1999 <br />
<br />
174 Abel, Ellen SA_REP May First in the year 1996 <br />
<br />
104 Ernst, Bruce IT_PROG May First in the year 1991 <br />
<br />
<br />
<br />
SQL> SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
<br />
2 || job_id || ' will have a new salary of $' || salary * 1.15 "Happy Employees"<br />
<br />
3 FROM employees<br />
<br />
4 WHERE salary BETWEEN 5000 AND 12000<br />
<br />
5 AND job_id IN ('IT_PROG', 'ST_CLERK')<br />
<br />
6 ORDER BY employee_id;<br />
<br />
<br />
<br />
Happy Employees <br />
<br />
----------------------------------------------------------------------------------------------------<br />
<br />
Employee named Alexander Hunold who is IT_PROG will have a new salary of $10350 <br />
<br />
Employee named Bruce Ernst who is IT_PROG will have a new salary of $6900 <br />
<br />
<br />
<br />
SQL> SELECT last_name, salary, job_id,<br />
<br />
2 RPAD(NVL(TO_CHAR(manager_id), 'No Manager'), 10) "Manager #",<br />
<br />
3 LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
<br />
4 FROM employees<br />
<br />
5 WHERE (job_id LIKE 'MK%' OR manager_id IS NULL)<br />
<br />
6 AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
<br />
7 ORDER BY 2 DESC;<br />
<br />
<br />
<br />
LAST_NAME SALARY JOB_ID Manager # Total Income <br />
<br />
------------------------- ---------- ---------- ---------- ------------ <br />
<br />
King 24000 AD_PRES No Manager $288,000 <br />
<br />
Hartstein 13000 MK_MAN 100 $156,000 <br />
<br />
<br />
<br />
SQL> SELECT RPAD(CONCAT(CONCAT(first_name,' '),last_name), 25) "Employee", job_id,<br />
<br />
2 LPAD(TRIM(TO_CHAR(salary, '$999,999')), 12, '=') "Salary", department_name<br />
<br />
3 FROM employees e JOIN departments d<br />
<br />
4 ON (e.department_id = d.department_id)<br />
<br />
5 WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
<br />
6 AND salary <<br />
<br />
7 (SELECT MAX(salary)<br />
<br />
8 FROM employees<br />
<br />
9 WHERE SUBSTR(job_id, 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
<br />
10 ORDER BY 1;<br />
<br />
<br />
<br />
Employee JOB_ID Salary DEPARTMENT_NAME <br />
<br />
------------------------- ---------- ------------ ------------------------------ <br />
<br />
Eleni Zlotkey SA_MAN =====$10,500 Sales <br />
<br />
Jonathon Taylor SA_REP ======$8,600 Sales <br />
<br />
Pat Fay MK_REP ======$6,000 Marketing <br />
<br />
<br />
<br />
SQL><br />
<br />
SQL> SELECT last_name, salary, job_id<br />
<br />
2 FROM employees<br />
<br />
3 WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
<br />
4 AND salary ><br />
<br />
5 (SELECT MAX(salary)<br />
<br />
6 FROM employees<br />
<br />
7 JOIN departments USING (department_id)<br />
<br />
8 JOIN locations USING (location_id)<br />
<br />
9 WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
<br />
<br />
LAST_NAME SALARY JOB_ID <br />
<br />
------------------------- ---------- ---------- <br />
<br />
Kochhar 17000 AD_VP <br />
<br />
De Haan 17000 AD_VP <br />
<br />
<br />
<br />
SQL> SELECT last_name, first_name, job_id, hire_date<br />
<br />
2 FROM employees<br />
<br />
3 WHERE hire_date ><br />
<br />
4 (SELECT MAX(hire_date)<br />
<br />
5 FROM employees<br />
<br />
6 WHERE department_id =<br />
<br />
7 (SELECT department_id<br />
<br />
8 FROM departments<br />
<br />
9 WHERE UPPER(department_name) = 'IT'))<br />
<br />
10 AND (department_id !=<br />
<br />
11 (SELECT department_id<br />
<br />
12 FROM departments<br />
<br />
13 WHERE UPPER(department_name) = 'EXECUTIVE')<br />
<br />
14 OR department_id IS NULL)<br />
<br />
15 ORDER BY 4 DESC;<br />
<br />
<br />
<br />
LAST_NAME FIRST_NAME JOB_ID HIRE_DATE <br />
<br />
------------------------- -------------------- ---------- --------- <br />
<br />
Zlotkey Eleni SA_MAN 29-JAN-00 <br />
<br />
Mourgos Kevin ST_MAN 16-NOV-99 <br />
<br />
Grant Kimberely SA_REP 24-MAY-99 <br />
<br />
<br />
<br />
SQL> SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay",<br />
<br />
2 MIN(salary) "Lowest Dept/Job Pay"<br />
<br />
3 FROM employees<br />
<br />
4 WHERE UPPER(job_id) NOT LIKE '%VP'<br />
<br />
5 AND department_id NOT IN<br />
<br />
6 (SELECT department_id<br />
<br />
7 FROM departments<br />
<br />
8 WHERE UPPER(department_name) IN ('IT','SALES'))<br />
<br />
9 GROUP BY department_id, job_id<br />
<br />
10 HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
<br />
11 ORDER BY 1, 2;<br />
<br />
<br />
<br />
DEPARTMENT_ID JOB_ID Average Dept/Job Pay Lowest Dept/Job Pay <br />
<br />
------------- ---------- -------------------- ------------------- <br />
<br />
20 MK_MAN 13000 13000 <br />
<br />
20 MK_REP 6000 6000 <br />
<br />
50 ST_MAN 5800 5800 <br />
<br />
110 AC_ACCOUNT 8300 8300 <br />
<br />
110 AC_MGR 12000 12000 <br />
<br />
<br />
<br />
SQL> SELECT department_id, department_name,<br />
<br />
2 RPAD(TRIM(NVL(city, 'Not Assinged Yet')), 25, ' ') "City",<br />
<br />
3 COUNT(DISTINCT job_id) "# of Jobs"<br />
<br />
4 FROM employees<br />
<br />
5 RIGHT OUTER JOIN departments USING (department_id)<br />
<br />
6 LEFT OUTER JOIN locations USING (location_id)<br />
<br />
7 GROUP BY department_id, department_name, city;<br />
<br />
<br />
<br />
DEPARTMENT_ID DEPARTMENT_NAME City # of Jobs <br />
<br />
------------- ------------------------------ ------------------------- ---------- <br />
<br />
110 Accounting Seattle 2 <br />
<br />
50 Shipping South San Francisco 2 <br />
<br />
80 Sales Oxford 2 <br />
<br />
10 Administration Seattle 1 <br />
<br />
190 Contracting Seattle 0 <br />
<br />
90 Executive Seattle 2 <br />
<br />
20 Marketing Toronto 2 <br />
<br />
60 IT Southlake 1 <br />
<br />
<br />
<br />
8 rows selected.<br />
<br />
<br />
<br />
SQL> spool off<br />
</pre><br />
==SQL Statements==<br />
===1.===<br />
''YuJin''<br />
<pre><br />
SELECT employee_id, RPAD(CONCAT(CONCAT(last_name, ', '),first_name), 25) "Full Name",<br />
job_id,<br />
TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
"Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
ORDER BY 4 DESC;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT employee_id,<br />
SUBSTR(last_name ||' '|| first_name, 1, 25) "Full Name",<br />
job_id,<br />
TO_CHAR(hire_date,'fmMonth "First in the year" YYYY') "Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date,'fmMON') IN ('MAY','NOV')<br />
ORDER BY hire_date DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select employee_id "Emp#",<br />
(last_name ||', '|| first_name) "Full Name",<br />
job_id "Job",<br />
to_char(trunc(hire_date, 'MONTH'), 'FMMonth Ddspth "in the year"<br />
YYYY') "Start Date"<br />
from employees<br />
where to_char(hire_date, 'fmMonth') in ('May', 'November')<br />
order by hire_date desc;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT employee_id, SUBSTR(last_name ||' '|| first_name, 1, 25) "Full Name",<br />
job_id,<br />
TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
"Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
ORDER BY hire_date DESC;<br />
</pre><br />
<br />
===2.===<br />
''YuJin''<br />
<pre><br />
SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
|| job_id || ' will have a new salary of $' || salary * 1.15 "Happy Employees"<br />
FROM employees<br />
WHERE salary BETWEEN 5000 AND 12000<br />
AND job_id IN ('IT_PROG', 'ST_CLERK')<br />
ORDER BY employee_id;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT 'Employee named '||first_name||' '||last_name||' who is '||job_id||' will have a new salary of $'|| salary *1.15 "Happy Employees"<br />
FROM employees<br />
WHERE job_id IN ('IT_PROG','ST CLERK')<br />
AND (salary BETWEEN 5000 AND 12000)<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
Select ('Employee named ' || first_name ||' '|| last_name || ' who is ' || job_id || ' will have a new salary of ' || (salary*1.15)) "Happy Employees"<br />
From employees<br />
Where salary between 5000 and 12000<br />
And upper(job_id) in ('IT_PROG', 'ST_CLERK')<br />
order by employee_id;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
|| job_id || ' will have a new salary of ' || TO_CHAR(salary * 1.15, 'fm$999999') "Happy Employees"<br />
FROM employees<br />
WHERE salary BETWEEN 5000 AND 12000<br />
AND UPPER(job_id) IN ('IT_PROG', 'ST_CLERK')<br />
ORDER BY employee_id;<br />
</pre><br />
<br />
===3.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, salary, job_id,<br />
RPAD(NVL(TO_CHAR(manager_id), 'No Manager'), 10) "Manager #",<br />
LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
FROM employees<br />
WHERE (job_id LIKE 'MK%' OR manager_id IS NULL)<br />
AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
ORDER BY 2 DESC;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, salary, job_id, NVL(TO_CHAR(manager_id),'No Manager') Manager#,<br />
TO_CHAR(salary*12,'$999,999') "Total Income"<br />
FROM employees<br />
WHERE (manager_id IS NULL<br />
OR job_id LIKE 'MK%')<br />
AND ( salary* (NVL(commission_pct,0) + 1) + 1000 ) > 10000<br />
ORDER BY salary DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, salary, job_id, nvl(to_char(manager_id),'No Manager') Manager#,<br />
to_char(salary*12,'$999,999') "Total Income"<br />
from employees<br />
where (upper(job_id) like 'MK%' or manager_id IS NULL)<br />
and salary * (1 + nvl(commission_pct, 0)) + 1000 > 10000<br />
order by 2 desc;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT last_name, salary, job_id,<br />
SUBSTR(NVL(TO_CHAR(manager_id), 'No Manager'), 1, 10) "Manager #",<br />
LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
FROM employees<br />
WHERE (UPPER(job_id) LIKE 'MK%' OR manager_id IS NULL)<br />
AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
ORDER BY salary DESC;<br />
<br />
</pre><br />
<br />
===4.===<br />
''YuJin''<br />
<pre><br />
SELECT RPAD(CONCAT(CONCAT(first_name,' '),last_name), 25) "Employee", job_id,<br />
LPAD(TRIM(TO_CHAR(salary, '$999,999')), 12, '=') "Salary", department_name<br />
FROM employees e JOIN departments d<br />
ON (e.department_id = d.department_id)<br />
WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
AND salary <<br />
(SELECT MAX(salary)<br />
FROM employees<br />
WHERE SUBSTR(job_id, 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
ORDER BY 1;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT SUBSTR(first_name||' '||last_name, 25) Employee, job_id,<br />
LPAD(TO_CHAR(salary,'$99,999'), 12, '=') Salary, department_name<br />
FROM employees e JOIN departments d<br />
ON (d.department_id=e.department_id)<br />
WHERE salary < (SELECT MAX(salary)<br />
FROM employees<br />
WHERE UPPER(SUBSTR(job_id,4)) NOT IN ('VP', 'PRES', 'MAN', 'MGR')<br />
)<br />
AND UPPER(department_name) IN ('MARKETING','SALES')<br />
ORDER BY first_name, last_name<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select substr(first_name ||' '|| last_name) "Employee", job_id, to_char(salary, '$999,999', 12, '=') Salary, department_name<br />
from employees e join departments d<br />
on (e.department_id = d.department_id)<br />
where upper(department_name) in ('MARKETING', 'SALES')<br />
and salary < (select max(salary)<br />
from employees<br />
where substr(job_id,4) not in ('PRES','VP','MAN','MGR'))<br />
order by "Employee";<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT SUBSTR(first_name ||' '|| last_name, 1, 25) "Employee", job_id,<br />
LPAD(TO_CHAR(salary, 'fm$999,999'), 12, '=') "Salary", department_name<br />
FROM employees e JOIN departments d<br />
ON (e.department_id = d.department_id)<br />
WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
AND salary <<br />
(SELECT MAX(salary)<br />
FROM employees<br />
WHERE SUBSTR(UPPER(job_id), 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
ORDER BY 1;<br />
</pre><br />
<br />
===5.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
AND salary ><br />
(SELECT MAX(salary)<br />
FROM employees<br />
JOIN departments USING (department_id)<br />
JOIN locations USING (location_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE salary > (SELECT MAX(salary)<br />
FROM locations JOIN departments<br />
USING (location_id)<br />
JOIN employees<br />
USING (department_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD')<br />
)<br />
AND UPPER(job_id) NOT LIKE '%PRES'<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, salary, job_id<br />
from employees<br />
where salary > (select max(salary)<br />
from employees join departments<br />
using (department_id)<br />
join locations<br />
using (location_id)<br />
where upper(city) in ('TORONTO','OXFORD'))<br />
and upper(job_id) not like '%PRES'<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
AND salary ><br />
(SELECT MAX(salary)<br />
FROM employees<br />
JOIN departments USING (department_id)<br />
JOIN locations USING (location_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
</pre><br />
<br />
===6.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, first_name, job_id, hire_date<br />
FROM employees<br />
WHERE hire_date ><br />
(SELECT MAX(hire_date)<br />
FROM employees<br />
WHERE department_id =<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'IT'))<br />
AND (department_id !=<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'EXECUTIVE')<br />
OR department_id IS NULL)<br />
ORDER BY 4 DESC;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, first_name, job_id, hire_date<br />
FROM employees e<br />
WHERE hire_date > (SELECT MAX(hire_date)<br />
FROM employees<br />
WHERE department_id = (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'IT'<br />
)<br />
)<br />
AND (department_id <> (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) ='EXECUTIVE')<br />
OR department_id IS NULL)<br />
ORDER BY hire_date DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, first_name, job_id, hire_date<br />
from employees<br />
where hire_date > (select max(hire_date)<br />
from employees<br />
where department_id = (select department_id<br />
from departments<br />
where upper(department_name) = 'IT'))<br />
and (department_id != (select department_id<br />
from departments<br />
where upper(department_name) = 'EXECUTIVE')<br />
or department_id IS NULL)<br />
order by hire_date desc;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT last_name, first_name, job_id, hire_date<br />
FROM employees<br />
WHERE hire_date ><br />
(SELECT MAX(hire_date)<br />
FROM employees<br />
WHERE department_id =<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'IT'))<br />
AND (department_id !=<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'EXECUTIVE')<br />
OR department_id IS NULL)<br />
ORDER BY hire_date DESC;<br />
</pre><br />
<br />
===7.===<br />
''YuJin''<br />
<pre><br />
SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay",<br />
MIN(salary) "Lowest Dept/Job Pay"<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%VP'<br />
AND department_id NOT IN<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) IN ('IT','SALES'))<br />
GROUP BY department_id, job_id<br />
HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
ORDER BY 1, 2;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay", MIN(salary) "Lowest Dept/Job Pay"<br />
FROM employees<br />
WHERE department_id <> ALL (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) IN ('IT','SALES')<br />
)<br />
AND job_id NOT LIKE '%VP'<br />
GROUP BY department_id, job_id<br />
HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
ORDER BY department_id, job_id<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select department_id, job_id, avg(salary) "Average Dept/Job Pay", min(salary) "Lowest Dept/Job Pay"<br />
from employees<br />
where upper(job_id) not like '%VP'<br />
and department_id != all(select department_id<br />
from departments<br />
where upper(department_name) in ('IT','SALES'))<br />
group by department_id, job_id<br />
having min(salary) between 5000 and 15000<br />
order by department_id, job_id<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay",<br />
MIN(salary) "Lowest Dept/Job Pay"<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%VP'<br />
AND department_id = ALL<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) IN ('IT','SALES'))<br />
GROUP BY department_id, job_id<br />
HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
ORDER BY department_id, job_id;<br />
</pre><br />
<br />
===8.===<br />
''YuJin''<br />
<pre><br />
SELECT department_id, department_name,<br />
RPAD(TRIM(NVL(city, 'Not Assinged Yet')), 25, ' ') "City",<br />
COUNT(DISTINCT job_id) "# of Jobs"<br />
FROM employees<br />
RIGHT OUTER JOIN departments USING (department_id)<br />
LEFT OUTER JOIN locations USING (location_id)<br />
GROUP BY department_id, department_name, city;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT department_id, department_name, SUBSTR(NVL(city,'Not Assigned Yet'),1,25) City,<br />
COUNT(DISTINCT job_id) "# of Jobs"<br />
FROM locations l RIGHT OUTER JOIN departments d<br />
USING (location_id)<br />
LEFT OUTER JOIN employees e<br />
USING (department_id)<br />
GROUP BY department_id, department_name, city<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select department_id, department_name, substr(nvl(city,'Not Assigned Yet'),1,25) City,<br />
count(distinct job_id) "# of Jobs"<br />
from employees right outer join departments<br />
using (department_id)<br />
left outer join locations<br />
using (location_id)<br />
group by department_id, department_name, city<br />
</pre></div>
Yujin.jeong
https://wiki.cdot.senecacollege.ca/w/index.php?title=J.Y.S&diff=48469
J.Y.S
2010-10-20T20:52:00Z
<p>Yujin.jeong: /* 6. */</p>
<hr />
<div>This page is to efficiently manage our group assignments!<br />
== Member List == <br />
*[mailto:,,yjeong@learn.senecac.on.ca,?subject=dbs301 Email All]<br />
<br />
{| class="wikitable sortable" border="1" cellpadding="5"<br />
! First Name !! Last Name !! wiki id !! Learn e-mail !! Phone<br />
|-<br />
|[[User:Yujin.jeong | YuJin]]||Jeong||[[Special:Contributions/yujin.jeong | yujin.jeong]]||[mailto:yjeong@learn.senecac.on.ca?sujbect=gam666 yjeong]|| 647 - 832 - 6771<br />
|-<br />
<br />
|-<br />
|Saad|| || || ||<br />
|-<br />
<br />
|-<br />
|James|| || || ||<br />
|-<br />
|}<br />
<br />
=Assignment 1=<br />
==Due Date==<br />
Thursday, October 21st, 4:00pm<br />
Printout submission only( SELECT Statements + ALL outputs)<br />
==Description==<br />
[https://cs.senecac.on.ca/~nconkic/assign1.doc Assignment1]<br />
==Solution==<br />
<pre><br />
SQL> SELECT employee_id, RPAD(CONCAT(CONCAT(last_name, ', '),first_name), 25) "Full Name",<br />
<br />
2 job_id,<br />
<br />
3 TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
<br />
4 "Start Date"<br />
<br />
5 FROM employees<br />
<br />
6 WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
<br />
7 ORDER BY 4 DESC;<br />
<br />
<br />
<br />
EMPLOYEE_ID Full Name JOB_ID Start Date <br />
<br />
----------- ------------------------- ---------- ----------------------------------------- <br />
<br />
124 Mourgos, Kevin ST_MAN November First in the year 1999 <br />
<br />
178 Grant, Kimberely SA_REP May First in the year 1999 <br />
<br />
174 Abel, Ellen SA_REP May First in the year 1996 <br />
<br />
104 Ernst, Bruce IT_PROG May First in the year 1991 <br />
<br />
<br />
<br />
SQL> SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
<br />
2 || job_id || ' will have a new salary of $' || salary * 1.15 "Happy Employees"<br />
<br />
3 FROM employees<br />
<br />
4 WHERE salary BETWEEN 5000 AND 12000<br />
<br />
5 AND job_id IN ('IT_PROG', 'ST_CLERK')<br />
<br />
6 ORDER BY employee_id;<br />
<br />
<br />
<br />
Happy Employees <br />
<br />
----------------------------------------------------------------------------------------------------<br />
<br />
Employee named Alexander Hunold who is IT_PROG will have a new salary of $10350 <br />
<br />
Employee named Bruce Ernst who is IT_PROG will have a new salary of $6900 <br />
<br />
<br />
<br />
SQL> SELECT last_name, salary, job_id,<br />
<br />
2 RPAD(NVL(TO_CHAR(manager_id), 'No Manager'), 10) "Manager #",<br />
<br />
3 LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
<br />
4 FROM employees<br />
<br />
5 WHERE (job_id LIKE 'MK%' OR manager_id IS NULL)<br />
<br />
6 AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
<br />
7 ORDER BY 2 DESC;<br />
<br />
<br />
<br />
LAST_NAME SALARY JOB_ID Manager # Total Income <br />
<br />
------------------------- ---------- ---------- ---------- ------------ <br />
<br />
King 24000 AD_PRES No Manager $288,000 <br />
<br />
Hartstein 13000 MK_MAN 100 $156,000 <br />
<br />
<br />
<br />
SQL> SELECT RPAD(CONCAT(CONCAT(first_name,' '),last_name), 25) "Employee", job_id,<br />
<br />
2 LPAD(TRIM(TO_CHAR(salary, '$999,999')), 12, '=') "Salary", department_name<br />
<br />
3 FROM employees e JOIN departments d<br />
<br />
4 ON (e.department_id = d.department_id)<br />
<br />
5 WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
<br />
6 AND salary <<br />
<br />
7 (SELECT MAX(salary)<br />
<br />
8 FROM employees<br />
<br />
9 WHERE SUBSTR(job_id, 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
<br />
10 ORDER BY 1;<br />
<br />
<br />
<br />
Employee JOB_ID Salary DEPARTMENT_NAME <br />
<br />
------------------------- ---------- ------------ ------------------------------ <br />
<br />
Eleni Zlotkey SA_MAN =====$10,500 Sales <br />
<br />
Jonathon Taylor SA_REP ======$8,600 Sales <br />
<br />
Pat Fay MK_REP ======$6,000 Marketing <br />
<br />
<br />
<br />
SQL><br />
<br />
SQL> SELECT last_name, salary, job_id<br />
<br />
2 FROM employees<br />
<br />
3 WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
<br />
4 AND salary ><br />
<br />
5 (SELECT MAX(salary)<br />
<br />
6 FROM employees<br />
<br />
7 JOIN departments USING (department_id)<br />
<br />
8 JOIN locations USING (location_id)<br />
<br />
9 WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
<br />
<br />
LAST_NAME SALARY JOB_ID <br />
<br />
------------------------- ---------- ---------- <br />
<br />
Kochhar 17000 AD_VP <br />
<br />
De Haan 17000 AD_VP <br />
<br />
<br />
<br />
SQL> SELECT last_name, first_name, job_id, hire_date<br />
<br />
2 FROM employees<br />
<br />
3 WHERE hire_date ><br />
<br />
4 (SELECT MAX(hire_date)<br />
<br />
5 FROM employees<br />
<br />
6 WHERE department_id =<br />
<br />
7 (SELECT department_id<br />
<br />
8 FROM departments<br />
<br />
9 WHERE UPPER(department_name) = 'IT'))<br />
<br />
10 AND (department_id !=<br />
<br />
11 (SELECT department_id<br />
<br />
12 FROM departments<br />
<br />
13 WHERE UPPER(department_name) = 'EXECUTIVE')<br />
<br />
14 OR department_id IS NULL)<br />
<br />
15 ORDER BY 4 DESC;<br />
<br />
<br />
<br />
LAST_NAME FIRST_NAME JOB_ID HIRE_DATE <br />
<br />
------------------------- -------------------- ---------- --------- <br />
<br />
Zlotkey Eleni SA_MAN 29-JAN-00 <br />
<br />
Mourgos Kevin ST_MAN 16-NOV-99 <br />
<br />
Grant Kimberely SA_REP 24-MAY-99 <br />
<br />
<br />
<br />
SQL> SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay",<br />
<br />
2 MIN(salary) "Lowest Dept/Job Pay"<br />
<br />
3 FROM employees<br />
<br />
4 WHERE UPPER(job_id) NOT LIKE '%VP'<br />
<br />
5 AND department_id NOT IN<br />
<br />
6 (SELECT department_id<br />
<br />
7 FROM departments<br />
<br />
8 WHERE UPPER(department_name) IN ('IT','SALES'))<br />
<br />
9 GROUP BY department_id, job_id<br />
<br />
10 HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
<br />
11 ORDER BY 1, 2;<br />
<br />
<br />
<br />
DEPARTMENT_ID JOB_ID Average Dept/Job Pay Lowest Dept/Job Pay <br />
<br />
------------- ---------- -------------------- ------------------- <br />
<br />
20 MK_MAN 13000 13000 <br />
<br />
20 MK_REP 6000 6000 <br />
<br />
50 ST_MAN 5800 5800 <br />
<br />
110 AC_ACCOUNT 8300 8300 <br />
<br />
110 AC_MGR 12000 12000 <br />
<br />
<br />
<br />
SQL> SELECT department_id, department_name,<br />
<br />
2 RPAD(TRIM(NVL(city, 'Not Assinged Yet')), 25, ' ') "City",<br />
<br />
3 COUNT(DISTINCT job_id) "# of Jobs"<br />
<br />
4 FROM employees<br />
<br />
5 RIGHT OUTER JOIN departments USING (department_id)<br />
<br />
6 LEFT OUTER JOIN locations USING (location_id)<br />
<br />
7 GROUP BY department_id, department_name, city;<br />
<br />
<br />
<br />
DEPARTMENT_ID DEPARTMENT_NAME City # of Jobs <br />
<br />
------------- ------------------------------ ------------------------- ---------- <br />
<br />
110 Accounting Seattle 2 <br />
<br />
50 Shipping South San Francisco 2 <br />
<br />
80 Sales Oxford 2 <br />
<br />
10 Administration Seattle 1 <br />
<br />
190 Contracting Seattle 0 <br />
<br />
90 Executive Seattle 2 <br />
<br />
20 Marketing Toronto 2 <br />
<br />
60 IT Southlake 1 <br />
<br />
<br />
<br />
8 rows selected.<br />
<br />
<br />
<br />
SQL> spool off<br />
</pre><br />
==SQL Statements==<br />
===1.===<br />
''YuJin''<br />
<pre><br />
SELECT employee_id, RPAD(CONCAT(CONCAT(last_name, ', '),first_name), 25) "Full Name",<br />
job_id,<br />
TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
"Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
ORDER BY 4 DESC;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT employee_id,<br />
SUBSTR(last_name ||' '|| first_name, 1, 25) "Full Name",<br />
job_id,<br />
TO_CHAR(hire_date,'fmMonth "First in the year" YYYY') "Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date,'fmMON') IN ('MAY','NOV')<br />
ORDER BY hire_date DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select employee_id "Emp#",<br />
(last_name ||', '|| first_name) "Full Name",<br />
job_id "Job",<br />
to_char(trunc(hire_date, 'MONTH'), 'FMMonth Ddspth "in the year"<br />
YYYY') "Start Date"<br />
from employees<br />
where to_char(hire_date, 'fmMonth') in ('May', 'November')<br />
order by hire_date desc;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT employee_id, SUBSTR(last_name ||' '|| first_name, 1, 25) "Full Name",<br />
job_id,<br />
TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
"Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
ORDER BY hire_date DESC;<br />
</pre><br />
<br />
===2.===<br />
''YuJin''<br />
<pre><br />
SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
|| job_id || ' will have a new salary of $' || salary * 1.15 "Happy Employees"<br />
FROM employees<br />
WHERE salary BETWEEN 5000 AND 12000<br />
AND job_id IN ('IT_PROG', 'ST_CLERK')<br />
ORDER BY employee_id;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT 'Employee named '||first_name||' '||last_name||' who is '||job_id||' will have a new salary of $'|| salary *1.15 "Happy Employees"<br />
FROM employees<br />
WHERE job_id IN ('IT_PROG','ST CLERK')<br />
AND (salary BETWEEN 5000 AND 12000)<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
Select ('Employee named ' || first_name ||' '|| last_name || ' who is ' || job_id || ' will have a new salary of ' || (salary*1.15)) "Happy Employees"<br />
From employees<br />
Where salary between 5000 and 12000<br />
And upper(job_id) in ('IT_PROG', 'ST_CLERK')<br />
order by employee_id;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
|| job_id || ' will have a new salary of ' || TO_CHAR(salary * 1.15, 'fm$999999') "Happy Employees"<br />
FROM employees<br />
WHERE salary BETWEEN 5000 AND 12000<br />
AND UPPER(job_id) IN ('IT_PROG', 'ST_CLERK')<br />
ORDER BY employee_id;<br />
</pre><br />
<br />
===3.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, salary, job_id,<br />
RPAD(NVL(TO_CHAR(manager_id), 'No Manager'), 10) "Manager #",<br />
LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
FROM employees<br />
WHERE (job_id LIKE 'MK%' OR manager_id IS NULL)<br />
AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
ORDER BY 2 DESC;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, salary, job_id, NVL(TO_CHAR(manager_id),'No Manager') Manager#,<br />
TO_CHAR(salary*12,'$999,999') "Total Income"<br />
FROM employees<br />
WHERE (manager_id IS NULL<br />
OR job_id LIKE 'MK%')<br />
AND ( salary* (NVL(commission_pct,0) + 1) + 1000 ) > 10000<br />
ORDER BY salary DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, salary, job_id, nvl(to_char(manager_id),'No Manager') Manager#,<br />
to_char(salary*12,'$999,999') "Total Income"<br />
from employees<br />
where (upper(job_id) like 'MK%' or manager_id IS NULL)<br />
and salary * (1 + nvl(commission_pct, 0)) + 1000 > 10000<br />
order by 2 desc;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT last_name, salary, job_id,<br />
SUBSTR(NVL(TO_CHAR(manager_id), 'No Manager'), 1, 10) "Manager #",<br />
LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
FROM employees<br />
WHERE (UPPER(job_id) LIKE 'MK%' OR manager_id IS NULL)<br />
AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
ORDER BY salary DESC;<br />
<br />
</pre><br />
<br />
===4.===<br />
''YuJin''<br />
<pre><br />
SELECT RPAD(CONCAT(CONCAT(first_name,' '),last_name), 25) "Employee", job_id,<br />
LPAD(TRIM(TO_CHAR(salary, '$999,999')), 12, '=') "Salary", department_name<br />
FROM employees e JOIN departments d<br />
ON (e.department_id = d.department_id)<br />
WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
AND salary <<br />
(SELECT MAX(salary)<br />
FROM employees<br />
WHERE SUBSTR(job_id, 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
ORDER BY 1;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT SUBSTR(first_name||' '||last_name, 25) Employee, job_id,<br />
LPAD(TO_CHAR(salary,'$99,999'), 12, '=') Salary, department_name<br />
FROM employees e JOIN departments d<br />
ON (d.department_id=e.department_id)<br />
WHERE salary < (SELECT MAX(salary)<br />
FROM employees<br />
WHERE UPPER(SUBSTR(job_id,4)) NOT IN ('VP', 'PRES', 'MAN', 'MGR')<br />
)<br />
AND UPPER(department_name) IN ('MARKETING','SALES')<br />
ORDER BY first_name, last_name<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select substr(first_name ||' '|| last_name) "Employee", job_id, to_char(salary, '$999,999', 12, '=') Salary, department_name<br />
from employees e join departments d<br />
on (e.department_id = d.department_id)<br />
where upper(department_name) in ('MARKETING', 'SALES')<br />
and salary < (select max(salary)<br />
from employees<br />
where substr(job_id,4) not in ('PRES','VP','MAN','MGR'))<br />
order by "Employee";<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT SUBSTR(first_name ||' '|| last_name, 1, 25) "Employee", job_id,<br />
LPAD(TO_CHAR(salary, 'fm$999,999'), 12, '=') "Salary", department_name<br />
FROM employees e JOIN departments d<br />
ON (e.department_id = d.department_id)<br />
WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
AND salary <<br />
(SELECT MAX(salary)<br />
FROM employees<br />
WHERE SUBSTR(UPPER(job_id), 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
ORDER BY 1;<br />
</pre><br />
<br />
===5.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
AND salary ><br />
(SELECT MAX(salary)<br />
FROM employees<br />
JOIN departments USING (department_id)<br />
JOIN locations USING (location_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE salary > (SELECT MAX(salary)<br />
FROM locations JOIN departments<br />
USING (location_id)<br />
JOIN employees<br />
USING (department_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD')<br />
)<br />
AND UPPER(job_id) NOT LIKE '%PRES'<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, salary, job_id<br />
from employees<br />
where salary > (select max(salary)<br />
from employees join departments<br />
using (department_id)<br />
join locations<br />
using (location_id)<br />
where upper(city) in ('TORONTO','OXFORD'))<br />
and upper(job_id) not like '%PRES'<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
AND salary ><br />
(SELECT MAX(salary)<br />
FROM employees<br />
JOIN departments USING (department_id)<br />
JOIN locations USING (location_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
</pre><br />
<br />
===6.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, first_name, job_id, hire_date<br />
FROM employees<br />
WHERE hire_date ><br />
(SELECT MAX(hire_date)<br />
FROM employees<br />
WHERE department_id =<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'IT'))<br />
AND (department_id !=<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'EXECUTIVE')<br />
OR department_id IS NULL)<br />
ORDER BY 4 DESC;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, first_name, job_id, hire_date<br />
FROM employees e<br />
WHERE hire_date > (SELECT MAX(hire_date)<br />
FROM employees<br />
WHERE department_id = (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'IT'<br />
)<br />
)<br />
AND (department_id <> (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) ='EXECUTIVE')<br />
OR department_id IS NULL)<br />
ORDER BY hire_date DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, first_name, job_id, hire_date<br />
from employees<br />
where hire_date > (select max(hire_date)<br />
from employees<br />
where department_id = (select department_id<br />
from departments<br />
where upper(department_name) = 'IT'))<br />
and (department_id != (select department_id<br />
from departments<br />
where upper(department_name) = 'EXECUTIVE')<br />
or department_id IS NULL)<br />
order by hire_date desc;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT last_name, first_name, job_id, hire_date<br />
FROM employees<br />
WHERE hire_date ><br />
(SELECT MAX(hire_date)<br />
FROM employees<br />
WHERE department_id =<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'IT'))<br />
AND (department_id !=<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'EXECUTIVE')<br />
OR department_id IS NULL)<br />
ORDER BY hire_date DESC;<br />
</pre><br />
<br />
===7.===<br />
''YuJin''<br />
<pre><br />
SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay",<br />
MIN(salary) "Lowest Dept/Job Pay"<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%VP'<br />
AND department_id NOT IN<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) IN ('IT','SALES'))<br />
GROUP BY department_id, job_id<br />
HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
ORDER BY 1, 2;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay", MIN(salary) "Lowest Dept/Job Pay"<br />
FROM employees<br />
WHERE department_id <> ALL (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) IN ('IT','SALES')<br />
)<br />
AND job_id NOT LIKE '%VP'<br />
GROUP BY department_id, job_id<br />
HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
ORDER BY department_id, job_id<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select department_id, job_id, avg(salary) "Average Dept/Job Pay", min(salary) "Lowest Dept/Job Pay"<br />
from employees<br />
where upper(job_id) not like '%VP'<br />
and department_id != all(select department_id<br />
from departments<br />
where upper(department_name) in ('IT','SALES'))<br />
group by department_id, job_id<br />
having min(salary) between 5000 and 15000<br />
order by department_id, job_id<br />
</pre><br />
<br />
===8.===<br />
''YuJin''<br />
<pre><br />
SELECT department_id, department_name,<br />
RPAD(TRIM(NVL(city, 'Not Assinged Yet')), 25, ' ') "City",<br />
COUNT(DISTINCT job_id) "# of Jobs"<br />
FROM employees<br />
RIGHT OUTER JOIN departments USING (department_id)<br />
LEFT OUTER JOIN locations USING (location_id)<br />
GROUP BY department_id, department_name, city;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT department_id, department_name, SUBSTR(NVL(city,'Not Assigned Yet'),1,25) City,<br />
COUNT(DISTINCT job_id) "# of Jobs"<br />
FROM locations l RIGHT OUTER JOIN departments d<br />
USING (location_id)<br />
LEFT OUTER JOIN employees e<br />
USING (department_id)<br />
GROUP BY department_id, department_name, city<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select department_id, department_name, substr(nvl(city,'Not Assigned Yet'),1,25) City,<br />
count(distinct job_id) "# of Jobs"<br />
from employees right outer join departments<br />
using (department_id)<br />
left outer join locations<br />
using (location_id)<br />
group by department_id, department_name, city<br />
</pre></div>
Yujin.jeong
https://wiki.cdot.senecacollege.ca/w/index.php?title=J.Y.S&diff=48468
J.Y.S
2010-10-20T20:50:29Z
<p>Yujin.jeong: /* 5. */</p>
<hr />
<div>This page is to efficiently manage our group assignments!<br />
== Member List == <br />
*[mailto:,,yjeong@learn.senecac.on.ca,?subject=dbs301 Email All]<br />
<br />
{| class="wikitable sortable" border="1" cellpadding="5"<br />
! First Name !! Last Name !! wiki id !! Learn e-mail !! Phone<br />
|-<br />
|[[User:Yujin.jeong | YuJin]]||Jeong||[[Special:Contributions/yujin.jeong | yujin.jeong]]||[mailto:yjeong@learn.senecac.on.ca?sujbect=gam666 yjeong]|| 647 - 832 - 6771<br />
|-<br />
<br />
|-<br />
|Saad|| || || ||<br />
|-<br />
<br />
|-<br />
|James|| || || ||<br />
|-<br />
|}<br />
<br />
=Assignment 1=<br />
==Due Date==<br />
Thursday, October 21st, 4:00pm<br />
Printout submission only( SELECT Statements + ALL outputs)<br />
==Description==<br />
[https://cs.senecac.on.ca/~nconkic/assign1.doc Assignment1]<br />
==Solution==<br />
<pre><br />
SQL> SELECT employee_id, RPAD(CONCAT(CONCAT(last_name, ', '),first_name), 25) "Full Name",<br />
<br />
2 job_id,<br />
<br />
3 TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
<br />
4 "Start Date"<br />
<br />
5 FROM employees<br />
<br />
6 WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
<br />
7 ORDER BY 4 DESC;<br />
<br />
<br />
<br />
EMPLOYEE_ID Full Name JOB_ID Start Date <br />
<br />
----------- ------------------------- ---------- ----------------------------------------- <br />
<br />
124 Mourgos, Kevin ST_MAN November First in the year 1999 <br />
<br />
178 Grant, Kimberely SA_REP May First in the year 1999 <br />
<br />
174 Abel, Ellen SA_REP May First in the year 1996 <br />
<br />
104 Ernst, Bruce IT_PROG May First in the year 1991 <br />
<br />
<br />
<br />
SQL> SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
<br />
2 || job_id || ' will have a new salary of $' || salary * 1.15 "Happy Employees"<br />
<br />
3 FROM employees<br />
<br />
4 WHERE salary BETWEEN 5000 AND 12000<br />
<br />
5 AND job_id IN ('IT_PROG', 'ST_CLERK')<br />
<br />
6 ORDER BY employee_id;<br />
<br />
<br />
<br />
Happy Employees <br />
<br />
----------------------------------------------------------------------------------------------------<br />
<br />
Employee named Alexander Hunold who is IT_PROG will have a new salary of $10350 <br />
<br />
Employee named Bruce Ernst who is IT_PROG will have a new salary of $6900 <br />
<br />
<br />
<br />
SQL> SELECT last_name, salary, job_id,<br />
<br />
2 RPAD(NVL(TO_CHAR(manager_id), 'No Manager'), 10) "Manager #",<br />
<br />
3 LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
<br />
4 FROM employees<br />
<br />
5 WHERE (job_id LIKE 'MK%' OR manager_id IS NULL)<br />
<br />
6 AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
<br />
7 ORDER BY 2 DESC;<br />
<br />
<br />
<br />
LAST_NAME SALARY JOB_ID Manager # Total Income <br />
<br />
------------------------- ---------- ---------- ---------- ------------ <br />
<br />
King 24000 AD_PRES No Manager $288,000 <br />
<br />
Hartstein 13000 MK_MAN 100 $156,000 <br />
<br />
<br />
<br />
SQL> SELECT RPAD(CONCAT(CONCAT(first_name,' '),last_name), 25) "Employee", job_id,<br />
<br />
2 LPAD(TRIM(TO_CHAR(salary, '$999,999')), 12, '=') "Salary", department_name<br />
<br />
3 FROM employees e JOIN departments d<br />
<br />
4 ON (e.department_id = d.department_id)<br />
<br />
5 WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
<br />
6 AND salary <<br />
<br />
7 (SELECT MAX(salary)<br />
<br />
8 FROM employees<br />
<br />
9 WHERE SUBSTR(job_id, 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
<br />
10 ORDER BY 1;<br />
<br />
<br />
<br />
Employee JOB_ID Salary DEPARTMENT_NAME <br />
<br />
------------------------- ---------- ------------ ------------------------------ <br />
<br />
Eleni Zlotkey SA_MAN =====$10,500 Sales <br />
<br />
Jonathon Taylor SA_REP ======$8,600 Sales <br />
<br />
Pat Fay MK_REP ======$6,000 Marketing <br />
<br />
<br />
<br />
SQL><br />
<br />
SQL> SELECT last_name, salary, job_id<br />
<br />
2 FROM employees<br />
<br />
3 WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
<br />
4 AND salary ><br />
<br />
5 (SELECT MAX(salary)<br />
<br />
6 FROM employees<br />
<br />
7 JOIN departments USING (department_id)<br />
<br />
8 JOIN locations USING (location_id)<br />
<br />
9 WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
<br />
<br />
LAST_NAME SALARY JOB_ID <br />
<br />
------------------------- ---------- ---------- <br />
<br />
Kochhar 17000 AD_VP <br />
<br />
De Haan 17000 AD_VP <br />
<br />
<br />
<br />
SQL> SELECT last_name, first_name, job_id, hire_date<br />
<br />
2 FROM employees<br />
<br />
3 WHERE hire_date ><br />
<br />
4 (SELECT MAX(hire_date)<br />
<br />
5 FROM employees<br />
<br />
6 WHERE department_id =<br />
<br />
7 (SELECT department_id<br />
<br />
8 FROM departments<br />
<br />
9 WHERE UPPER(department_name) = 'IT'))<br />
<br />
10 AND (department_id !=<br />
<br />
11 (SELECT department_id<br />
<br />
12 FROM departments<br />
<br />
13 WHERE UPPER(department_name) = 'EXECUTIVE')<br />
<br />
14 OR department_id IS NULL)<br />
<br />
15 ORDER BY 4 DESC;<br />
<br />
<br />
<br />
LAST_NAME FIRST_NAME JOB_ID HIRE_DATE <br />
<br />
------------------------- -------------------- ---------- --------- <br />
<br />
Zlotkey Eleni SA_MAN 29-JAN-00 <br />
<br />
Mourgos Kevin ST_MAN 16-NOV-99 <br />
<br />
Grant Kimberely SA_REP 24-MAY-99 <br />
<br />
<br />
<br />
SQL> SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay",<br />
<br />
2 MIN(salary) "Lowest Dept/Job Pay"<br />
<br />
3 FROM employees<br />
<br />
4 WHERE UPPER(job_id) NOT LIKE '%VP'<br />
<br />
5 AND department_id NOT IN<br />
<br />
6 (SELECT department_id<br />
<br />
7 FROM departments<br />
<br />
8 WHERE UPPER(department_name) IN ('IT','SALES'))<br />
<br />
9 GROUP BY department_id, job_id<br />
<br />
10 HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
<br />
11 ORDER BY 1, 2;<br />
<br />
<br />
<br />
DEPARTMENT_ID JOB_ID Average Dept/Job Pay Lowest Dept/Job Pay <br />
<br />
------------- ---------- -------------------- ------------------- <br />
<br />
20 MK_MAN 13000 13000 <br />
<br />
20 MK_REP 6000 6000 <br />
<br />
50 ST_MAN 5800 5800 <br />
<br />
110 AC_ACCOUNT 8300 8300 <br />
<br />
110 AC_MGR 12000 12000 <br />
<br />
<br />
<br />
SQL> SELECT department_id, department_name,<br />
<br />
2 RPAD(TRIM(NVL(city, 'Not Assinged Yet')), 25, ' ') "City",<br />
<br />
3 COUNT(DISTINCT job_id) "# of Jobs"<br />
<br />
4 FROM employees<br />
<br />
5 RIGHT OUTER JOIN departments USING (department_id)<br />
<br />
6 LEFT OUTER JOIN locations USING (location_id)<br />
<br />
7 GROUP BY department_id, department_name, city;<br />
<br />
<br />
<br />
DEPARTMENT_ID DEPARTMENT_NAME City # of Jobs <br />
<br />
------------- ------------------------------ ------------------------- ---------- <br />
<br />
110 Accounting Seattle 2 <br />
<br />
50 Shipping South San Francisco 2 <br />
<br />
80 Sales Oxford 2 <br />
<br />
10 Administration Seattle 1 <br />
<br />
190 Contracting Seattle 0 <br />
<br />
90 Executive Seattle 2 <br />
<br />
20 Marketing Toronto 2 <br />
<br />
60 IT Southlake 1 <br />
<br />
<br />
<br />
8 rows selected.<br />
<br />
<br />
<br />
SQL> spool off<br />
</pre><br />
==SQL Statements==<br />
===1.===<br />
''YuJin''<br />
<pre><br />
SELECT employee_id, RPAD(CONCAT(CONCAT(last_name, ', '),first_name), 25) "Full Name",<br />
job_id,<br />
TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
"Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
ORDER BY 4 DESC;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT employee_id,<br />
SUBSTR(last_name ||' '|| first_name, 1, 25) "Full Name",<br />
job_id,<br />
TO_CHAR(hire_date,'fmMonth "First in the year" YYYY') "Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date,'fmMON') IN ('MAY','NOV')<br />
ORDER BY hire_date DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select employee_id "Emp#",<br />
(last_name ||', '|| first_name) "Full Name",<br />
job_id "Job",<br />
to_char(trunc(hire_date, 'MONTH'), 'FMMonth Ddspth "in the year"<br />
YYYY') "Start Date"<br />
from employees<br />
where to_char(hire_date, 'fmMonth') in ('May', 'November')<br />
order by hire_date desc;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT employee_id, SUBSTR(last_name ||' '|| first_name, 1, 25) "Full Name",<br />
job_id,<br />
TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
"Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
ORDER BY hire_date DESC;<br />
</pre><br />
<br />
===2.===<br />
''YuJin''<br />
<pre><br />
SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
|| job_id || ' will have a new salary of $' || salary * 1.15 "Happy Employees"<br />
FROM employees<br />
WHERE salary BETWEEN 5000 AND 12000<br />
AND job_id IN ('IT_PROG', 'ST_CLERK')<br />
ORDER BY employee_id;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT 'Employee named '||first_name||' '||last_name||' who is '||job_id||' will have a new salary of $'|| salary *1.15 "Happy Employees"<br />
FROM employees<br />
WHERE job_id IN ('IT_PROG','ST CLERK')<br />
AND (salary BETWEEN 5000 AND 12000)<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
Select ('Employee named ' || first_name ||' '|| last_name || ' who is ' || job_id || ' will have a new salary of ' || (salary*1.15)) "Happy Employees"<br />
From employees<br />
Where salary between 5000 and 12000<br />
And upper(job_id) in ('IT_PROG', 'ST_CLERK')<br />
order by employee_id;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
|| job_id || ' will have a new salary of ' || TO_CHAR(salary * 1.15, 'fm$999999') "Happy Employees"<br />
FROM employees<br />
WHERE salary BETWEEN 5000 AND 12000<br />
AND UPPER(job_id) IN ('IT_PROG', 'ST_CLERK')<br />
ORDER BY employee_id;<br />
</pre><br />
<br />
===3.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, salary, job_id,<br />
RPAD(NVL(TO_CHAR(manager_id), 'No Manager'), 10) "Manager #",<br />
LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
FROM employees<br />
WHERE (job_id LIKE 'MK%' OR manager_id IS NULL)<br />
AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
ORDER BY 2 DESC;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, salary, job_id, NVL(TO_CHAR(manager_id),'No Manager') Manager#,<br />
TO_CHAR(salary*12,'$999,999') "Total Income"<br />
FROM employees<br />
WHERE (manager_id IS NULL<br />
OR job_id LIKE 'MK%')<br />
AND ( salary* (NVL(commission_pct,0) + 1) + 1000 ) > 10000<br />
ORDER BY salary DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, salary, job_id, nvl(to_char(manager_id),'No Manager') Manager#,<br />
to_char(salary*12,'$999,999') "Total Income"<br />
from employees<br />
where (upper(job_id) like 'MK%' or manager_id IS NULL)<br />
and salary * (1 + nvl(commission_pct, 0)) + 1000 > 10000<br />
order by 2 desc;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT last_name, salary, job_id,<br />
SUBSTR(NVL(TO_CHAR(manager_id), 'No Manager'), 1, 10) "Manager #",<br />
LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
FROM employees<br />
WHERE (UPPER(job_id) LIKE 'MK%' OR manager_id IS NULL)<br />
AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
ORDER BY salary DESC;<br />
<br />
</pre><br />
<br />
===4.===<br />
''YuJin''<br />
<pre><br />
SELECT RPAD(CONCAT(CONCAT(first_name,' '),last_name), 25) "Employee", job_id,<br />
LPAD(TRIM(TO_CHAR(salary, '$999,999')), 12, '=') "Salary", department_name<br />
FROM employees e JOIN departments d<br />
ON (e.department_id = d.department_id)<br />
WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
AND salary <<br />
(SELECT MAX(salary)<br />
FROM employees<br />
WHERE SUBSTR(job_id, 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
ORDER BY 1;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT SUBSTR(first_name||' '||last_name, 25) Employee, job_id,<br />
LPAD(TO_CHAR(salary,'$99,999'), 12, '=') Salary, department_name<br />
FROM employees e JOIN departments d<br />
ON (d.department_id=e.department_id)<br />
WHERE salary < (SELECT MAX(salary)<br />
FROM employees<br />
WHERE UPPER(SUBSTR(job_id,4)) NOT IN ('VP', 'PRES', 'MAN', 'MGR')<br />
)<br />
AND UPPER(department_name) IN ('MARKETING','SALES')<br />
ORDER BY first_name, last_name<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select substr(first_name ||' '|| last_name) "Employee", job_id, to_char(salary, '$999,999', 12, '=') Salary, department_name<br />
from employees e join departments d<br />
on (e.department_id = d.department_id)<br />
where upper(department_name) in ('MARKETING', 'SALES')<br />
and salary < (select max(salary)<br />
from employees<br />
where substr(job_id,4) not in ('PRES','VP','MAN','MGR'))<br />
order by "Employee";<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT SUBSTR(first_name ||' '|| last_name, 1, 25) "Employee", job_id,<br />
LPAD(TO_CHAR(salary, 'fm$999,999'), 12, '=') "Salary", department_name<br />
FROM employees e JOIN departments d<br />
ON (e.department_id = d.department_id)<br />
WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
AND salary <<br />
(SELECT MAX(salary)<br />
FROM employees<br />
WHERE SUBSTR(UPPER(job_id), 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
ORDER BY 1;<br />
</pre><br />
<br />
===5.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
AND salary ><br />
(SELECT MAX(salary)<br />
FROM employees<br />
JOIN departments USING (department_id)<br />
JOIN locations USING (location_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE salary > (SELECT MAX(salary)<br />
FROM locations JOIN departments<br />
USING (location_id)<br />
JOIN employees<br />
USING (department_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD')<br />
)<br />
AND UPPER(job_id) NOT LIKE '%PRES'<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, salary, job_id<br />
from employees<br />
where salary > (select max(salary)<br />
from employees join departments<br />
using (department_id)<br />
join locations<br />
using (location_id)<br />
where upper(city) in ('TORONTO','OXFORD'))<br />
and upper(job_id) not like '%PRES'<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
AND salary ><br />
(SELECT MAX(salary)<br />
FROM employees<br />
JOIN departments USING (department_id)<br />
JOIN locations USING (location_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
</pre><br />
<br />
===6.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, first_name, job_id, hire_date<br />
FROM employees<br />
WHERE hire_date ><br />
(SELECT MAX(hire_date)<br />
FROM employees<br />
WHERE department_id =<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'IT'))<br />
AND (department_id !=<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'EXECUTIVE')<br />
OR department_id IS NULL)<br />
ORDER BY 4 DESC;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, first_name, job_id, hire_date<br />
FROM employees e<br />
WHERE hire_date > (SELECT MAX(hire_date)<br />
FROM employees<br />
WHERE department_id = (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'IT'<br />
)<br />
)<br />
AND (department_id <> (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) ='EXECUTIVE')<br />
OR department_id IS NULL)<br />
ORDER BY hire_date DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, first_name, job_id, hire_date<br />
from employees<br />
where hire_date > (select max(hire_date)<br />
from employees<br />
where department_id = (select department_id<br />
from departments<br />
where upper(department_name) = 'IT'))<br />
and (department_id != (select department_id<br />
from departments<br />
where upper(department_name) = 'EXECUTIVE')<br />
or department_id IS NULL)<br />
order by hire_date desc;<br />
</pre><br />
<br />
===7.===<br />
''YuJin''<br />
<pre><br />
SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay",<br />
MIN(salary) "Lowest Dept/Job Pay"<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%VP'<br />
AND department_id NOT IN<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) IN ('IT','SALES'))<br />
GROUP BY department_id, job_id<br />
HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
ORDER BY 1, 2;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay", MIN(salary) "Lowest Dept/Job Pay"<br />
FROM employees<br />
WHERE department_id <> ALL (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) IN ('IT','SALES')<br />
)<br />
AND job_id NOT LIKE '%VP'<br />
GROUP BY department_id, job_id<br />
HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
ORDER BY department_id, job_id<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select department_id, job_id, avg(salary) "Average Dept/Job Pay", min(salary) "Lowest Dept/Job Pay"<br />
from employees<br />
where upper(job_id) not like '%VP'<br />
and department_id != all(select department_id<br />
from departments<br />
where upper(department_name) in ('IT','SALES'))<br />
group by department_id, job_id<br />
having min(salary) between 5000 and 15000<br />
order by department_id, job_id<br />
</pre><br />
<br />
===8.===<br />
''YuJin''<br />
<pre><br />
SELECT department_id, department_name,<br />
RPAD(TRIM(NVL(city, 'Not Assinged Yet')), 25, ' ') "City",<br />
COUNT(DISTINCT job_id) "# of Jobs"<br />
FROM employees<br />
RIGHT OUTER JOIN departments USING (department_id)<br />
LEFT OUTER JOIN locations USING (location_id)<br />
GROUP BY department_id, department_name, city;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT department_id, department_name, SUBSTR(NVL(city,'Not Assigned Yet'),1,25) City,<br />
COUNT(DISTINCT job_id) "# of Jobs"<br />
FROM locations l RIGHT OUTER JOIN departments d<br />
USING (location_id)<br />
LEFT OUTER JOIN employees e<br />
USING (department_id)<br />
GROUP BY department_id, department_name, city<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select department_id, department_name, substr(nvl(city,'Not Assigned Yet'),1,25) City,<br />
count(distinct job_id) "# of Jobs"<br />
from employees right outer join departments<br />
using (department_id)<br />
left outer join locations<br />
using (location_id)<br />
group by department_id, department_name, city<br />
</pre></div>
Yujin.jeong
https://wiki.cdot.senecacollege.ca/w/index.php?title=J.Y.S&diff=48467
J.Y.S
2010-10-20T20:48:01Z
<p>Yujin.jeong: /* 4. */</p>
<hr />
<div>This page is to efficiently manage our group assignments!<br />
== Member List == <br />
*[mailto:,,yjeong@learn.senecac.on.ca,?subject=dbs301 Email All]<br />
<br />
{| class="wikitable sortable" border="1" cellpadding="5"<br />
! First Name !! Last Name !! wiki id !! Learn e-mail !! Phone<br />
|-<br />
|[[User:Yujin.jeong | YuJin]]||Jeong||[[Special:Contributions/yujin.jeong | yujin.jeong]]||[mailto:yjeong@learn.senecac.on.ca?sujbect=gam666 yjeong]|| 647 - 832 - 6771<br />
|-<br />
<br />
|-<br />
|Saad|| || || ||<br />
|-<br />
<br />
|-<br />
|James|| || || ||<br />
|-<br />
|}<br />
<br />
=Assignment 1=<br />
==Due Date==<br />
Thursday, October 21st, 4:00pm<br />
Printout submission only( SELECT Statements + ALL outputs)<br />
==Description==<br />
[https://cs.senecac.on.ca/~nconkic/assign1.doc Assignment1]<br />
==Solution==<br />
<pre><br />
SQL> SELECT employee_id, RPAD(CONCAT(CONCAT(last_name, ', '),first_name), 25) "Full Name",<br />
<br />
2 job_id,<br />
<br />
3 TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
<br />
4 "Start Date"<br />
<br />
5 FROM employees<br />
<br />
6 WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
<br />
7 ORDER BY 4 DESC;<br />
<br />
<br />
<br />
EMPLOYEE_ID Full Name JOB_ID Start Date <br />
<br />
----------- ------------------------- ---------- ----------------------------------------- <br />
<br />
124 Mourgos, Kevin ST_MAN November First in the year 1999 <br />
<br />
178 Grant, Kimberely SA_REP May First in the year 1999 <br />
<br />
174 Abel, Ellen SA_REP May First in the year 1996 <br />
<br />
104 Ernst, Bruce IT_PROG May First in the year 1991 <br />
<br />
<br />
<br />
SQL> SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
<br />
2 || job_id || ' will have a new salary of $' || salary * 1.15 "Happy Employees"<br />
<br />
3 FROM employees<br />
<br />
4 WHERE salary BETWEEN 5000 AND 12000<br />
<br />
5 AND job_id IN ('IT_PROG', 'ST_CLERK')<br />
<br />
6 ORDER BY employee_id;<br />
<br />
<br />
<br />
Happy Employees <br />
<br />
----------------------------------------------------------------------------------------------------<br />
<br />
Employee named Alexander Hunold who is IT_PROG will have a new salary of $10350 <br />
<br />
Employee named Bruce Ernst who is IT_PROG will have a new salary of $6900 <br />
<br />
<br />
<br />
SQL> SELECT last_name, salary, job_id,<br />
<br />
2 RPAD(NVL(TO_CHAR(manager_id), 'No Manager'), 10) "Manager #",<br />
<br />
3 LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
<br />
4 FROM employees<br />
<br />
5 WHERE (job_id LIKE 'MK%' OR manager_id IS NULL)<br />
<br />
6 AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
<br />
7 ORDER BY 2 DESC;<br />
<br />
<br />
<br />
LAST_NAME SALARY JOB_ID Manager # Total Income <br />
<br />
------------------------- ---------- ---------- ---------- ------------ <br />
<br />
King 24000 AD_PRES No Manager $288,000 <br />
<br />
Hartstein 13000 MK_MAN 100 $156,000 <br />
<br />
<br />
<br />
SQL> SELECT RPAD(CONCAT(CONCAT(first_name,' '),last_name), 25) "Employee", job_id,<br />
<br />
2 LPAD(TRIM(TO_CHAR(salary, '$999,999')), 12, '=') "Salary", department_name<br />
<br />
3 FROM employees e JOIN departments d<br />
<br />
4 ON (e.department_id = d.department_id)<br />
<br />
5 WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
<br />
6 AND salary <<br />
<br />
7 (SELECT MAX(salary)<br />
<br />
8 FROM employees<br />
<br />
9 WHERE SUBSTR(job_id, 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
<br />
10 ORDER BY 1;<br />
<br />
<br />
<br />
Employee JOB_ID Salary DEPARTMENT_NAME <br />
<br />
------------------------- ---------- ------------ ------------------------------ <br />
<br />
Eleni Zlotkey SA_MAN =====$10,500 Sales <br />
<br />
Jonathon Taylor SA_REP ======$8,600 Sales <br />
<br />
Pat Fay MK_REP ======$6,000 Marketing <br />
<br />
<br />
<br />
SQL><br />
<br />
SQL> SELECT last_name, salary, job_id<br />
<br />
2 FROM employees<br />
<br />
3 WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
<br />
4 AND salary ><br />
<br />
5 (SELECT MAX(salary)<br />
<br />
6 FROM employees<br />
<br />
7 JOIN departments USING (department_id)<br />
<br />
8 JOIN locations USING (location_id)<br />
<br />
9 WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
<br />
<br />
LAST_NAME SALARY JOB_ID <br />
<br />
------------------------- ---------- ---------- <br />
<br />
Kochhar 17000 AD_VP <br />
<br />
De Haan 17000 AD_VP <br />
<br />
<br />
<br />
SQL> SELECT last_name, first_name, job_id, hire_date<br />
<br />
2 FROM employees<br />
<br />
3 WHERE hire_date ><br />
<br />
4 (SELECT MAX(hire_date)<br />
<br />
5 FROM employees<br />
<br />
6 WHERE department_id =<br />
<br />
7 (SELECT department_id<br />
<br />
8 FROM departments<br />
<br />
9 WHERE UPPER(department_name) = 'IT'))<br />
<br />
10 AND (department_id !=<br />
<br />
11 (SELECT department_id<br />
<br />
12 FROM departments<br />
<br />
13 WHERE UPPER(department_name) = 'EXECUTIVE')<br />
<br />
14 OR department_id IS NULL)<br />
<br />
15 ORDER BY 4 DESC;<br />
<br />
<br />
<br />
LAST_NAME FIRST_NAME JOB_ID HIRE_DATE <br />
<br />
------------------------- -------------------- ---------- --------- <br />
<br />
Zlotkey Eleni SA_MAN 29-JAN-00 <br />
<br />
Mourgos Kevin ST_MAN 16-NOV-99 <br />
<br />
Grant Kimberely SA_REP 24-MAY-99 <br />
<br />
<br />
<br />
SQL> SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay",<br />
<br />
2 MIN(salary) "Lowest Dept/Job Pay"<br />
<br />
3 FROM employees<br />
<br />
4 WHERE UPPER(job_id) NOT LIKE '%VP'<br />
<br />
5 AND department_id NOT IN<br />
<br />
6 (SELECT department_id<br />
<br />
7 FROM departments<br />
<br />
8 WHERE UPPER(department_name) IN ('IT','SALES'))<br />
<br />
9 GROUP BY department_id, job_id<br />
<br />
10 HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
<br />
11 ORDER BY 1, 2;<br />
<br />
<br />
<br />
DEPARTMENT_ID JOB_ID Average Dept/Job Pay Lowest Dept/Job Pay <br />
<br />
------------- ---------- -------------------- ------------------- <br />
<br />
20 MK_MAN 13000 13000 <br />
<br />
20 MK_REP 6000 6000 <br />
<br />
50 ST_MAN 5800 5800 <br />
<br />
110 AC_ACCOUNT 8300 8300 <br />
<br />
110 AC_MGR 12000 12000 <br />
<br />
<br />
<br />
SQL> SELECT department_id, department_name,<br />
<br />
2 RPAD(TRIM(NVL(city, 'Not Assinged Yet')), 25, ' ') "City",<br />
<br />
3 COUNT(DISTINCT job_id) "# of Jobs"<br />
<br />
4 FROM employees<br />
<br />
5 RIGHT OUTER JOIN departments USING (department_id)<br />
<br />
6 LEFT OUTER JOIN locations USING (location_id)<br />
<br />
7 GROUP BY department_id, department_name, city;<br />
<br />
<br />
<br />
DEPARTMENT_ID DEPARTMENT_NAME City # of Jobs <br />
<br />
------------- ------------------------------ ------------------------- ---------- <br />
<br />
110 Accounting Seattle 2 <br />
<br />
50 Shipping South San Francisco 2 <br />
<br />
80 Sales Oxford 2 <br />
<br />
10 Administration Seattle 1 <br />
<br />
190 Contracting Seattle 0 <br />
<br />
90 Executive Seattle 2 <br />
<br />
20 Marketing Toronto 2 <br />
<br />
60 IT Southlake 1 <br />
<br />
<br />
<br />
8 rows selected.<br />
<br />
<br />
<br />
SQL> spool off<br />
</pre><br />
==SQL Statements==<br />
===1.===<br />
''YuJin''<br />
<pre><br />
SELECT employee_id, RPAD(CONCAT(CONCAT(last_name, ', '),first_name), 25) "Full Name",<br />
job_id,<br />
TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
"Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
ORDER BY 4 DESC;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT employee_id,<br />
SUBSTR(last_name ||' '|| first_name, 1, 25) "Full Name",<br />
job_id,<br />
TO_CHAR(hire_date,'fmMonth "First in the year" YYYY') "Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date,'fmMON') IN ('MAY','NOV')<br />
ORDER BY hire_date DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select employee_id "Emp#",<br />
(last_name ||', '|| first_name) "Full Name",<br />
job_id "Job",<br />
to_char(trunc(hire_date, 'MONTH'), 'FMMonth Ddspth "in the year"<br />
YYYY') "Start Date"<br />
from employees<br />
where to_char(hire_date, 'fmMonth') in ('May', 'November')<br />
order by hire_date desc;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT employee_id, SUBSTR(last_name ||' '|| first_name, 1, 25) "Full Name",<br />
job_id,<br />
TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
"Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
ORDER BY hire_date DESC;<br />
</pre><br />
<br />
===2.===<br />
''YuJin''<br />
<pre><br />
SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
|| job_id || ' will have a new salary of $' || salary * 1.15 "Happy Employees"<br />
FROM employees<br />
WHERE salary BETWEEN 5000 AND 12000<br />
AND job_id IN ('IT_PROG', 'ST_CLERK')<br />
ORDER BY employee_id;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT 'Employee named '||first_name||' '||last_name||' who is '||job_id||' will have a new salary of $'|| salary *1.15 "Happy Employees"<br />
FROM employees<br />
WHERE job_id IN ('IT_PROG','ST CLERK')<br />
AND (salary BETWEEN 5000 AND 12000)<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
Select ('Employee named ' || first_name ||' '|| last_name || ' who is ' || job_id || ' will have a new salary of ' || (salary*1.15)) "Happy Employees"<br />
From employees<br />
Where salary between 5000 and 12000<br />
And upper(job_id) in ('IT_PROG', 'ST_CLERK')<br />
order by employee_id;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
|| job_id || ' will have a new salary of ' || TO_CHAR(salary * 1.15, 'fm$999999') "Happy Employees"<br />
FROM employees<br />
WHERE salary BETWEEN 5000 AND 12000<br />
AND UPPER(job_id) IN ('IT_PROG', 'ST_CLERK')<br />
ORDER BY employee_id;<br />
</pre><br />
<br />
===3.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, salary, job_id,<br />
RPAD(NVL(TO_CHAR(manager_id), 'No Manager'), 10) "Manager #",<br />
LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
FROM employees<br />
WHERE (job_id LIKE 'MK%' OR manager_id IS NULL)<br />
AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
ORDER BY 2 DESC;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, salary, job_id, NVL(TO_CHAR(manager_id),'No Manager') Manager#,<br />
TO_CHAR(salary*12,'$999,999') "Total Income"<br />
FROM employees<br />
WHERE (manager_id IS NULL<br />
OR job_id LIKE 'MK%')<br />
AND ( salary* (NVL(commission_pct,0) + 1) + 1000 ) > 10000<br />
ORDER BY salary DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, salary, job_id, nvl(to_char(manager_id),'No Manager') Manager#,<br />
to_char(salary*12,'$999,999') "Total Income"<br />
from employees<br />
where (upper(job_id) like 'MK%' or manager_id IS NULL)<br />
and salary * (1 + nvl(commission_pct, 0)) + 1000 > 10000<br />
order by 2 desc;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT last_name, salary, job_id,<br />
SUBSTR(NVL(TO_CHAR(manager_id), 'No Manager'), 1, 10) "Manager #",<br />
LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
FROM employees<br />
WHERE (UPPER(job_id) LIKE 'MK%' OR manager_id IS NULL)<br />
AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
ORDER BY salary DESC;<br />
<br />
</pre><br />
<br />
===4.===<br />
''YuJin''<br />
<pre><br />
SELECT RPAD(CONCAT(CONCAT(first_name,' '),last_name), 25) "Employee", job_id,<br />
LPAD(TRIM(TO_CHAR(salary, '$999,999')), 12, '=') "Salary", department_name<br />
FROM employees e JOIN departments d<br />
ON (e.department_id = d.department_id)<br />
WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
AND salary <<br />
(SELECT MAX(salary)<br />
FROM employees<br />
WHERE SUBSTR(job_id, 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
ORDER BY 1;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT SUBSTR(first_name||' '||last_name, 25) Employee, job_id,<br />
LPAD(TO_CHAR(salary,'$99,999'), 12, '=') Salary, department_name<br />
FROM employees e JOIN departments d<br />
ON (d.department_id=e.department_id)<br />
WHERE salary < (SELECT MAX(salary)<br />
FROM employees<br />
WHERE UPPER(SUBSTR(job_id,4)) NOT IN ('VP', 'PRES', 'MAN', 'MGR')<br />
)<br />
AND UPPER(department_name) IN ('MARKETING','SALES')<br />
ORDER BY first_name, last_name<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select substr(first_name ||' '|| last_name) "Employee", job_id, to_char(salary, '$999,999', 12, '=') Salary, department_name<br />
from employees e join departments d<br />
on (e.department_id = d.department_id)<br />
where upper(department_name) in ('MARKETING', 'SALES')<br />
and salary < (select max(salary)<br />
from employees<br />
where substr(job_id,4) not in ('PRES','VP','MAN','MGR'))<br />
order by "Employee";<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT SUBSTR(first_name ||' '|| last_name, 1, 25) "Employee", job_id,<br />
LPAD(TO_CHAR(salary, 'fm$999,999'), 12, '=') "Salary", department_name<br />
FROM employees e JOIN departments d<br />
ON (e.department_id = d.department_id)<br />
WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
AND salary <<br />
(SELECT MAX(salary)<br />
FROM employees<br />
WHERE SUBSTR(UPPER(job_id), 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
ORDER BY 1;<br />
</pre><br />
<br />
===5.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
AND salary ><br />
(SELECT MAX(salary)<br />
FROM employees<br />
JOIN departments USING (department_id)<br />
JOIN locations USING (location_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE salary > (SELECT MAX(salary)<br />
FROM locations JOIN departments<br />
USING (location_id)<br />
JOIN employees<br />
USING (department_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD')<br />
)<br />
AND UPPER(job_id) NOT LIKE '%PRES'<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, salary, job_id<br />
from employees<br />
where salary > (select max(salary)<br />
from employees join departments<br />
using (department_id)<br />
join locations<br />
using (location_id)<br />
where upper(city) in ('TORONTO','OXFORD'))<br />
and upper(job_id) not like '%PRES'<br />
</pre><br />
<br />
===6.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, first_name, job_id, hire_date<br />
FROM employees<br />
WHERE hire_date ><br />
(SELECT MAX(hire_date)<br />
FROM employees<br />
WHERE department_id =<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'IT'))<br />
AND (department_id !=<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'EXECUTIVE')<br />
OR department_id IS NULL)<br />
ORDER BY 4 DESC;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, first_name, job_id, hire_date<br />
FROM employees e<br />
WHERE hire_date > (SELECT MAX(hire_date)<br />
FROM employees<br />
WHERE department_id = (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'IT'<br />
)<br />
)<br />
AND (department_id <> (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) ='EXECUTIVE')<br />
OR department_id IS NULL)<br />
ORDER BY hire_date DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, first_name, job_id, hire_date<br />
from employees<br />
where hire_date > (select max(hire_date)<br />
from employees<br />
where department_id = (select department_id<br />
from departments<br />
where upper(department_name) = 'IT'))<br />
and (department_id != (select department_id<br />
from departments<br />
where upper(department_name) = 'EXECUTIVE')<br />
or department_id IS NULL)<br />
order by hire_date desc;<br />
</pre><br />
<br />
===7.===<br />
''YuJin''<br />
<pre><br />
SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay",<br />
MIN(salary) "Lowest Dept/Job Pay"<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%VP'<br />
AND department_id NOT IN<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) IN ('IT','SALES'))<br />
GROUP BY department_id, job_id<br />
HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
ORDER BY 1, 2;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay", MIN(salary) "Lowest Dept/Job Pay"<br />
FROM employees<br />
WHERE department_id <> ALL (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) IN ('IT','SALES')<br />
)<br />
AND job_id NOT LIKE '%VP'<br />
GROUP BY department_id, job_id<br />
HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
ORDER BY department_id, job_id<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select department_id, job_id, avg(salary) "Average Dept/Job Pay", min(salary) "Lowest Dept/Job Pay"<br />
from employees<br />
where upper(job_id) not like '%VP'<br />
and department_id != all(select department_id<br />
from departments<br />
where upper(department_name) in ('IT','SALES'))<br />
group by department_id, job_id<br />
having min(salary) between 5000 and 15000<br />
order by department_id, job_id<br />
</pre><br />
<br />
===8.===<br />
''YuJin''<br />
<pre><br />
SELECT department_id, department_name,<br />
RPAD(TRIM(NVL(city, 'Not Assinged Yet')), 25, ' ') "City",<br />
COUNT(DISTINCT job_id) "# of Jobs"<br />
FROM employees<br />
RIGHT OUTER JOIN departments USING (department_id)<br />
LEFT OUTER JOIN locations USING (location_id)<br />
GROUP BY department_id, department_name, city;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT department_id, department_name, SUBSTR(NVL(city,'Not Assigned Yet'),1,25) City,<br />
COUNT(DISTINCT job_id) "# of Jobs"<br />
FROM locations l RIGHT OUTER JOIN departments d<br />
USING (location_id)<br />
LEFT OUTER JOIN employees e<br />
USING (department_id)<br />
GROUP BY department_id, department_name, city<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select department_id, department_name, substr(nvl(city,'Not Assigned Yet'),1,25) City,<br />
count(distinct job_id) "# of Jobs"<br />
from employees right outer join departments<br />
using (department_id)<br />
left outer join locations<br />
using (location_id)<br />
group by department_id, department_name, city<br />
</pre></div>
Yujin.jeong
https://wiki.cdot.senecacollege.ca/w/index.php?title=J.Y.S&diff=48466
J.Y.S
2010-10-20T20:47:44Z
<p>Yujin.jeong: /* 4. */</p>
<hr />
<div>This page is to efficiently manage our group assignments!<br />
== Member List == <br />
*[mailto:,,yjeong@learn.senecac.on.ca,?subject=dbs301 Email All]<br />
<br />
{| class="wikitable sortable" border="1" cellpadding="5"<br />
! First Name !! Last Name !! wiki id !! Learn e-mail !! Phone<br />
|-<br />
|[[User:Yujin.jeong | YuJin]]||Jeong||[[Special:Contributions/yujin.jeong | yujin.jeong]]||[mailto:yjeong@learn.senecac.on.ca?sujbect=gam666 yjeong]|| 647 - 832 - 6771<br />
|-<br />
<br />
|-<br />
|Saad|| || || ||<br />
|-<br />
<br />
|-<br />
|James|| || || ||<br />
|-<br />
|}<br />
<br />
=Assignment 1=<br />
==Due Date==<br />
Thursday, October 21st, 4:00pm<br />
Printout submission only( SELECT Statements + ALL outputs)<br />
==Description==<br />
[https://cs.senecac.on.ca/~nconkic/assign1.doc Assignment1]<br />
==Solution==<br />
<pre><br />
SQL> SELECT employee_id, RPAD(CONCAT(CONCAT(last_name, ', '),first_name), 25) "Full Name",<br />
<br />
2 job_id,<br />
<br />
3 TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
<br />
4 "Start Date"<br />
<br />
5 FROM employees<br />
<br />
6 WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
<br />
7 ORDER BY 4 DESC;<br />
<br />
<br />
<br />
EMPLOYEE_ID Full Name JOB_ID Start Date <br />
<br />
----------- ------------------------- ---------- ----------------------------------------- <br />
<br />
124 Mourgos, Kevin ST_MAN November First in the year 1999 <br />
<br />
178 Grant, Kimberely SA_REP May First in the year 1999 <br />
<br />
174 Abel, Ellen SA_REP May First in the year 1996 <br />
<br />
104 Ernst, Bruce IT_PROG May First in the year 1991 <br />
<br />
<br />
<br />
SQL> SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
<br />
2 || job_id || ' will have a new salary of $' || salary * 1.15 "Happy Employees"<br />
<br />
3 FROM employees<br />
<br />
4 WHERE salary BETWEEN 5000 AND 12000<br />
<br />
5 AND job_id IN ('IT_PROG', 'ST_CLERK')<br />
<br />
6 ORDER BY employee_id;<br />
<br />
<br />
<br />
Happy Employees <br />
<br />
----------------------------------------------------------------------------------------------------<br />
<br />
Employee named Alexander Hunold who is IT_PROG will have a new salary of $10350 <br />
<br />
Employee named Bruce Ernst who is IT_PROG will have a new salary of $6900 <br />
<br />
<br />
<br />
SQL> SELECT last_name, salary, job_id,<br />
<br />
2 RPAD(NVL(TO_CHAR(manager_id), 'No Manager'), 10) "Manager #",<br />
<br />
3 LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
<br />
4 FROM employees<br />
<br />
5 WHERE (job_id LIKE 'MK%' OR manager_id IS NULL)<br />
<br />
6 AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
<br />
7 ORDER BY 2 DESC;<br />
<br />
<br />
<br />
LAST_NAME SALARY JOB_ID Manager # Total Income <br />
<br />
------------------------- ---------- ---------- ---------- ------------ <br />
<br />
King 24000 AD_PRES No Manager $288,000 <br />
<br />
Hartstein 13000 MK_MAN 100 $156,000 <br />
<br />
<br />
<br />
SQL> SELECT RPAD(CONCAT(CONCAT(first_name,' '),last_name), 25) "Employee", job_id,<br />
<br />
2 LPAD(TRIM(TO_CHAR(salary, '$999,999')), 12, '=') "Salary", department_name<br />
<br />
3 FROM employees e JOIN departments d<br />
<br />
4 ON (e.department_id = d.department_id)<br />
<br />
5 WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
<br />
6 AND salary <<br />
<br />
7 (SELECT MAX(salary)<br />
<br />
8 FROM employees<br />
<br />
9 WHERE SUBSTR(job_id, 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
<br />
10 ORDER BY 1;<br />
<br />
<br />
<br />
Employee JOB_ID Salary DEPARTMENT_NAME <br />
<br />
------------------------- ---------- ------------ ------------------------------ <br />
<br />
Eleni Zlotkey SA_MAN =====$10,500 Sales <br />
<br />
Jonathon Taylor SA_REP ======$8,600 Sales <br />
<br />
Pat Fay MK_REP ======$6,000 Marketing <br />
<br />
<br />
<br />
SQL><br />
<br />
SQL> SELECT last_name, salary, job_id<br />
<br />
2 FROM employees<br />
<br />
3 WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
<br />
4 AND salary ><br />
<br />
5 (SELECT MAX(salary)<br />
<br />
6 FROM employees<br />
<br />
7 JOIN departments USING (department_id)<br />
<br />
8 JOIN locations USING (location_id)<br />
<br />
9 WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
<br />
<br />
LAST_NAME SALARY JOB_ID <br />
<br />
------------------------- ---------- ---------- <br />
<br />
Kochhar 17000 AD_VP <br />
<br />
De Haan 17000 AD_VP <br />
<br />
<br />
<br />
SQL> SELECT last_name, first_name, job_id, hire_date<br />
<br />
2 FROM employees<br />
<br />
3 WHERE hire_date ><br />
<br />
4 (SELECT MAX(hire_date)<br />
<br />
5 FROM employees<br />
<br />
6 WHERE department_id =<br />
<br />
7 (SELECT department_id<br />
<br />
8 FROM departments<br />
<br />
9 WHERE UPPER(department_name) = 'IT'))<br />
<br />
10 AND (department_id !=<br />
<br />
11 (SELECT department_id<br />
<br />
12 FROM departments<br />
<br />
13 WHERE UPPER(department_name) = 'EXECUTIVE')<br />
<br />
14 OR department_id IS NULL)<br />
<br />
15 ORDER BY 4 DESC;<br />
<br />
<br />
<br />
LAST_NAME FIRST_NAME JOB_ID HIRE_DATE <br />
<br />
------------------------- -------------------- ---------- --------- <br />
<br />
Zlotkey Eleni SA_MAN 29-JAN-00 <br />
<br />
Mourgos Kevin ST_MAN 16-NOV-99 <br />
<br />
Grant Kimberely SA_REP 24-MAY-99 <br />
<br />
<br />
<br />
SQL> SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay",<br />
<br />
2 MIN(salary) "Lowest Dept/Job Pay"<br />
<br />
3 FROM employees<br />
<br />
4 WHERE UPPER(job_id) NOT LIKE '%VP'<br />
<br />
5 AND department_id NOT IN<br />
<br />
6 (SELECT department_id<br />
<br />
7 FROM departments<br />
<br />
8 WHERE UPPER(department_name) IN ('IT','SALES'))<br />
<br />
9 GROUP BY department_id, job_id<br />
<br />
10 HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
<br />
11 ORDER BY 1, 2;<br />
<br />
<br />
<br />
DEPARTMENT_ID JOB_ID Average Dept/Job Pay Lowest Dept/Job Pay <br />
<br />
------------- ---------- -------------------- ------------------- <br />
<br />
20 MK_MAN 13000 13000 <br />
<br />
20 MK_REP 6000 6000 <br />
<br />
50 ST_MAN 5800 5800 <br />
<br />
110 AC_ACCOUNT 8300 8300 <br />
<br />
110 AC_MGR 12000 12000 <br />
<br />
<br />
<br />
SQL> SELECT department_id, department_name,<br />
<br />
2 RPAD(TRIM(NVL(city, 'Not Assinged Yet')), 25, ' ') "City",<br />
<br />
3 COUNT(DISTINCT job_id) "# of Jobs"<br />
<br />
4 FROM employees<br />
<br />
5 RIGHT OUTER JOIN departments USING (department_id)<br />
<br />
6 LEFT OUTER JOIN locations USING (location_id)<br />
<br />
7 GROUP BY department_id, department_name, city;<br />
<br />
<br />
<br />
DEPARTMENT_ID DEPARTMENT_NAME City # of Jobs <br />
<br />
------------- ------------------------------ ------------------------- ---------- <br />
<br />
110 Accounting Seattle 2 <br />
<br />
50 Shipping South San Francisco 2 <br />
<br />
80 Sales Oxford 2 <br />
<br />
10 Administration Seattle 1 <br />
<br />
190 Contracting Seattle 0 <br />
<br />
90 Executive Seattle 2 <br />
<br />
20 Marketing Toronto 2 <br />
<br />
60 IT Southlake 1 <br />
<br />
<br />
<br />
8 rows selected.<br />
<br />
<br />
<br />
SQL> spool off<br />
</pre><br />
==SQL Statements==<br />
===1.===<br />
''YuJin''<br />
<pre><br />
SELECT employee_id, RPAD(CONCAT(CONCAT(last_name, ', '),first_name), 25) "Full Name",<br />
job_id,<br />
TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
"Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
ORDER BY 4 DESC;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT employee_id,<br />
SUBSTR(last_name ||' '|| first_name, 1, 25) "Full Name",<br />
job_id,<br />
TO_CHAR(hire_date,'fmMonth "First in the year" YYYY') "Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date,'fmMON') IN ('MAY','NOV')<br />
ORDER BY hire_date DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select employee_id "Emp#",<br />
(last_name ||', '|| first_name) "Full Name",<br />
job_id "Job",<br />
to_char(trunc(hire_date, 'MONTH'), 'FMMonth Ddspth "in the year"<br />
YYYY') "Start Date"<br />
from employees<br />
where to_char(hire_date, 'fmMonth') in ('May', 'November')<br />
order by hire_date desc;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT employee_id, SUBSTR(last_name ||' '|| first_name, 1, 25) "Full Name",<br />
job_id,<br />
TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
"Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
ORDER BY hire_date DESC;<br />
</pre><br />
<br />
===2.===<br />
''YuJin''<br />
<pre><br />
SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
|| job_id || ' will have a new salary of $' || salary * 1.15 "Happy Employees"<br />
FROM employees<br />
WHERE salary BETWEEN 5000 AND 12000<br />
AND job_id IN ('IT_PROG', 'ST_CLERK')<br />
ORDER BY employee_id;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT 'Employee named '||first_name||' '||last_name||' who is '||job_id||' will have a new salary of $'|| salary *1.15 "Happy Employees"<br />
FROM employees<br />
WHERE job_id IN ('IT_PROG','ST CLERK')<br />
AND (salary BETWEEN 5000 AND 12000)<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
Select ('Employee named ' || first_name ||' '|| last_name || ' who is ' || job_id || ' will have a new salary of ' || (salary*1.15)) "Happy Employees"<br />
From employees<br />
Where salary between 5000 and 12000<br />
And upper(job_id) in ('IT_PROG', 'ST_CLERK')<br />
order by employee_id;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
|| job_id || ' will have a new salary of ' || TO_CHAR(salary * 1.15, 'fm$999999') "Happy Employees"<br />
FROM employees<br />
WHERE salary BETWEEN 5000 AND 12000<br />
AND UPPER(job_id) IN ('IT_PROG', 'ST_CLERK')<br />
ORDER BY employee_id;<br />
</pre><br />
<br />
===3.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, salary, job_id,<br />
RPAD(NVL(TO_CHAR(manager_id), 'No Manager'), 10) "Manager #",<br />
LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
FROM employees<br />
WHERE (job_id LIKE 'MK%' OR manager_id IS NULL)<br />
AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
ORDER BY 2 DESC;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, salary, job_id, NVL(TO_CHAR(manager_id),'No Manager') Manager#,<br />
TO_CHAR(salary*12,'$999,999') "Total Income"<br />
FROM employees<br />
WHERE (manager_id IS NULL<br />
OR job_id LIKE 'MK%')<br />
AND ( salary* (NVL(commission_pct,0) + 1) + 1000 ) > 10000<br />
ORDER BY salary DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, salary, job_id, nvl(to_char(manager_id),'No Manager') Manager#,<br />
to_char(salary*12,'$999,999') "Total Income"<br />
from employees<br />
where (upper(job_id) like 'MK%' or manager_id IS NULL)<br />
and salary * (1 + nvl(commission_pct, 0)) + 1000 > 10000<br />
order by 2 desc;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT last_name, salary, job_id,<br />
SUBSTR(NVL(TO_CHAR(manager_id), 'No Manager'), 1, 10) "Manager #",<br />
LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
FROM employees<br />
WHERE (UPPER(job_id) LIKE 'MK%' OR manager_id IS NULL)<br />
AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
ORDER BY salary DESC;<br />
<br />
</pre><br />
<br />
===4.===<br />
''YuJin''<br />
<pre><br />
SELECT RPAD(CONCAT(CONCAT(first_name,' '),last_name), 25) "Employee", job_id,<br />
LPAD(TRIM(TO_CHAR(salary, '$999,999')), 12, '=') "Salary", department_name<br />
FROM employees e JOIN departments d<br />
ON (e.department_id = d.department_id)<br />
WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
AND salary <<br />
(SELECT MAX(salary)<br />
FROM employees<br />
WHERE SUBSTR(job_id, 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
ORDER BY 1;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT SUBSTR(first_name||' '||last_name, 25) Employee, job_id,<br />
LPAD(TO_CHAR(salary,'$99,999'), 12, '=') Salary, department_name<br />
FROM employees e JOIN departments d<br />
ON (d.department_id=e.department_id)<br />
WHERE salary < (SELECT MAX(salary)<br />
FROM employees<br />
WHERE UPPER(SUBSTR(job_id,4)) NOT IN ('VP', 'PRES', 'MAN', 'MGR')<br />
)<br />
AND UPPER(department_name) IN ('MARKETING','SALES')<br />
ORDER BY first_name, last_name<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select substr(first_name ||' '|| last_name) "Employee", job_id, to_char(salary, '$999,999', 12, '=') Salary, department_name<br />
from employees e join departments d<br />
on (e.department_id = d.department_id)<br />
where upper(department_name) in ('MARKETING', 'SALES')<br />
and salary < (select max(salary)<br />
from employees<br />
where substr(job_id,4) not in ('PRES','VP','MAN','MGR'))<br />
order by "Employee";<br />
</pre><br />
<br />
''YuJin''<br />
<pre><br />
SELECT SUBSTR(first_name ||' '|| last_name, 1, 25) "Employee", job_id,<br />
LPAD(TO_CHAR(salary, 'fm$999,999'), 12, '=') "Salary", department_name<br />
FROM employees e JOIN departments d<br />
ON (e.department_id = d.department_id)<br />
WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
AND salary <<br />
(SELECT MAX(salary)<br />
FROM employees<br />
WHERE SUBSTR(UPPER(job_id), 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
ORDER BY 1;<br />
</pre><br />
<br />
===5.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
AND salary ><br />
(SELECT MAX(salary)<br />
FROM employees<br />
JOIN departments USING (department_id)<br />
JOIN locations USING (location_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE salary > (SELECT MAX(salary)<br />
FROM locations JOIN departments<br />
USING (location_id)<br />
JOIN employees<br />
USING (department_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD')<br />
)<br />
AND UPPER(job_id) NOT LIKE '%PRES'<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, salary, job_id<br />
from employees<br />
where salary > (select max(salary)<br />
from employees join departments<br />
using (department_id)<br />
join locations<br />
using (location_id)<br />
where upper(city) in ('TORONTO','OXFORD'))<br />
and upper(job_id) not like '%PRES'<br />
</pre><br />
<br />
===6.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, first_name, job_id, hire_date<br />
FROM employees<br />
WHERE hire_date ><br />
(SELECT MAX(hire_date)<br />
FROM employees<br />
WHERE department_id =<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'IT'))<br />
AND (department_id !=<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'EXECUTIVE')<br />
OR department_id IS NULL)<br />
ORDER BY 4 DESC;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, first_name, job_id, hire_date<br />
FROM employees e<br />
WHERE hire_date > (SELECT MAX(hire_date)<br />
FROM employees<br />
WHERE department_id = (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'IT'<br />
)<br />
)<br />
AND (department_id <> (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) ='EXECUTIVE')<br />
OR department_id IS NULL)<br />
ORDER BY hire_date DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, first_name, job_id, hire_date<br />
from employees<br />
where hire_date > (select max(hire_date)<br />
from employees<br />
where department_id = (select department_id<br />
from departments<br />
where upper(department_name) = 'IT'))<br />
and (department_id != (select department_id<br />
from departments<br />
where upper(department_name) = 'EXECUTIVE')<br />
or department_id IS NULL)<br />
order by hire_date desc;<br />
</pre><br />
<br />
===7.===<br />
''YuJin''<br />
<pre><br />
SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay",<br />
MIN(salary) "Lowest Dept/Job Pay"<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%VP'<br />
AND department_id NOT IN<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) IN ('IT','SALES'))<br />
GROUP BY department_id, job_id<br />
HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
ORDER BY 1, 2;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay", MIN(salary) "Lowest Dept/Job Pay"<br />
FROM employees<br />
WHERE department_id <> ALL (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) IN ('IT','SALES')<br />
)<br />
AND job_id NOT LIKE '%VP'<br />
GROUP BY department_id, job_id<br />
HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
ORDER BY department_id, job_id<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select department_id, job_id, avg(salary) "Average Dept/Job Pay", min(salary) "Lowest Dept/Job Pay"<br />
from employees<br />
where upper(job_id) not like '%VP'<br />
and department_id != all(select department_id<br />
from departments<br />
where upper(department_name) in ('IT','SALES'))<br />
group by department_id, job_id<br />
having min(salary) between 5000 and 15000<br />
order by department_id, job_id<br />
</pre><br />
<br />
===8.===<br />
''YuJin''<br />
<pre><br />
SELECT department_id, department_name,<br />
RPAD(TRIM(NVL(city, 'Not Assinged Yet')), 25, ' ') "City",<br />
COUNT(DISTINCT job_id) "# of Jobs"<br />
FROM employees<br />
RIGHT OUTER JOIN departments USING (department_id)<br />
LEFT OUTER JOIN locations USING (location_id)<br />
GROUP BY department_id, department_name, city;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT department_id, department_name, SUBSTR(NVL(city,'Not Assigned Yet'),1,25) City,<br />
COUNT(DISTINCT job_id) "# of Jobs"<br />
FROM locations l RIGHT OUTER JOIN departments d<br />
USING (location_id)<br />
LEFT OUTER JOIN employees e<br />
USING (department_id)<br />
GROUP BY department_id, department_name, city<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select department_id, department_name, substr(nvl(city,'Not Assigned Yet'),1,25) City,<br />
count(distinct job_id) "# of Jobs"<br />
from employees right outer join departments<br />
using (department_id)<br />
left outer join locations<br />
using (location_id)<br />
group by department_id, department_name, city<br />
</pre></div>
Yujin.jeong
https://wiki.cdot.senecacollege.ca/w/index.php?title=J.Y.S&diff=48465
J.Y.S
2010-10-20T20:38:17Z
<p>Yujin.jeong: /* 3. */</p>
<hr />
<div>This page is to efficiently manage our group assignments!<br />
== Member List == <br />
*[mailto:,,yjeong@learn.senecac.on.ca,?subject=dbs301 Email All]<br />
<br />
{| class="wikitable sortable" border="1" cellpadding="5"<br />
! First Name !! Last Name !! wiki id !! Learn e-mail !! Phone<br />
|-<br />
|[[User:Yujin.jeong | YuJin]]||Jeong||[[Special:Contributions/yujin.jeong | yujin.jeong]]||[mailto:yjeong@learn.senecac.on.ca?sujbect=gam666 yjeong]|| 647 - 832 - 6771<br />
|-<br />
<br />
|-<br />
|Saad|| || || ||<br />
|-<br />
<br />
|-<br />
|James|| || || ||<br />
|-<br />
|}<br />
<br />
=Assignment 1=<br />
==Due Date==<br />
Thursday, October 21st, 4:00pm<br />
Printout submission only( SELECT Statements + ALL outputs)<br />
==Description==<br />
[https://cs.senecac.on.ca/~nconkic/assign1.doc Assignment1]<br />
==Solution==<br />
<pre><br />
SQL> SELECT employee_id, RPAD(CONCAT(CONCAT(last_name, ', '),first_name), 25) "Full Name",<br />
<br />
2 job_id,<br />
<br />
3 TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
<br />
4 "Start Date"<br />
<br />
5 FROM employees<br />
<br />
6 WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
<br />
7 ORDER BY 4 DESC;<br />
<br />
<br />
<br />
EMPLOYEE_ID Full Name JOB_ID Start Date <br />
<br />
----------- ------------------------- ---------- ----------------------------------------- <br />
<br />
124 Mourgos, Kevin ST_MAN November First in the year 1999 <br />
<br />
178 Grant, Kimberely SA_REP May First in the year 1999 <br />
<br />
174 Abel, Ellen SA_REP May First in the year 1996 <br />
<br />
104 Ernst, Bruce IT_PROG May First in the year 1991 <br />
<br />
<br />
<br />
SQL> SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
<br />
2 || job_id || ' will have a new salary of $' || salary * 1.15 "Happy Employees"<br />
<br />
3 FROM employees<br />
<br />
4 WHERE salary BETWEEN 5000 AND 12000<br />
<br />
5 AND job_id IN ('IT_PROG', 'ST_CLERK')<br />
<br />
6 ORDER BY employee_id;<br />
<br />
<br />
<br />
Happy Employees <br />
<br />
----------------------------------------------------------------------------------------------------<br />
<br />
Employee named Alexander Hunold who is IT_PROG will have a new salary of $10350 <br />
<br />
Employee named Bruce Ernst who is IT_PROG will have a new salary of $6900 <br />
<br />
<br />
<br />
SQL> SELECT last_name, salary, job_id,<br />
<br />
2 RPAD(NVL(TO_CHAR(manager_id), 'No Manager'), 10) "Manager #",<br />
<br />
3 LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
<br />
4 FROM employees<br />
<br />
5 WHERE (job_id LIKE 'MK%' OR manager_id IS NULL)<br />
<br />
6 AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
<br />
7 ORDER BY 2 DESC;<br />
<br />
<br />
<br />
LAST_NAME SALARY JOB_ID Manager # Total Income <br />
<br />
------------------------- ---------- ---------- ---------- ------------ <br />
<br />
King 24000 AD_PRES No Manager $288,000 <br />
<br />
Hartstein 13000 MK_MAN 100 $156,000 <br />
<br />
<br />
<br />
SQL> SELECT RPAD(CONCAT(CONCAT(first_name,' '),last_name), 25) "Employee", job_id,<br />
<br />
2 LPAD(TRIM(TO_CHAR(salary, '$999,999')), 12, '=') "Salary", department_name<br />
<br />
3 FROM employees e JOIN departments d<br />
<br />
4 ON (e.department_id = d.department_id)<br />
<br />
5 WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
<br />
6 AND salary <<br />
<br />
7 (SELECT MAX(salary)<br />
<br />
8 FROM employees<br />
<br />
9 WHERE SUBSTR(job_id, 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
<br />
10 ORDER BY 1;<br />
<br />
<br />
<br />
Employee JOB_ID Salary DEPARTMENT_NAME <br />
<br />
------------------------- ---------- ------------ ------------------------------ <br />
<br />
Eleni Zlotkey SA_MAN =====$10,500 Sales <br />
<br />
Jonathon Taylor SA_REP ======$8,600 Sales <br />
<br />
Pat Fay MK_REP ======$6,000 Marketing <br />
<br />
<br />
<br />
SQL><br />
<br />
SQL> SELECT last_name, salary, job_id<br />
<br />
2 FROM employees<br />
<br />
3 WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
<br />
4 AND salary ><br />
<br />
5 (SELECT MAX(salary)<br />
<br />
6 FROM employees<br />
<br />
7 JOIN departments USING (department_id)<br />
<br />
8 JOIN locations USING (location_id)<br />
<br />
9 WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
<br />
<br />
LAST_NAME SALARY JOB_ID <br />
<br />
------------------------- ---------- ---------- <br />
<br />
Kochhar 17000 AD_VP <br />
<br />
De Haan 17000 AD_VP <br />
<br />
<br />
<br />
SQL> SELECT last_name, first_name, job_id, hire_date<br />
<br />
2 FROM employees<br />
<br />
3 WHERE hire_date ><br />
<br />
4 (SELECT MAX(hire_date)<br />
<br />
5 FROM employees<br />
<br />
6 WHERE department_id =<br />
<br />
7 (SELECT department_id<br />
<br />
8 FROM departments<br />
<br />
9 WHERE UPPER(department_name) = 'IT'))<br />
<br />
10 AND (department_id !=<br />
<br />
11 (SELECT department_id<br />
<br />
12 FROM departments<br />
<br />
13 WHERE UPPER(department_name) = 'EXECUTIVE')<br />
<br />
14 OR department_id IS NULL)<br />
<br />
15 ORDER BY 4 DESC;<br />
<br />
<br />
<br />
LAST_NAME FIRST_NAME JOB_ID HIRE_DATE <br />
<br />
------------------------- -------------------- ---------- --------- <br />
<br />
Zlotkey Eleni SA_MAN 29-JAN-00 <br />
<br />
Mourgos Kevin ST_MAN 16-NOV-99 <br />
<br />
Grant Kimberely SA_REP 24-MAY-99 <br />
<br />
<br />
<br />
SQL> SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay",<br />
<br />
2 MIN(salary) "Lowest Dept/Job Pay"<br />
<br />
3 FROM employees<br />
<br />
4 WHERE UPPER(job_id) NOT LIKE '%VP'<br />
<br />
5 AND department_id NOT IN<br />
<br />
6 (SELECT department_id<br />
<br />
7 FROM departments<br />
<br />
8 WHERE UPPER(department_name) IN ('IT','SALES'))<br />
<br />
9 GROUP BY department_id, job_id<br />
<br />
10 HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
<br />
11 ORDER BY 1, 2;<br />
<br />
<br />
<br />
DEPARTMENT_ID JOB_ID Average Dept/Job Pay Lowest Dept/Job Pay <br />
<br />
------------- ---------- -------------------- ------------------- <br />
<br />
20 MK_MAN 13000 13000 <br />
<br />
20 MK_REP 6000 6000 <br />
<br />
50 ST_MAN 5800 5800 <br />
<br />
110 AC_ACCOUNT 8300 8300 <br />
<br />
110 AC_MGR 12000 12000 <br />
<br />
<br />
<br />
SQL> SELECT department_id, department_name,<br />
<br />
2 RPAD(TRIM(NVL(city, 'Not Assinged Yet')), 25, ' ') "City",<br />
<br />
3 COUNT(DISTINCT job_id) "# of Jobs"<br />
<br />
4 FROM employees<br />
<br />
5 RIGHT OUTER JOIN departments USING (department_id)<br />
<br />
6 LEFT OUTER JOIN locations USING (location_id)<br />
<br />
7 GROUP BY department_id, department_name, city;<br />
<br />
<br />
<br />
DEPARTMENT_ID DEPARTMENT_NAME City # of Jobs <br />
<br />
------------- ------------------------------ ------------------------- ---------- <br />
<br />
110 Accounting Seattle 2 <br />
<br />
50 Shipping South San Francisco 2 <br />
<br />
80 Sales Oxford 2 <br />
<br />
10 Administration Seattle 1 <br />
<br />
190 Contracting Seattle 0 <br />
<br />
90 Executive Seattle 2 <br />
<br />
20 Marketing Toronto 2 <br />
<br />
60 IT Southlake 1 <br />
<br />
<br />
<br />
8 rows selected.<br />
<br />
<br />
<br />
SQL> spool off<br />
</pre><br />
==SQL Statements==<br />
===1.===<br />
''YuJin''<br />
<pre><br />
SELECT employee_id, RPAD(CONCAT(CONCAT(last_name, ', '),first_name), 25) "Full Name",<br />
job_id,<br />
TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
"Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
ORDER BY 4 DESC;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT employee_id,<br />
SUBSTR(last_name ||' '|| first_name, 1, 25) "Full Name",<br />
job_id,<br />
TO_CHAR(hire_date,'fmMonth "First in the year" YYYY') "Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date,'fmMON') IN ('MAY','NOV')<br />
ORDER BY hire_date DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select employee_id "Emp#",<br />
(last_name ||', '|| first_name) "Full Name",<br />
job_id "Job",<br />
to_char(trunc(hire_date, 'MONTH'), 'FMMonth Ddspth "in the year"<br />
YYYY') "Start Date"<br />
from employees<br />
where to_char(hire_date, 'fmMonth') in ('May', 'November')<br />
order by hire_date desc;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT employee_id, SUBSTR(last_name ||' '|| first_name, 1, 25) "Full Name",<br />
job_id,<br />
TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
"Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
ORDER BY hire_date DESC;<br />
</pre><br />
<br />
===2.===<br />
''YuJin''<br />
<pre><br />
SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
|| job_id || ' will have a new salary of $' || salary * 1.15 "Happy Employees"<br />
FROM employees<br />
WHERE salary BETWEEN 5000 AND 12000<br />
AND job_id IN ('IT_PROG', 'ST_CLERK')<br />
ORDER BY employee_id;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT 'Employee named '||first_name||' '||last_name||' who is '||job_id||' will have a new salary of $'|| salary *1.15 "Happy Employees"<br />
FROM employees<br />
WHERE job_id IN ('IT_PROG','ST CLERK')<br />
AND (salary BETWEEN 5000 AND 12000)<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
Select ('Employee named ' || first_name ||' '|| last_name || ' who is ' || job_id || ' will have a new salary of ' || (salary*1.15)) "Happy Employees"<br />
From employees<br />
Where salary between 5000 and 12000<br />
And upper(job_id) in ('IT_PROG', 'ST_CLERK')<br />
order by employee_id;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
|| job_id || ' will have a new salary of ' || TO_CHAR(salary * 1.15, 'fm$999999') "Happy Employees"<br />
FROM employees<br />
WHERE salary BETWEEN 5000 AND 12000<br />
AND UPPER(job_id) IN ('IT_PROG', 'ST_CLERK')<br />
ORDER BY employee_id;<br />
</pre><br />
<br />
===3.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, salary, job_id,<br />
RPAD(NVL(TO_CHAR(manager_id), 'No Manager'), 10) "Manager #",<br />
LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
FROM employees<br />
WHERE (job_id LIKE 'MK%' OR manager_id IS NULL)<br />
AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
ORDER BY 2 DESC;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, salary, job_id, NVL(TO_CHAR(manager_id),'No Manager') Manager#,<br />
TO_CHAR(salary*12,'$999,999') "Total Income"<br />
FROM employees<br />
WHERE (manager_id IS NULL<br />
OR job_id LIKE 'MK%')<br />
AND ( salary* (NVL(commission_pct,0) + 1) + 1000 ) > 10000<br />
ORDER BY salary DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, salary, job_id, nvl(to_char(manager_id),'No Manager') Manager#,<br />
to_char(salary*12,'$999,999') "Total Income"<br />
from employees<br />
where (upper(job_id) like 'MK%' or manager_id IS NULL)<br />
and salary * (1 + nvl(commission_pct, 0)) + 1000 > 10000<br />
order by 2 desc;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT last_name, salary, job_id,<br />
SUBSTR(NVL(TO_CHAR(manager_id), 'No Manager'), 1, 10) "Manager #",<br />
LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
FROM employees<br />
WHERE (UPPER(job_id) LIKE 'MK%' OR manager_id IS NULL)<br />
AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
ORDER BY salary DESC;<br />
<br />
</pre><br />
<br />
===4.===<br />
''YuJin''<br />
<pre><br />
SELECT RPAD(CONCAT(CONCAT(first_name,' '),last_name), 25) "Employee", job_id,<br />
LPAD(TRIM(TO_CHAR(salary, '$999,999')), 12, '=') "Salary", department_name<br />
FROM employees e JOIN departments d<br />
ON (e.department_id = d.department_id)<br />
WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
AND salary <<br />
(SELECT MAX(salary)<br />
FROM employees<br />
WHERE SUBSTR(job_id, 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
ORDER BY 1;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT SUBSTR(first_name||' '||last_name, 25) Employee, job_id,<br />
LPAD(TO_CHAR(salary,'$99,999'), 12, '=') Salary, department_name<br />
FROM employees e JOIN departments d<br />
ON (d.department_id=e.department_id)<br />
WHERE salary < (SELECT MAX(salary)<br />
FROM employees<br />
WHERE UPPER(SUBSTR(job_id,4)) NOT IN ('VP', 'PRES', 'MAN', 'MGR')<br />
)<br />
AND UPPER(department_name) IN ('MARKETING','SALES')<br />
ORDER BY first_name, last_name<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select substr(first_name ||' '|| last_name) "Employee", job_id, to_char(salary, '$999,999', 12, '=') Salary, department_name<br />
from employees e join departments d<br />
on (e.department_id = d.department_id)<br />
where upper(department_name) in ('MARKETING', 'SALES')<br />
and salary < (select max(salary)<br />
from employees<br />
where substr(job_id,4)) not in ('PRES','VP','MAN','MGR'))<br />
order by employee;<br />
</pre><br />
<br />
===5.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
AND salary ><br />
(SELECT MAX(salary)<br />
FROM employees<br />
JOIN departments USING (department_id)<br />
JOIN locations USING (location_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE salary > (SELECT MAX(salary)<br />
FROM locations JOIN departments<br />
USING (location_id)<br />
JOIN employees<br />
USING (department_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD')<br />
)<br />
AND UPPER(job_id) NOT LIKE '%PRES'<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, salary, job_id<br />
from employees<br />
where salary > (select max(salary)<br />
from employees join departments<br />
using (department_id)<br />
join locations<br />
using (location_id)<br />
where upper(city) in ('TORONTO','OXFORD'))<br />
and upper(job_id) not like '%PRES'<br />
</pre><br />
<br />
===6.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, first_name, job_id, hire_date<br />
FROM employees<br />
WHERE hire_date ><br />
(SELECT MAX(hire_date)<br />
FROM employees<br />
WHERE department_id =<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'IT'))<br />
AND (department_id !=<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'EXECUTIVE')<br />
OR department_id IS NULL)<br />
ORDER BY 4 DESC;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, first_name, job_id, hire_date<br />
FROM employees e<br />
WHERE hire_date > (SELECT MAX(hire_date)<br />
FROM employees<br />
WHERE department_id = (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'IT'<br />
)<br />
)<br />
AND (department_id <> (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) ='EXECUTIVE')<br />
OR department_id IS NULL)<br />
ORDER BY hire_date DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, first_name, job_id, hire_date<br />
from employees<br />
where hire_date > (select max(hire_date)<br />
from employees<br />
where department_id = (select department_id<br />
from departments<br />
where upper(department_name) = 'IT'))<br />
and (department_id != (select department_id<br />
from departments<br />
where upper(department_name) = 'EXECUTIVE')<br />
or department_id IS NULL)<br />
order by hire_date desc;<br />
</pre><br />
<br />
===7.===<br />
''YuJin''<br />
<pre><br />
SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay",<br />
MIN(salary) "Lowest Dept/Job Pay"<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%VP'<br />
AND department_id NOT IN<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) IN ('IT','SALES'))<br />
GROUP BY department_id, job_id<br />
HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
ORDER BY 1, 2;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay", MIN(salary) "Lowest Dept/Job Pay"<br />
FROM employees<br />
WHERE department_id <> ALL (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) IN ('IT','SALES')<br />
)<br />
AND job_id NOT LIKE '%VP'<br />
GROUP BY department_id, job_id<br />
HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
ORDER BY department_id, job_id<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select department_id, job_id, avg(salary) "Average Dept/Job Pay", min(salary) "Lowest Dept/Job Pay"<br />
from employees<br />
where upper(job_id) not like '%VP'<br />
and department_id != all(select department_id<br />
from departments<br />
where upper(department_name) in ('IT','SALES'))<br />
group by department_id, job_id<br />
having min(salary) between 5000 and 15000<br />
order by department_id, job_id<br />
</pre><br />
<br />
===8.===<br />
''YuJin''<br />
<pre><br />
SELECT department_id, department_name,<br />
RPAD(TRIM(NVL(city, 'Not Assinged Yet')), 25, ' ') "City",<br />
COUNT(DISTINCT job_id) "# of Jobs"<br />
FROM employees<br />
RIGHT OUTER JOIN departments USING (department_id)<br />
LEFT OUTER JOIN locations USING (location_id)<br />
GROUP BY department_id, department_name, city;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT department_id, department_name, SUBSTR(NVL(city,'Not Assigned Yet'),1,25) City,<br />
COUNT(DISTINCT job_id) "# of Jobs"<br />
FROM locations l RIGHT OUTER JOIN departments d<br />
USING (location_id)<br />
LEFT OUTER JOIN employees e<br />
USING (department_id)<br />
GROUP BY department_id, department_name, city<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select department_id, department_name, substr(nvl(city,'Not Assigned Yet'),1,25) City,<br />
count(distinct job_id) "# of Jobs"<br />
from employees right outer join departments<br />
using (department_id)<br />
left outer join locations<br />
using (location_id)<br />
group by department_id, department_name, city<br />
</pre></div>
Yujin.jeong
https://wiki.cdot.senecacollege.ca/w/index.php?title=J.Y.S&diff=48464
J.Y.S
2010-10-20T20:25:36Z
<p>Yujin.jeong: /* 2. */</p>
<hr />
<div>This page is to efficiently manage our group assignments!<br />
== Member List == <br />
*[mailto:,,yjeong@learn.senecac.on.ca,?subject=dbs301 Email All]<br />
<br />
{| class="wikitable sortable" border="1" cellpadding="5"<br />
! First Name !! Last Name !! wiki id !! Learn e-mail !! Phone<br />
|-<br />
|[[User:Yujin.jeong | YuJin]]||Jeong||[[Special:Contributions/yujin.jeong | yujin.jeong]]||[mailto:yjeong@learn.senecac.on.ca?sujbect=gam666 yjeong]|| 647 - 832 - 6771<br />
|-<br />
<br />
|-<br />
|Saad|| || || ||<br />
|-<br />
<br />
|-<br />
|James|| || || ||<br />
|-<br />
|}<br />
<br />
=Assignment 1=<br />
==Due Date==<br />
Thursday, October 21st, 4:00pm<br />
Printout submission only( SELECT Statements + ALL outputs)<br />
==Description==<br />
[https://cs.senecac.on.ca/~nconkic/assign1.doc Assignment1]<br />
==Solution==<br />
<pre><br />
SQL> SELECT employee_id, RPAD(CONCAT(CONCAT(last_name, ', '),first_name), 25) "Full Name",<br />
<br />
2 job_id,<br />
<br />
3 TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
<br />
4 "Start Date"<br />
<br />
5 FROM employees<br />
<br />
6 WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
<br />
7 ORDER BY 4 DESC;<br />
<br />
<br />
<br />
EMPLOYEE_ID Full Name JOB_ID Start Date <br />
<br />
----------- ------------------------- ---------- ----------------------------------------- <br />
<br />
124 Mourgos, Kevin ST_MAN November First in the year 1999 <br />
<br />
178 Grant, Kimberely SA_REP May First in the year 1999 <br />
<br />
174 Abel, Ellen SA_REP May First in the year 1996 <br />
<br />
104 Ernst, Bruce IT_PROG May First in the year 1991 <br />
<br />
<br />
<br />
SQL> SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
<br />
2 || job_id || ' will have a new salary of $' || salary * 1.15 "Happy Employees"<br />
<br />
3 FROM employees<br />
<br />
4 WHERE salary BETWEEN 5000 AND 12000<br />
<br />
5 AND job_id IN ('IT_PROG', 'ST_CLERK')<br />
<br />
6 ORDER BY employee_id;<br />
<br />
<br />
<br />
Happy Employees <br />
<br />
----------------------------------------------------------------------------------------------------<br />
<br />
Employee named Alexander Hunold who is IT_PROG will have a new salary of $10350 <br />
<br />
Employee named Bruce Ernst who is IT_PROG will have a new salary of $6900 <br />
<br />
<br />
<br />
SQL> SELECT last_name, salary, job_id,<br />
<br />
2 RPAD(NVL(TO_CHAR(manager_id), 'No Manager'), 10) "Manager #",<br />
<br />
3 LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
<br />
4 FROM employees<br />
<br />
5 WHERE (job_id LIKE 'MK%' OR manager_id IS NULL)<br />
<br />
6 AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
<br />
7 ORDER BY 2 DESC;<br />
<br />
<br />
<br />
LAST_NAME SALARY JOB_ID Manager # Total Income <br />
<br />
------------------------- ---------- ---------- ---------- ------------ <br />
<br />
King 24000 AD_PRES No Manager $288,000 <br />
<br />
Hartstein 13000 MK_MAN 100 $156,000 <br />
<br />
<br />
<br />
SQL> SELECT RPAD(CONCAT(CONCAT(first_name,' '),last_name), 25) "Employee", job_id,<br />
<br />
2 LPAD(TRIM(TO_CHAR(salary, '$999,999')), 12, '=') "Salary", department_name<br />
<br />
3 FROM employees e JOIN departments d<br />
<br />
4 ON (e.department_id = d.department_id)<br />
<br />
5 WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
<br />
6 AND salary <<br />
<br />
7 (SELECT MAX(salary)<br />
<br />
8 FROM employees<br />
<br />
9 WHERE SUBSTR(job_id, 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
<br />
10 ORDER BY 1;<br />
<br />
<br />
<br />
Employee JOB_ID Salary DEPARTMENT_NAME <br />
<br />
------------------------- ---------- ------------ ------------------------------ <br />
<br />
Eleni Zlotkey SA_MAN =====$10,500 Sales <br />
<br />
Jonathon Taylor SA_REP ======$8,600 Sales <br />
<br />
Pat Fay MK_REP ======$6,000 Marketing <br />
<br />
<br />
<br />
SQL><br />
<br />
SQL> SELECT last_name, salary, job_id<br />
<br />
2 FROM employees<br />
<br />
3 WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
<br />
4 AND salary ><br />
<br />
5 (SELECT MAX(salary)<br />
<br />
6 FROM employees<br />
<br />
7 JOIN departments USING (department_id)<br />
<br />
8 JOIN locations USING (location_id)<br />
<br />
9 WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
<br />
<br />
LAST_NAME SALARY JOB_ID <br />
<br />
------------------------- ---------- ---------- <br />
<br />
Kochhar 17000 AD_VP <br />
<br />
De Haan 17000 AD_VP <br />
<br />
<br />
<br />
SQL> SELECT last_name, first_name, job_id, hire_date<br />
<br />
2 FROM employees<br />
<br />
3 WHERE hire_date ><br />
<br />
4 (SELECT MAX(hire_date)<br />
<br />
5 FROM employees<br />
<br />
6 WHERE department_id =<br />
<br />
7 (SELECT department_id<br />
<br />
8 FROM departments<br />
<br />
9 WHERE UPPER(department_name) = 'IT'))<br />
<br />
10 AND (department_id !=<br />
<br />
11 (SELECT department_id<br />
<br />
12 FROM departments<br />
<br />
13 WHERE UPPER(department_name) = 'EXECUTIVE')<br />
<br />
14 OR department_id IS NULL)<br />
<br />
15 ORDER BY 4 DESC;<br />
<br />
<br />
<br />
LAST_NAME FIRST_NAME JOB_ID HIRE_DATE <br />
<br />
------------------------- -------------------- ---------- --------- <br />
<br />
Zlotkey Eleni SA_MAN 29-JAN-00 <br />
<br />
Mourgos Kevin ST_MAN 16-NOV-99 <br />
<br />
Grant Kimberely SA_REP 24-MAY-99 <br />
<br />
<br />
<br />
SQL> SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay",<br />
<br />
2 MIN(salary) "Lowest Dept/Job Pay"<br />
<br />
3 FROM employees<br />
<br />
4 WHERE UPPER(job_id) NOT LIKE '%VP'<br />
<br />
5 AND department_id NOT IN<br />
<br />
6 (SELECT department_id<br />
<br />
7 FROM departments<br />
<br />
8 WHERE UPPER(department_name) IN ('IT','SALES'))<br />
<br />
9 GROUP BY department_id, job_id<br />
<br />
10 HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
<br />
11 ORDER BY 1, 2;<br />
<br />
<br />
<br />
DEPARTMENT_ID JOB_ID Average Dept/Job Pay Lowest Dept/Job Pay <br />
<br />
------------- ---------- -------------------- ------------------- <br />
<br />
20 MK_MAN 13000 13000 <br />
<br />
20 MK_REP 6000 6000 <br />
<br />
50 ST_MAN 5800 5800 <br />
<br />
110 AC_ACCOUNT 8300 8300 <br />
<br />
110 AC_MGR 12000 12000 <br />
<br />
<br />
<br />
SQL> SELECT department_id, department_name,<br />
<br />
2 RPAD(TRIM(NVL(city, 'Not Assinged Yet')), 25, ' ') "City",<br />
<br />
3 COUNT(DISTINCT job_id) "# of Jobs"<br />
<br />
4 FROM employees<br />
<br />
5 RIGHT OUTER JOIN departments USING (department_id)<br />
<br />
6 LEFT OUTER JOIN locations USING (location_id)<br />
<br />
7 GROUP BY department_id, department_name, city;<br />
<br />
<br />
<br />
DEPARTMENT_ID DEPARTMENT_NAME City # of Jobs <br />
<br />
------------- ------------------------------ ------------------------- ---------- <br />
<br />
110 Accounting Seattle 2 <br />
<br />
50 Shipping South San Francisco 2 <br />
<br />
80 Sales Oxford 2 <br />
<br />
10 Administration Seattle 1 <br />
<br />
190 Contracting Seattle 0 <br />
<br />
90 Executive Seattle 2 <br />
<br />
20 Marketing Toronto 2 <br />
<br />
60 IT Southlake 1 <br />
<br />
<br />
<br />
8 rows selected.<br />
<br />
<br />
<br />
SQL> spool off<br />
</pre><br />
==SQL Statements==<br />
===1.===<br />
''YuJin''<br />
<pre><br />
SELECT employee_id, RPAD(CONCAT(CONCAT(last_name, ', '),first_name), 25) "Full Name",<br />
job_id,<br />
TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
"Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
ORDER BY 4 DESC;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT employee_id,<br />
SUBSTR(last_name ||' '|| first_name, 1, 25) "Full Name",<br />
job_id,<br />
TO_CHAR(hire_date,'fmMonth "First in the year" YYYY') "Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date,'fmMON') IN ('MAY','NOV')<br />
ORDER BY hire_date DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select employee_id "Emp#",<br />
(last_name ||', '|| first_name) "Full Name",<br />
job_id "Job",<br />
to_char(trunc(hire_date, 'MONTH'), 'FMMonth Ddspth "in the year"<br />
YYYY') "Start Date"<br />
from employees<br />
where to_char(hire_date, 'fmMonth') in ('May', 'November')<br />
order by hire_date desc;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT employee_id, SUBSTR(last_name ||' '|| first_name, 1, 25) "Full Name",<br />
job_id,<br />
TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
"Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
ORDER BY hire_date DESC;<br />
</pre><br />
<br />
===2.===<br />
''YuJin''<br />
<pre><br />
SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
|| job_id || ' will have a new salary of $' || salary * 1.15 "Happy Employees"<br />
FROM employees<br />
WHERE salary BETWEEN 5000 AND 12000<br />
AND job_id IN ('IT_PROG', 'ST_CLERK')<br />
ORDER BY employee_id;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT 'Employee named '||first_name||' '||last_name||' who is '||job_id||' will have a new salary of $'|| salary *1.15 "Happy Employees"<br />
FROM employees<br />
WHERE job_id IN ('IT_PROG','ST CLERK')<br />
AND (salary BETWEEN 5000 AND 12000)<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
Select ('Employee named ' || first_name ||' '|| last_name || ' who is ' || job_id || ' will have a new salary of ' || (salary*1.15)) "Happy Employees"<br />
From employees<br />
Where salary between 5000 and 12000<br />
And upper(job_id) in ('IT_PROG', 'ST_CLERK')<br />
order by employee_id;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
|| job_id || ' will have a new salary of ' || TO_CHAR(salary * 1.15, 'fm$999999') "Happy Employees"<br />
FROM employees<br />
WHERE salary BETWEEN 5000 AND 12000<br />
AND UPPER(job_id) IN ('IT_PROG', 'ST_CLERK')<br />
ORDER BY employee_id;<br />
</pre><br />
<br />
===3.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, salary, job_id,<br />
RPAD(NVL(TO_CHAR(manager_id), 'No Manager'), 10) "Manager #",<br />
LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
FROM employees<br />
WHERE (job_id LIKE 'MK%' OR manager_id IS NULL)<br />
AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
ORDER BY 2 DESC;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, salary, job_id, NVL(TO_CHAR(manager_id),'No Manager') Manager#,<br />
TO_CHAR(salary*12,'$999,999') "Total Income"<br />
FROM employees<br />
WHERE (manager_id IS NULL<br />
OR job_id LIKE 'MK%')<br />
AND ( salary* (NVL(commission_pct,0) + 1) + 1000 ) > 10000<br />
ORDER BY salary DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, salary, job_id, nvl(to_char(manager_id),'No Manager') Manager#,<br />
to_char(salary*12,'$999,999') "Total Income"<br />
from employees<br />
where (upper(job_id) like 'MK%' or manager_id IS NULL)<br />
and salary * (1 + nvl(commission_pct, 0)) + 1000 > 10000<br />
order by 2 desc;<br />
</pre><br />
<br />
===4.===<br />
''YuJin''<br />
<pre><br />
SELECT RPAD(CONCAT(CONCAT(first_name,' '),last_name), 25) "Employee", job_id,<br />
LPAD(TRIM(TO_CHAR(salary, '$999,999')), 12, '=') "Salary", department_name<br />
FROM employees e JOIN departments d<br />
ON (e.department_id = d.department_id)<br />
WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
AND salary <<br />
(SELECT MAX(salary)<br />
FROM employees<br />
WHERE SUBSTR(job_id, 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
ORDER BY 1;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT SUBSTR(first_name||' '||last_name, 25) Employee, job_id,<br />
LPAD(TO_CHAR(salary,'$99,999'), 12, '=') Salary, department_name<br />
FROM employees e JOIN departments d<br />
ON (d.department_id=e.department_id)<br />
WHERE salary < (SELECT MAX(salary)<br />
FROM employees<br />
WHERE UPPER(SUBSTR(job_id,4)) NOT IN ('VP', 'PRES', 'MAN', 'MGR')<br />
)<br />
AND UPPER(department_name) IN ('MARKETING','SALES')<br />
ORDER BY first_name, last_name<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select substr(first_name ||' '|| last_name) "Employee", job_id, to_char(salary, '$999,999', 12, '=') Salary, department_name<br />
from employees e join departments d<br />
on (e.department_id = d.department_id)<br />
where upper(department_name) in ('MARKETING', 'SALES')<br />
and salary < (select max(salary)<br />
from employees<br />
where substr(job_id,4)) not in ('PRES','VP','MAN','MGR'))<br />
order by employee;<br />
</pre><br />
<br />
===5.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
AND salary ><br />
(SELECT MAX(salary)<br />
FROM employees<br />
JOIN departments USING (department_id)<br />
JOIN locations USING (location_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE salary > (SELECT MAX(salary)<br />
FROM locations JOIN departments<br />
USING (location_id)<br />
JOIN employees<br />
USING (department_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD')<br />
)<br />
AND UPPER(job_id) NOT LIKE '%PRES'<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, salary, job_id<br />
from employees<br />
where salary > (select max(salary)<br />
from employees join departments<br />
using (department_id)<br />
join locations<br />
using (location_id)<br />
where upper(city) in ('TORONTO','OXFORD'))<br />
and upper(job_id) not like '%PRES'<br />
</pre><br />
<br />
===6.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, first_name, job_id, hire_date<br />
FROM employees<br />
WHERE hire_date ><br />
(SELECT MAX(hire_date)<br />
FROM employees<br />
WHERE department_id =<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'IT'))<br />
AND (department_id !=<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'EXECUTIVE')<br />
OR department_id IS NULL)<br />
ORDER BY 4 DESC;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, first_name, job_id, hire_date<br />
FROM employees e<br />
WHERE hire_date > (SELECT MAX(hire_date)<br />
FROM employees<br />
WHERE department_id = (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'IT'<br />
)<br />
)<br />
AND (department_id <> (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) ='EXECUTIVE')<br />
OR department_id IS NULL)<br />
ORDER BY hire_date DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, first_name, job_id, hire_date<br />
from employees<br />
where hire_date > (select max(hire_date)<br />
from employees<br />
where department_id = (select department_id<br />
from departments<br />
where upper(department_name) = 'IT'))<br />
and (department_id != (select department_id<br />
from departments<br />
where upper(department_name) = 'EXECUTIVE')<br />
or department_id IS NULL)<br />
order by hire_date desc;<br />
</pre><br />
<br />
===7.===<br />
''YuJin''<br />
<pre><br />
SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay",<br />
MIN(salary) "Lowest Dept/Job Pay"<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%VP'<br />
AND department_id NOT IN<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) IN ('IT','SALES'))<br />
GROUP BY department_id, job_id<br />
HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
ORDER BY 1, 2;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay", MIN(salary) "Lowest Dept/Job Pay"<br />
FROM employees<br />
WHERE department_id <> ALL (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) IN ('IT','SALES')<br />
)<br />
AND job_id NOT LIKE '%VP'<br />
GROUP BY department_id, job_id<br />
HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
ORDER BY department_id, job_id<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select department_id, job_id, avg(salary) "Average Dept/Job Pay", min(salary) "Lowest Dept/Job Pay"<br />
from employees<br />
where upper(job_id) not like '%VP'<br />
and department_id != all(select department_id<br />
from departments<br />
where upper(department_name) in ('IT','SALES'))<br />
group by department_id, job_id<br />
having min(salary) between 5000 and 15000<br />
order by department_id, job_id<br />
</pre><br />
<br />
===8.===<br />
''YuJin''<br />
<pre><br />
SELECT department_id, department_name,<br />
RPAD(TRIM(NVL(city, 'Not Assinged Yet')), 25, ' ') "City",<br />
COUNT(DISTINCT job_id) "# of Jobs"<br />
FROM employees<br />
RIGHT OUTER JOIN departments USING (department_id)<br />
LEFT OUTER JOIN locations USING (location_id)<br />
GROUP BY department_id, department_name, city;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT department_id, department_name, SUBSTR(NVL(city,'Not Assigned Yet'),1,25) City,<br />
COUNT(DISTINCT job_id) "# of Jobs"<br />
FROM locations l RIGHT OUTER JOIN departments d<br />
USING (location_id)<br />
LEFT OUTER JOIN employees e<br />
USING (department_id)<br />
GROUP BY department_id, department_name, city<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select department_id, department_name, substr(nvl(city,'Not Assigned Yet'),1,25) City,<br />
count(distinct job_id) "# of Jobs"<br />
from employees right outer join departments<br />
using (department_id)<br />
left outer join locations<br />
using (location_id)<br />
group by department_id, department_name, city<br />
</pre></div>
Yujin.jeong
https://wiki.cdot.senecacollege.ca/w/index.php?title=J.Y.S&diff=48463
J.Y.S
2010-10-20T20:21:38Z
<p>Yujin.jeong: /* 2. */</p>
<hr />
<div>This page is to efficiently manage our group assignments!<br />
== Member List == <br />
*[mailto:,,yjeong@learn.senecac.on.ca,?subject=dbs301 Email All]<br />
<br />
{| class="wikitable sortable" border="1" cellpadding="5"<br />
! First Name !! Last Name !! wiki id !! Learn e-mail !! Phone<br />
|-<br />
|[[User:Yujin.jeong | YuJin]]||Jeong||[[Special:Contributions/yujin.jeong | yujin.jeong]]||[mailto:yjeong@learn.senecac.on.ca?sujbect=gam666 yjeong]|| 647 - 832 - 6771<br />
|-<br />
<br />
|-<br />
|Saad|| || || ||<br />
|-<br />
<br />
|-<br />
|James|| || || ||<br />
|-<br />
|}<br />
<br />
=Assignment 1=<br />
==Due Date==<br />
Thursday, October 21st, 4:00pm<br />
Printout submission only( SELECT Statements + ALL outputs)<br />
==Description==<br />
[https://cs.senecac.on.ca/~nconkic/assign1.doc Assignment1]<br />
==Solution==<br />
<pre><br />
SQL> SELECT employee_id, RPAD(CONCAT(CONCAT(last_name, ', '),first_name), 25) "Full Name",<br />
<br />
2 job_id,<br />
<br />
3 TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
<br />
4 "Start Date"<br />
<br />
5 FROM employees<br />
<br />
6 WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
<br />
7 ORDER BY 4 DESC;<br />
<br />
<br />
<br />
EMPLOYEE_ID Full Name JOB_ID Start Date <br />
<br />
----------- ------------------------- ---------- ----------------------------------------- <br />
<br />
124 Mourgos, Kevin ST_MAN November First in the year 1999 <br />
<br />
178 Grant, Kimberely SA_REP May First in the year 1999 <br />
<br />
174 Abel, Ellen SA_REP May First in the year 1996 <br />
<br />
104 Ernst, Bruce IT_PROG May First in the year 1991 <br />
<br />
<br />
<br />
SQL> SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
<br />
2 || job_id || ' will have a new salary of $' || salary * 1.15 "Happy Employees"<br />
<br />
3 FROM employees<br />
<br />
4 WHERE salary BETWEEN 5000 AND 12000<br />
<br />
5 AND job_id IN ('IT_PROG', 'ST_CLERK')<br />
<br />
6 ORDER BY employee_id;<br />
<br />
<br />
<br />
Happy Employees <br />
<br />
----------------------------------------------------------------------------------------------------<br />
<br />
Employee named Alexander Hunold who is IT_PROG will have a new salary of $10350 <br />
<br />
Employee named Bruce Ernst who is IT_PROG will have a new salary of $6900 <br />
<br />
<br />
<br />
SQL> SELECT last_name, salary, job_id,<br />
<br />
2 RPAD(NVL(TO_CHAR(manager_id), 'No Manager'), 10) "Manager #",<br />
<br />
3 LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
<br />
4 FROM employees<br />
<br />
5 WHERE (job_id LIKE 'MK%' OR manager_id IS NULL)<br />
<br />
6 AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
<br />
7 ORDER BY 2 DESC;<br />
<br />
<br />
<br />
LAST_NAME SALARY JOB_ID Manager # Total Income <br />
<br />
------------------------- ---------- ---------- ---------- ------------ <br />
<br />
King 24000 AD_PRES No Manager $288,000 <br />
<br />
Hartstein 13000 MK_MAN 100 $156,000 <br />
<br />
<br />
<br />
SQL> SELECT RPAD(CONCAT(CONCAT(first_name,' '),last_name), 25) "Employee", job_id,<br />
<br />
2 LPAD(TRIM(TO_CHAR(salary, '$999,999')), 12, '=') "Salary", department_name<br />
<br />
3 FROM employees e JOIN departments d<br />
<br />
4 ON (e.department_id = d.department_id)<br />
<br />
5 WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
<br />
6 AND salary <<br />
<br />
7 (SELECT MAX(salary)<br />
<br />
8 FROM employees<br />
<br />
9 WHERE SUBSTR(job_id, 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
<br />
10 ORDER BY 1;<br />
<br />
<br />
<br />
Employee JOB_ID Salary DEPARTMENT_NAME <br />
<br />
------------------------- ---------- ------------ ------------------------------ <br />
<br />
Eleni Zlotkey SA_MAN =====$10,500 Sales <br />
<br />
Jonathon Taylor SA_REP ======$8,600 Sales <br />
<br />
Pat Fay MK_REP ======$6,000 Marketing <br />
<br />
<br />
<br />
SQL><br />
<br />
SQL> SELECT last_name, salary, job_id<br />
<br />
2 FROM employees<br />
<br />
3 WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
<br />
4 AND salary ><br />
<br />
5 (SELECT MAX(salary)<br />
<br />
6 FROM employees<br />
<br />
7 JOIN departments USING (department_id)<br />
<br />
8 JOIN locations USING (location_id)<br />
<br />
9 WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
<br />
<br />
LAST_NAME SALARY JOB_ID <br />
<br />
------------------------- ---------- ---------- <br />
<br />
Kochhar 17000 AD_VP <br />
<br />
De Haan 17000 AD_VP <br />
<br />
<br />
<br />
SQL> SELECT last_name, first_name, job_id, hire_date<br />
<br />
2 FROM employees<br />
<br />
3 WHERE hire_date ><br />
<br />
4 (SELECT MAX(hire_date)<br />
<br />
5 FROM employees<br />
<br />
6 WHERE department_id =<br />
<br />
7 (SELECT department_id<br />
<br />
8 FROM departments<br />
<br />
9 WHERE UPPER(department_name) = 'IT'))<br />
<br />
10 AND (department_id !=<br />
<br />
11 (SELECT department_id<br />
<br />
12 FROM departments<br />
<br />
13 WHERE UPPER(department_name) = 'EXECUTIVE')<br />
<br />
14 OR department_id IS NULL)<br />
<br />
15 ORDER BY 4 DESC;<br />
<br />
<br />
<br />
LAST_NAME FIRST_NAME JOB_ID HIRE_DATE <br />
<br />
------------------------- -------------------- ---------- --------- <br />
<br />
Zlotkey Eleni SA_MAN 29-JAN-00 <br />
<br />
Mourgos Kevin ST_MAN 16-NOV-99 <br />
<br />
Grant Kimberely SA_REP 24-MAY-99 <br />
<br />
<br />
<br />
SQL> SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay",<br />
<br />
2 MIN(salary) "Lowest Dept/Job Pay"<br />
<br />
3 FROM employees<br />
<br />
4 WHERE UPPER(job_id) NOT LIKE '%VP'<br />
<br />
5 AND department_id NOT IN<br />
<br />
6 (SELECT department_id<br />
<br />
7 FROM departments<br />
<br />
8 WHERE UPPER(department_name) IN ('IT','SALES'))<br />
<br />
9 GROUP BY department_id, job_id<br />
<br />
10 HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
<br />
11 ORDER BY 1, 2;<br />
<br />
<br />
<br />
DEPARTMENT_ID JOB_ID Average Dept/Job Pay Lowest Dept/Job Pay <br />
<br />
------------- ---------- -------------------- ------------------- <br />
<br />
20 MK_MAN 13000 13000 <br />
<br />
20 MK_REP 6000 6000 <br />
<br />
50 ST_MAN 5800 5800 <br />
<br />
110 AC_ACCOUNT 8300 8300 <br />
<br />
110 AC_MGR 12000 12000 <br />
<br />
<br />
<br />
SQL> SELECT department_id, department_name,<br />
<br />
2 RPAD(TRIM(NVL(city, 'Not Assinged Yet')), 25, ' ') "City",<br />
<br />
3 COUNT(DISTINCT job_id) "# of Jobs"<br />
<br />
4 FROM employees<br />
<br />
5 RIGHT OUTER JOIN departments USING (department_id)<br />
<br />
6 LEFT OUTER JOIN locations USING (location_id)<br />
<br />
7 GROUP BY department_id, department_name, city;<br />
<br />
<br />
<br />
DEPARTMENT_ID DEPARTMENT_NAME City # of Jobs <br />
<br />
------------- ------------------------------ ------------------------- ---------- <br />
<br />
110 Accounting Seattle 2 <br />
<br />
50 Shipping South San Francisco 2 <br />
<br />
80 Sales Oxford 2 <br />
<br />
10 Administration Seattle 1 <br />
<br />
190 Contracting Seattle 0 <br />
<br />
90 Executive Seattle 2 <br />
<br />
20 Marketing Toronto 2 <br />
<br />
60 IT Southlake 1 <br />
<br />
<br />
<br />
8 rows selected.<br />
<br />
<br />
<br />
SQL> spool off<br />
</pre><br />
==SQL Statements==<br />
===1.===<br />
''YuJin''<br />
<pre><br />
SELECT employee_id, RPAD(CONCAT(CONCAT(last_name, ', '),first_name), 25) "Full Name",<br />
job_id,<br />
TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
"Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
ORDER BY 4 DESC;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT employee_id,<br />
SUBSTR(last_name ||' '|| first_name, 1, 25) "Full Name",<br />
job_id,<br />
TO_CHAR(hire_date,'fmMonth "First in the year" YYYY') "Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date,'fmMON') IN ('MAY','NOV')<br />
ORDER BY hire_date DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select employee_id "Emp#",<br />
(last_name ||', '|| first_name) "Full Name",<br />
job_id "Job",<br />
to_char(trunc(hire_date, 'MONTH'), 'FMMonth Ddspth "in the year"<br />
YYYY') "Start Date"<br />
from employees<br />
where to_char(hire_date, 'fmMonth') in ('May', 'November')<br />
order by hire_date desc;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT employee_id, SUBSTR(last_name ||' '|| first_name, 1, 25) "Full Name",<br />
job_id,<br />
TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
"Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
ORDER BY hire_date DESC;<br />
</pre><br />
<br />
===2.===<br />
''YuJin''<br />
<pre><br />
SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
|| job_id || ' will have a new salary of $' || salary * 1.15 "Happy Employees"<br />
FROM employees<br />
WHERE salary BETWEEN 5000 AND 12000<br />
AND job_id IN ('IT_PROG', 'ST_CLERK')<br />
ORDER BY employee_id;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT 'Employee named '||first_name||' '||last_name||' who is '||job_id||' will have a new salary of $'|| salary *1.15 "Happy Employees"<br />
FROM employees<br />
WHERE job_id IN ('IT_PROG','ST CLERK')<br />
AND (salary BETWEEN 5000 AND 12000)<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
Select ('Employee named ' || first_name ||' '|| last_name || ' who is ' || job_id || ' will have a new salary of ' || (salary*1.15)) "Happy Employees"<br />
From employees<br />
Where salary between 5000 and 12000<br />
And upper(job_id) in ('IT_PROG', 'ST_CLERK')<br />
order by employee_id;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
|| job_id || ' will have a new salary of $' || salary * 1.15 "Happy Employees"<br />
FROM employees<br />
WHERE salary BETWEEN 5000 AND 12000<br />
AND UPPER(job_id) IN ('IT_PROG', 'ST_CLERK')<br />
ORDER BY employee_id;<br />
</pre><br />
<br />
===3.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, salary, job_id,<br />
RPAD(NVL(TO_CHAR(manager_id), 'No Manager'), 10) "Manager #",<br />
LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
FROM employees<br />
WHERE (job_id LIKE 'MK%' OR manager_id IS NULL)<br />
AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
ORDER BY 2 DESC;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, salary, job_id, NVL(TO_CHAR(manager_id),'No Manager') Manager#,<br />
TO_CHAR(salary*12,'$999,999') "Total Income"<br />
FROM employees<br />
WHERE (manager_id IS NULL<br />
OR job_id LIKE 'MK%')<br />
AND ( salary* (NVL(commission_pct,0) + 1) + 1000 ) > 10000<br />
ORDER BY salary DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, salary, job_id, nvl(to_char(manager_id),'No Manager') Manager#,<br />
to_char(salary*12,'$999,999') "Total Income"<br />
from employees<br />
where (upper(job_id) like 'MK%' or manager_id IS NULL)<br />
and salary * (1 + nvl(commission_pct, 0)) + 1000 > 10000<br />
order by 2 desc;<br />
</pre><br />
<br />
===4.===<br />
''YuJin''<br />
<pre><br />
SELECT RPAD(CONCAT(CONCAT(first_name,' '),last_name), 25) "Employee", job_id,<br />
LPAD(TRIM(TO_CHAR(salary, '$999,999')), 12, '=') "Salary", department_name<br />
FROM employees e JOIN departments d<br />
ON (e.department_id = d.department_id)<br />
WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
AND salary <<br />
(SELECT MAX(salary)<br />
FROM employees<br />
WHERE SUBSTR(job_id, 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
ORDER BY 1;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT SUBSTR(first_name||' '||last_name, 25) Employee, job_id,<br />
LPAD(TO_CHAR(salary,'$99,999'), 12, '=') Salary, department_name<br />
FROM employees e JOIN departments d<br />
ON (d.department_id=e.department_id)<br />
WHERE salary < (SELECT MAX(salary)<br />
FROM employees<br />
WHERE UPPER(SUBSTR(job_id,4)) NOT IN ('VP', 'PRES', 'MAN', 'MGR')<br />
)<br />
AND UPPER(department_name) IN ('MARKETING','SALES')<br />
ORDER BY first_name, last_name<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select substr(first_name ||' '|| last_name) "Employee", job_id, to_char(salary, '$999,999', 12, '=') Salary, department_name<br />
from employees e join departments d<br />
on (e.department_id = d.department_id)<br />
where upper(department_name) in ('MARKETING', 'SALES')<br />
and salary < (select max(salary)<br />
from employees<br />
where substr(job_id,4)) not in ('PRES','VP','MAN','MGR'))<br />
order by employee;<br />
</pre><br />
<br />
===5.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
AND salary ><br />
(SELECT MAX(salary)<br />
FROM employees<br />
JOIN departments USING (department_id)<br />
JOIN locations USING (location_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE salary > (SELECT MAX(salary)<br />
FROM locations JOIN departments<br />
USING (location_id)<br />
JOIN employees<br />
USING (department_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD')<br />
)<br />
AND UPPER(job_id) NOT LIKE '%PRES'<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, salary, job_id<br />
from employees<br />
where salary > (select max(salary)<br />
from employees join departments<br />
using (department_id)<br />
join locations<br />
using (location_id)<br />
where upper(city) in ('TORONTO','OXFORD'))<br />
and upper(job_id) not like '%PRES'<br />
</pre><br />
<br />
===6.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, first_name, job_id, hire_date<br />
FROM employees<br />
WHERE hire_date ><br />
(SELECT MAX(hire_date)<br />
FROM employees<br />
WHERE department_id =<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'IT'))<br />
AND (department_id !=<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'EXECUTIVE')<br />
OR department_id IS NULL)<br />
ORDER BY 4 DESC;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, first_name, job_id, hire_date<br />
FROM employees e<br />
WHERE hire_date > (SELECT MAX(hire_date)<br />
FROM employees<br />
WHERE department_id = (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'IT'<br />
)<br />
)<br />
AND (department_id <> (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) ='EXECUTIVE')<br />
OR department_id IS NULL)<br />
ORDER BY hire_date DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, first_name, job_id, hire_date<br />
from employees<br />
where hire_date > (select max(hire_date)<br />
from employees<br />
where department_id = (select department_id<br />
from departments<br />
where upper(department_name) = 'IT'))<br />
and (department_id != (select department_id<br />
from departments<br />
where upper(department_name) = 'EXECUTIVE')<br />
or department_id IS NULL)<br />
order by hire_date desc;<br />
</pre><br />
<br />
===7.===<br />
''YuJin''<br />
<pre><br />
SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay",<br />
MIN(salary) "Lowest Dept/Job Pay"<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%VP'<br />
AND department_id NOT IN<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) IN ('IT','SALES'))<br />
GROUP BY department_id, job_id<br />
HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
ORDER BY 1, 2;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay", MIN(salary) "Lowest Dept/Job Pay"<br />
FROM employees<br />
WHERE department_id <> ALL (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) IN ('IT','SALES')<br />
)<br />
AND job_id NOT LIKE '%VP'<br />
GROUP BY department_id, job_id<br />
HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
ORDER BY department_id, job_id<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select department_id, job_id, avg(salary) "Average Dept/Job Pay", min(salary) "Lowest Dept/Job Pay"<br />
from employees<br />
where upper(job_id) not like '%VP'<br />
and department_id != all(select department_id<br />
from departments<br />
where upper(department_name) in ('IT','SALES'))<br />
group by department_id, job_id<br />
having min(salary) between 5000 and 15000<br />
order by department_id, job_id<br />
</pre><br />
<br />
===8.===<br />
''YuJin''<br />
<pre><br />
SELECT department_id, department_name,<br />
RPAD(TRIM(NVL(city, 'Not Assinged Yet')), 25, ' ') "City",<br />
COUNT(DISTINCT job_id) "# of Jobs"<br />
FROM employees<br />
RIGHT OUTER JOIN departments USING (department_id)<br />
LEFT OUTER JOIN locations USING (location_id)<br />
GROUP BY department_id, department_name, city;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT department_id, department_name, SUBSTR(NVL(city,'Not Assigned Yet'),1,25) City,<br />
COUNT(DISTINCT job_id) "# of Jobs"<br />
FROM locations l RIGHT OUTER JOIN departments d<br />
USING (location_id)<br />
LEFT OUTER JOIN employees e<br />
USING (department_id)<br />
GROUP BY department_id, department_name, city<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select department_id, department_name, substr(nvl(city,'Not Assigned Yet'),1,25) City,<br />
count(distinct job_id) "# of Jobs"<br />
from employees right outer join departments<br />
using (department_id)<br />
left outer join locations<br />
using (location_id)<br />
group by department_id, department_name, city<br />
</pre></div>
Yujin.jeong
https://wiki.cdot.senecacollege.ca/w/index.php?title=J.Y.S&diff=48462
J.Y.S
2010-10-20T20:16:33Z
<p>Yujin.jeong: /* 1. */</p>
<hr />
<div>This page is to efficiently manage our group assignments!<br />
== Member List == <br />
*[mailto:,,yjeong@learn.senecac.on.ca,?subject=dbs301 Email All]<br />
<br />
{| class="wikitable sortable" border="1" cellpadding="5"<br />
! First Name !! Last Name !! wiki id !! Learn e-mail !! Phone<br />
|-<br />
|[[User:Yujin.jeong | YuJin]]||Jeong||[[Special:Contributions/yujin.jeong | yujin.jeong]]||[mailto:yjeong@learn.senecac.on.ca?sujbect=gam666 yjeong]|| 647 - 832 - 6771<br />
|-<br />
<br />
|-<br />
|Saad|| || || ||<br />
|-<br />
<br />
|-<br />
|James|| || || ||<br />
|-<br />
|}<br />
<br />
=Assignment 1=<br />
==Due Date==<br />
Thursday, October 21st, 4:00pm<br />
Printout submission only( SELECT Statements + ALL outputs)<br />
==Description==<br />
[https://cs.senecac.on.ca/~nconkic/assign1.doc Assignment1]<br />
==Solution==<br />
<pre><br />
SQL> SELECT employee_id, RPAD(CONCAT(CONCAT(last_name, ', '),first_name), 25) "Full Name",<br />
<br />
2 job_id,<br />
<br />
3 TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
<br />
4 "Start Date"<br />
<br />
5 FROM employees<br />
<br />
6 WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
<br />
7 ORDER BY 4 DESC;<br />
<br />
<br />
<br />
EMPLOYEE_ID Full Name JOB_ID Start Date <br />
<br />
----------- ------------------------- ---------- ----------------------------------------- <br />
<br />
124 Mourgos, Kevin ST_MAN November First in the year 1999 <br />
<br />
178 Grant, Kimberely SA_REP May First in the year 1999 <br />
<br />
174 Abel, Ellen SA_REP May First in the year 1996 <br />
<br />
104 Ernst, Bruce IT_PROG May First in the year 1991 <br />
<br />
<br />
<br />
SQL> SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
<br />
2 || job_id || ' will have a new salary of $' || salary * 1.15 "Happy Employees"<br />
<br />
3 FROM employees<br />
<br />
4 WHERE salary BETWEEN 5000 AND 12000<br />
<br />
5 AND job_id IN ('IT_PROG', 'ST_CLERK')<br />
<br />
6 ORDER BY employee_id;<br />
<br />
<br />
<br />
Happy Employees <br />
<br />
----------------------------------------------------------------------------------------------------<br />
<br />
Employee named Alexander Hunold who is IT_PROG will have a new salary of $10350 <br />
<br />
Employee named Bruce Ernst who is IT_PROG will have a new salary of $6900 <br />
<br />
<br />
<br />
SQL> SELECT last_name, salary, job_id,<br />
<br />
2 RPAD(NVL(TO_CHAR(manager_id), 'No Manager'), 10) "Manager #",<br />
<br />
3 LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
<br />
4 FROM employees<br />
<br />
5 WHERE (job_id LIKE 'MK%' OR manager_id IS NULL)<br />
<br />
6 AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
<br />
7 ORDER BY 2 DESC;<br />
<br />
<br />
<br />
LAST_NAME SALARY JOB_ID Manager # Total Income <br />
<br />
------------------------- ---------- ---------- ---------- ------------ <br />
<br />
King 24000 AD_PRES No Manager $288,000 <br />
<br />
Hartstein 13000 MK_MAN 100 $156,000 <br />
<br />
<br />
<br />
SQL> SELECT RPAD(CONCAT(CONCAT(first_name,' '),last_name), 25) "Employee", job_id,<br />
<br />
2 LPAD(TRIM(TO_CHAR(salary, '$999,999')), 12, '=') "Salary", department_name<br />
<br />
3 FROM employees e JOIN departments d<br />
<br />
4 ON (e.department_id = d.department_id)<br />
<br />
5 WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
<br />
6 AND salary <<br />
<br />
7 (SELECT MAX(salary)<br />
<br />
8 FROM employees<br />
<br />
9 WHERE SUBSTR(job_id, 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
<br />
10 ORDER BY 1;<br />
<br />
<br />
<br />
Employee JOB_ID Salary DEPARTMENT_NAME <br />
<br />
------------------------- ---------- ------------ ------------------------------ <br />
<br />
Eleni Zlotkey SA_MAN =====$10,500 Sales <br />
<br />
Jonathon Taylor SA_REP ======$8,600 Sales <br />
<br />
Pat Fay MK_REP ======$6,000 Marketing <br />
<br />
<br />
<br />
SQL><br />
<br />
SQL> SELECT last_name, salary, job_id<br />
<br />
2 FROM employees<br />
<br />
3 WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
<br />
4 AND salary ><br />
<br />
5 (SELECT MAX(salary)<br />
<br />
6 FROM employees<br />
<br />
7 JOIN departments USING (department_id)<br />
<br />
8 JOIN locations USING (location_id)<br />
<br />
9 WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
<br />
<br />
LAST_NAME SALARY JOB_ID <br />
<br />
------------------------- ---------- ---------- <br />
<br />
Kochhar 17000 AD_VP <br />
<br />
De Haan 17000 AD_VP <br />
<br />
<br />
<br />
SQL> SELECT last_name, first_name, job_id, hire_date<br />
<br />
2 FROM employees<br />
<br />
3 WHERE hire_date ><br />
<br />
4 (SELECT MAX(hire_date)<br />
<br />
5 FROM employees<br />
<br />
6 WHERE department_id =<br />
<br />
7 (SELECT department_id<br />
<br />
8 FROM departments<br />
<br />
9 WHERE UPPER(department_name) = 'IT'))<br />
<br />
10 AND (department_id !=<br />
<br />
11 (SELECT department_id<br />
<br />
12 FROM departments<br />
<br />
13 WHERE UPPER(department_name) = 'EXECUTIVE')<br />
<br />
14 OR department_id IS NULL)<br />
<br />
15 ORDER BY 4 DESC;<br />
<br />
<br />
<br />
LAST_NAME FIRST_NAME JOB_ID HIRE_DATE <br />
<br />
------------------------- -------------------- ---------- --------- <br />
<br />
Zlotkey Eleni SA_MAN 29-JAN-00 <br />
<br />
Mourgos Kevin ST_MAN 16-NOV-99 <br />
<br />
Grant Kimberely SA_REP 24-MAY-99 <br />
<br />
<br />
<br />
SQL> SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay",<br />
<br />
2 MIN(salary) "Lowest Dept/Job Pay"<br />
<br />
3 FROM employees<br />
<br />
4 WHERE UPPER(job_id) NOT LIKE '%VP'<br />
<br />
5 AND department_id NOT IN<br />
<br />
6 (SELECT department_id<br />
<br />
7 FROM departments<br />
<br />
8 WHERE UPPER(department_name) IN ('IT','SALES'))<br />
<br />
9 GROUP BY department_id, job_id<br />
<br />
10 HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
<br />
11 ORDER BY 1, 2;<br />
<br />
<br />
<br />
DEPARTMENT_ID JOB_ID Average Dept/Job Pay Lowest Dept/Job Pay <br />
<br />
------------- ---------- -------------------- ------------------- <br />
<br />
20 MK_MAN 13000 13000 <br />
<br />
20 MK_REP 6000 6000 <br />
<br />
50 ST_MAN 5800 5800 <br />
<br />
110 AC_ACCOUNT 8300 8300 <br />
<br />
110 AC_MGR 12000 12000 <br />
<br />
<br />
<br />
SQL> SELECT department_id, department_name,<br />
<br />
2 RPAD(TRIM(NVL(city, 'Not Assinged Yet')), 25, ' ') "City",<br />
<br />
3 COUNT(DISTINCT job_id) "# of Jobs"<br />
<br />
4 FROM employees<br />
<br />
5 RIGHT OUTER JOIN departments USING (department_id)<br />
<br />
6 LEFT OUTER JOIN locations USING (location_id)<br />
<br />
7 GROUP BY department_id, department_name, city;<br />
<br />
<br />
<br />
DEPARTMENT_ID DEPARTMENT_NAME City # of Jobs <br />
<br />
------------- ------------------------------ ------------------------- ---------- <br />
<br />
110 Accounting Seattle 2 <br />
<br />
50 Shipping South San Francisco 2 <br />
<br />
80 Sales Oxford 2 <br />
<br />
10 Administration Seattle 1 <br />
<br />
190 Contracting Seattle 0 <br />
<br />
90 Executive Seattle 2 <br />
<br />
20 Marketing Toronto 2 <br />
<br />
60 IT Southlake 1 <br />
<br />
<br />
<br />
8 rows selected.<br />
<br />
<br />
<br />
SQL> spool off<br />
</pre><br />
==SQL Statements==<br />
===1.===<br />
''YuJin''<br />
<pre><br />
SELECT employee_id, RPAD(CONCAT(CONCAT(last_name, ', '),first_name), 25) "Full Name",<br />
job_id,<br />
TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
"Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
ORDER BY 4 DESC;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT employee_id,<br />
SUBSTR(last_name ||' '|| first_name, 1, 25) "Full Name",<br />
job_id,<br />
TO_CHAR(hire_date,'fmMonth "First in the year" YYYY') "Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date,'fmMON') IN ('MAY','NOV')<br />
ORDER BY hire_date DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select employee_id "Emp#",<br />
(last_name ||', '|| first_name) "Full Name",<br />
job_id "Job",<br />
to_char(trunc(hire_date, 'MONTH'), 'FMMonth Ddspth "in the year"<br />
YYYY') "Start Date"<br />
from employees<br />
where to_char(hire_date, 'fmMonth') in ('May', 'November')<br />
order by hire_date desc;<br />
</pre><br />
<br />
''FINAL''<br />
<pre><br />
SELECT employee_id, SUBSTR(last_name ||' '|| first_name, 1, 25) "Full Name",<br />
job_id,<br />
TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
"Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
ORDER BY hire_date DESC;<br />
</pre><br />
<br />
===2.===<br />
''YuJin''<br />
<pre><br />
SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
|| job_id || ' will have a new salary of $' || salary * 1.15 "Happy Employees"<br />
FROM employees<br />
WHERE salary BETWEEN 5000 AND 12000<br />
AND job_id IN ('IT_PROG', 'ST_CLERK')<br />
ORDER BY employee_id;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT 'Employee named '||first_name||' '||last_name||' who is '||job_id||' will have a new salary of $'|| salary *1.15 "Happy Employees"<br />
FROM employees<br />
WHERE job_id IN ('IT_PROG','ST CLERK')<br />
AND (salary BETWEEN 5000 AND 12000)<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
Select ('Employee named ' || first_name ||' '|| last_name || ' who is ' || job_id || ' will have a new salary of ' || (salary*1.15)) "Happy Employees"<br />
From employees<br />
Where salary between 5000 and 12000<br />
And upper(job_id) in ('IT_PROG', 'ST_CLERK')<br />
order by employee_id;<br />
</pre><br />
<br />
===3.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, salary, job_id,<br />
RPAD(NVL(TO_CHAR(manager_id), 'No Manager'), 10) "Manager #",<br />
LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
FROM employees<br />
WHERE (job_id LIKE 'MK%' OR manager_id IS NULL)<br />
AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
ORDER BY 2 DESC;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, salary, job_id, NVL(TO_CHAR(manager_id),'No Manager') Manager#,<br />
TO_CHAR(salary*12,'$999,999') "Total Income"<br />
FROM employees<br />
WHERE (manager_id IS NULL<br />
OR job_id LIKE 'MK%')<br />
AND ( salary* (NVL(commission_pct,0) + 1) + 1000 ) > 10000<br />
ORDER BY salary DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, salary, job_id, nvl(to_char(manager_id),'No Manager') Manager#,<br />
to_char(salary*12,'$999,999') "Total Income"<br />
from employees<br />
where (upper(job_id) like 'MK%' or manager_id IS NULL)<br />
and salary * (1 + nvl(commission_pct, 0)) + 1000 > 10000<br />
order by 2 desc;<br />
</pre><br />
<br />
===4.===<br />
''YuJin''<br />
<pre><br />
SELECT RPAD(CONCAT(CONCAT(first_name,' '),last_name), 25) "Employee", job_id,<br />
LPAD(TRIM(TO_CHAR(salary, '$999,999')), 12, '=') "Salary", department_name<br />
FROM employees e JOIN departments d<br />
ON (e.department_id = d.department_id)<br />
WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
AND salary <<br />
(SELECT MAX(salary)<br />
FROM employees<br />
WHERE SUBSTR(job_id, 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
ORDER BY 1;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT SUBSTR(first_name||' '||last_name, 25) Employee, job_id,<br />
LPAD(TO_CHAR(salary,'$99,999'), 12, '=') Salary, department_name<br />
FROM employees e JOIN departments d<br />
ON (d.department_id=e.department_id)<br />
WHERE salary < (SELECT MAX(salary)<br />
FROM employees<br />
WHERE UPPER(SUBSTR(job_id,4)) NOT IN ('VP', 'PRES', 'MAN', 'MGR')<br />
)<br />
AND UPPER(department_name) IN ('MARKETING','SALES')<br />
ORDER BY first_name, last_name<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select substr(first_name ||' '|| last_name) "Employee", job_id, to_char(salary, '$999,999', 12, '=') Salary, department_name<br />
from employees e join departments d<br />
on (e.department_id = d.department_id)<br />
where upper(department_name) in ('MARKETING', 'SALES')<br />
and salary < (select max(salary)<br />
from employees<br />
where substr(job_id,4)) not in ('PRES','VP','MAN','MGR'))<br />
order by employee;<br />
</pre><br />
<br />
===5.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
AND salary ><br />
(SELECT MAX(salary)<br />
FROM employees<br />
JOIN departments USING (department_id)<br />
JOIN locations USING (location_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE salary > (SELECT MAX(salary)<br />
FROM locations JOIN departments<br />
USING (location_id)<br />
JOIN employees<br />
USING (department_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD')<br />
)<br />
AND UPPER(job_id) NOT LIKE '%PRES'<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, salary, job_id<br />
from employees<br />
where salary > (select max(salary)<br />
from employees join departments<br />
using (department_id)<br />
join locations<br />
using (location_id)<br />
where upper(city) in ('TORONTO','OXFORD'))<br />
and upper(job_id) not like '%PRES'<br />
</pre><br />
<br />
===6.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, first_name, job_id, hire_date<br />
FROM employees<br />
WHERE hire_date ><br />
(SELECT MAX(hire_date)<br />
FROM employees<br />
WHERE department_id =<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'IT'))<br />
AND (department_id !=<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'EXECUTIVE')<br />
OR department_id IS NULL)<br />
ORDER BY 4 DESC;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, first_name, job_id, hire_date<br />
FROM employees e<br />
WHERE hire_date > (SELECT MAX(hire_date)<br />
FROM employees<br />
WHERE department_id = (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'IT'<br />
)<br />
)<br />
AND (department_id <> (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) ='EXECUTIVE')<br />
OR department_id IS NULL)<br />
ORDER BY hire_date DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, first_name, job_id, hire_date<br />
from employees<br />
where hire_date > (select max(hire_date)<br />
from employees<br />
where department_id = (select department_id<br />
from departments<br />
where upper(department_name) = 'IT'))<br />
and (department_id != (select department_id<br />
from departments<br />
where upper(department_name) = 'EXECUTIVE')<br />
or department_id IS NULL)<br />
order by hire_date desc;<br />
</pre><br />
<br />
===7.===<br />
''YuJin''<br />
<pre><br />
SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay",<br />
MIN(salary) "Lowest Dept/Job Pay"<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%VP'<br />
AND department_id NOT IN<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) IN ('IT','SALES'))<br />
GROUP BY department_id, job_id<br />
HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
ORDER BY 1, 2;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay", MIN(salary) "Lowest Dept/Job Pay"<br />
FROM employees<br />
WHERE department_id <> ALL (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) IN ('IT','SALES')<br />
)<br />
AND job_id NOT LIKE '%VP'<br />
GROUP BY department_id, job_id<br />
HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
ORDER BY department_id, job_id<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select department_id, job_id, avg(salary) "Average Dept/Job Pay", min(salary) "Lowest Dept/Job Pay"<br />
from employees<br />
where upper(job_id) not like '%VP'<br />
and department_id != all(select department_id<br />
from departments<br />
where upper(department_name) in ('IT','SALES'))<br />
group by department_id, job_id<br />
having min(salary) between 5000 and 15000<br />
order by department_id, job_id<br />
</pre><br />
<br />
===8.===<br />
''YuJin''<br />
<pre><br />
SELECT department_id, department_name,<br />
RPAD(TRIM(NVL(city, 'Not Assinged Yet')), 25, ' ') "City",<br />
COUNT(DISTINCT job_id) "# of Jobs"<br />
FROM employees<br />
RIGHT OUTER JOIN departments USING (department_id)<br />
LEFT OUTER JOIN locations USING (location_id)<br />
GROUP BY department_id, department_name, city;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT department_id, department_name, SUBSTR(NVL(city,'Not Assigned Yet'),1,25) City,<br />
COUNT(DISTINCT job_id) "# of Jobs"<br />
FROM locations l RIGHT OUTER JOIN departments d<br />
USING (location_id)<br />
LEFT OUTER JOIN employees e<br />
USING (department_id)<br />
GROUP BY department_id, department_name, city<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select department_id, department_name, substr(nvl(city,'Not Assigned Yet'),1,25) City,<br />
count(distinct job_id) "# of Jobs"<br />
from employees right outer join departments<br />
using (department_id)<br />
left outer join locations<br />
using (location_id)<br />
group by department_id, department_name, city<br />
</pre></div>
Yujin.jeong
https://wiki.cdot.senecacollege.ca/w/index.php?title=J.Y.S&diff=48461
J.Y.S
2010-10-20T20:15:51Z
<p>Yujin.jeong: /* 1. */</p>
<hr />
<div>This page is to efficiently manage our group assignments!<br />
== Member List == <br />
*[mailto:,,yjeong@learn.senecac.on.ca,?subject=dbs301 Email All]<br />
<br />
{| class="wikitable sortable" border="1" cellpadding="5"<br />
! First Name !! Last Name !! wiki id !! Learn e-mail !! Phone<br />
|-<br />
|[[User:Yujin.jeong | YuJin]]||Jeong||[[Special:Contributions/yujin.jeong | yujin.jeong]]||[mailto:yjeong@learn.senecac.on.ca?sujbect=gam666 yjeong]|| 647 - 832 - 6771<br />
|-<br />
<br />
|-<br />
|Saad|| || || ||<br />
|-<br />
<br />
|-<br />
|James|| || || ||<br />
|-<br />
|}<br />
<br />
=Assignment 1=<br />
==Due Date==<br />
Thursday, October 21st, 4:00pm<br />
Printout submission only( SELECT Statements + ALL outputs)<br />
==Description==<br />
[https://cs.senecac.on.ca/~nconkic/assign1.doc Assignment1]<br />
==Solution==<br />
<pre><br />
SQL> SELECT employee_id, RPAD(CONCAT(CONCAT(last_name, ', '),first_name), 25) "Full Name",<br />
<br />
2 job_id,<br />
<br />
3 TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
<br />
4 "Start Date"<br />
<br />
5 FROM employees<br />
<br />
6 WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
<br />
7 ORDER BY 4 DESC;<br />
<br />
<br />
<br />
EMPLOYEE_ID Full Name JOB_ID Start Date <br />
<br />
----------- ------------------------- ---------- ----------------------------------------- <br />
<br />
124 Mourgos, Kevin ST_MAN November First in the year 1999 <br />
<br />
178 Grant, Kimberely SA_REP May First in the year 1999 <br />
<br />
174 Abel, Ellen SA_REP May First in the year 1996 <br />
<br />
104 Ernst, Bruce IT_PROG May First in the year 1991 <br />
<br />
<br />
<br />
SQL> SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
<br />
2 || job_id || ' will have a new salary of $' || salary * 1.15 "Happy Employees"<br />
<br />
3 FROM employees<br />
<br />
4 WHERE salary BETWEEN 5000 AND 12000<br />
<br />
5 AND job_id IN ('IT_PROG', 'ST_CLERK')<br />
<br />
6 ORDER BY employee_id;<br />
<br />
<br />
<br />
Happy Employees <br />
<br />
----------------------------------------------------------------------------------------------------<br />
<br />
Employee named Alexander Hunold who is IT_PROG will have a new salary of $10350 <br />
<br />
Employee named Bruce Ernst who is IT_PROG will have a new salary of $6900 <br />
<br />
<br />
<br />
SQL> SELECT last_name, salary, job_id,<br />
<br />
2 RPAD(NVL(TO_CHAR(manager_id), 'No Manager'), 10) "Manager #",<br />
<br />
3 LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
<br />
4 FROM employees<br />
<br />
5 WHERE (job_id LIKE 'MK%' OR manager_id IS NULL)<br />
<br />
6 AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
<br />
7 ORDER BY 2 DESC;<br />
<br />
<br />
<br />
LAST_NAME SALARY JOB_ID Manager # Total Income <br />
<br />
------------------------- ---------- ---------- ---------- ------------ <br />
<br />
King 24000 AD_PRES No Manager $288,000 <br />
<br />
Hartstein 13000 MK_MAN 100 $156,000 <br />
<br />
<br />
<br />
SQL> SELECT RPAD(CONCAT(CONCAT(first_name,' '),last_name), 25) "Employee", job_id,<br />
<br />
2 LPAD(TRIM(TO_CHAR(salary, '$999,999')), 12, '=') "Salary", department_name<br />
<br />
3 FROM employees e JOIN departments d<br />
<br />
4 ON (e.department_id = d.department_id)<br />
<br />
5 WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
<br />
6 AND salary <<br />
<br />
7 (SELECT MAX(salary)<br />
<br />
8 FROM employees<br />
<br />
9 WHERE SUBSTR(job_id, 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
<br />
10 ORDER BY 1;<br />
<br />
<br />
<br />
Employee JOB_ID Salary DEPARTMENT_NAME <br />
<br />
------------------------- ---------- ------------ ------------------------------ <br />
<br />
Eleni Zlotkey SA_MAN =====$10,500 Sales <br />
<br />
Jonathon Taylor SA_REP ======$8,600 Sales <br />
<br />
Pat Fay MK_REP ======$6,000 Marketing <br />
<br />
<br />
<br />
SQL><br />
<br />
SQL> SELECT last_name, salary, job_id<br />
<br />
2 FROM employees<br />
<br />
3 WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
<br />
4 AND salary ><br />
<br />
5 (SELECT MAX(salary)<br />
<br />
6 FROM employees<br />
<br />
7 JOIN departments USING (department_id)<br />
<br />
8 JOIN locations USING (location_id)<br />
<br />
9 WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
<br />
<br />
LAST_NAME SALARY JOB_ID <br />
<br />
------------------------- ---------- ---------- <br />
<br />
Kochhar 17000 AD_VP <br />
<br />
De Haan 17000 AD_VP <br />
<br />
<br />
<br />
SQL> SELECT last_name, first_name, job_id, hire_date<br />
<br />
2 FROM employees<br />
<br />
3 WHERE hire_date ><br />
<br />
4 (SELECT MAX(hire_date)<br />
<br />
5 FROM employees<br />
<br />
6 WHERE department_id =<br />
<br />
7 (SELECT department_id<br />
<br />
8 FROM departments<br />
<br />
9 WHERE UPPER(department_name) = 'IT'))<br />
<br />
10 AND (department_id !=<br />
<br />
11 (SELECT department_id<br />
<br />
12 FROM departments<br />
<br />
13 WHERE UPPER(department_name) = 'EXECUTIVE')<br />
<br />
14 OR department_id IS NULL)<br />
<br />
15 ORDER BY 4 DESC;<br />
<br />
<br />
<br />
LAST_NAME FIRST_NAME JOB_ID HIRE_DATE <br />
<br />
------------------------- -------------------- ---------- --------- <br />
<br />
Zlotkey Eleni SA_MAN 29-JAN-00 <br />
<br />
Mourgos Kevin ST_MAN 16-NOV-99 <br />
<br />
Grant Kimberely SA_REP 24-MAY-99 <br />
<br />
<br />
<br />
SQL> SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay",<br />
<br />
2 MIN(salary) "Lowest Dept/Job Pay"<br />
<br />
3 FROM employees<br />
<br />
4 WHERE UPPER(job_id) NOT LIKE '%VP'<br />
<br />
5 AND department_id NOT IN<br />
<br />
6 (SELECT department_id<br />
<br />
7 FROM departments<br />
<br />
8 WHERE UPPER(department_name) IN ('IT','SALES'))<br />
<br />
9 GROUP BY department_id, job_id<br />
<br />
10 HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
<br />
11 ORDER BY 1, 2;<br />
<br />
<br />
<br />
DEPARTMENT_ID JOB_ID Average Dept/Job Pay Lowest Dept/Job Pay <br />
<br />
------------- ---------- -------------------- ------------------- <br />
<br />
20 MK_MAN 13000 13000 <br />
<br />
20 MK_REP 6000 6000 <br />
<br />
50 ST_MAN 5800 5800 <br />
<br />
110 AC_ACCOUNT 8300 8300 <br />
<br />
110 AC_MGR 12000 12000 <br />
<br />
<br />
<br />
SQL> SELECT department_id, department_name,<br />
<br />
2 RPAD(TRIM(NVL(city, 'Not Assinged Yet')), 25, ' ') "City",<br />
<br />
3 COUNT(DISTINCT job_id) "# of Jobs"<br />
<br />
4 FROM employees<br />
<br />
5 RIGHT OUTER JOIN departments USING (department_id)<br />
<br />
6 LEFT OUTER JOIN locations USING (location_id)<br />
<br />
7 GROUP BY department_id, department_name, city;<br />
<br />
<br />
<br />
DEPARTMENT_ID DEPARTMENT_NAME City # of Jobs <br />
<br />
------------- ------------------------------ ------------------------- ---------- <br />
<br />
110 Accounting Seattle 2 <br />
<br />
50 Shipping South San Francisco 2 <br />
<br />
80 Sales Oxford 2 <br />
<br />
10 Administration Seattle 1 <br />
<br />
190 Contracting Seattle 0 <br />
<br />
90 Executive Seattle 2 <br />
<br />
20 Marketing Toronto 2 <br />
<br />
60 IT Southlake 1 <br />
<br />
<br />
<br />
8 rows selected.<br />
<br />
<br />
<br />
SQL> spool off<br />
</pre><br />
==SQL Statements==<br />
===1.===<br />
''YuJin''<br />
<pre><br />
SELECT employee_id, RPAD(CONCAT(CONCAT(last_name, ', '),first_name), 25) "Full Name",<br />
job_id,<br />
TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
"Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
ORDER BY 4 DESC;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT employee_id,<br />
SUBSTR(last_name ||' '|| first_name, 1, 25) "Full Name",<br />
job_id,<br />
TO_CHAR(hire_date,'fmMonth "First in the year" YYYY') "Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date,'fmMON') IN ('MAY','NOV')<br />
ORDER BY hire_date DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select employee_id "Emp#",<br />
(last_name ||', '|| first_name) "Full Name",<br />
job_id "Job",<br />
to_char(trunc(hire_date, 'MONTH'), 'FMMonth Ddspth "in the year"<br />
YYYY') "Start Date"<br />
from employees<br />
where to_char(hire_date, 'fmMonth') in ('May', 'November')<br />
order by hire_date desc;<br />
</pre><br />
<br />
''FINAL''<br />
SELECT employee_id, SUBSTR(last_name ||' '|| first_name, 1, 25) "Full Name",<br />
job_id,<br />
TO_CHAR(TRUNC(hire_date, 'MONTH'), 'fmMonth Ddspth "in the year" YYYY')<br />
"Start Date"<br />
FROM employees<br />
WHERE TO_CHAR(hire_date, 'mm') IN (05, 11)<br />
ORDER BY hire_date DESC;<br />
<br />
===2.===<br />
''YuJin''<br />
<pre><br />
SELECT 'Employee named ' || first_name || ' ' || last_name || ' who is '<br />
|| job_id || ' will have a new salary of $' || salary * 1.15 "Happy Employees"<br />
FROM employees<br />
WHERE salary BETWEEN 5000 AND 12000<br />
AND job_id IN ('IT_PROG', 'ST_CLERK')<br />
ORDER BY employee_id;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT 'Employee named '||first_name||' '||last_name||' who is '||job_id||' will have a new salary of $'|| salary *1.15 "Happy Employees"<br />
FROM employees<br />
WHERE job_id IN ('IT_PROG','ST CLERK')<br />
AND (salary BETWEEN 5000 AND 12000)<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
Select ('Employee named ' || first_name ||' '|| last_name || ' who is ' || job_id || ' will have a new salary of ' || (salary*1.15)) "Happy Employees"<br />
From employees<br />
Where salary between 5000 and 12000<br />
And upper(job_id) in ('IT_PROG', 'ST_CLERK')<br />
order by employee_id;<br />
</pre><br />
<br />
===3.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, salary, job_id,<br />
RPAD(NVL(TO_CHAR(manager_id), 'No Manager'), 10) "Manager #",<br />
LPAD(TO_CHAR(salary * 12, '$999,999'), 12) "Total Income"<br />
FROM employees<br />
WHERE (job_id LIKE 'MK%' OR manager_id IS NULL)<br />
AND salary * (1 + NVL(commission_pct, 0)) + 1000 > 10000<br />
ORDER BY 2 DESC;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, salary, job_id, NVL(TO_CHAR(manager_id),'No Manager') Manager#,<br />
TO_CHAR(salary*12,'$999,999') "Total Income"<br />
FROM employees<br />
WHERE (manager_id IS NULL<br />
OR job_id LIKE 'MK%')<br />
AND ( salary* (NVL(commission_pct,0) + 1) + 1000 ) > 10000<br />
ORDER BY salary DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, salary, job_id, nvl(to_char(manager_id),'No Manager') Manager#,<br />
to_char(salary*12,'$999,999') "Total Income"<br />
from employees<br />
where (upper(job_id) like 'MK%' or manager_id IS NULL)<br />
and salary * (1 + nvl(commission_pct, 0)) + 1000 > 10000<br />
order by 2 desc;<br />
</pre><br />
<br />
===4.===<br />
''YuJin''<br />
<pre><br />
SELECT RPAD(CONCAT(CONCAT(first_name,' '),last_name), 25) "Employee", job_id,<br />
LPAD(TRIM(TO_CHAR(salary, '$999,999')), 12, '=') "Salary", department_name<br />
FROM employees e JOIN departments d<br />
ON (e.department_id = d.department_id)<br />
WHERE UPPER(department_name) IN ('MARKETING', 'SALES')<br />
AND salary <<br />
(SELECT MAX(salary)<br />
FROM employees<br />
WHERE SUBSTR(job_id, 4) NOT IN ('PRES','VP','MAN','MGR'))<br />
ORDER BY 1;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT SUBSTR(first_name||' '||last_name, 25) Employee, job_id,<br />
LPAD(TO_CHAR(salary,'$99,999'), 12, '=') Salary, department_name<br />
FROM employees e JOIN departments d<br />
ON (d.department_id=e.department_id)<br />
WHERE salary < (SELECT MAX(salary)<br />
FROM employees<br />
WHERE UPPER(SUBSTR(job_id,4)) NOT IN ('VP', 'PRES', 'MAN', 'MGR')<br />
)<br />
AND UPPER(department_name) IN ('MARKETING','SALES')<br />
ORDER BY first_name, last_name<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select substr(first_name ||' '|| last_name) "Employee", job_id, to_char(salary, '$999,999', 12, '=') Salary, department_name<br />
from employees e join departments d<br />
on (e.department_id = d.department_id)<br />
where upper(department_name) in ('MARKETING', 'SALES')<br />
and salary < (select max(salary)<br />
from employees<br />
where substr(job_id,4)) not in ('PRES','VP','MAN','MGR'))<br />
order by employee;<br />
</pre><br />
<br />
===5.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%PRES'<br />
AND salary ><br />
(SELECT MAX(salary)<br />
FROM employees<br />
JOIN departments USING (department_id)<br />
JOIN locations USING (location_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD'));<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, salary, job_id<br />
FROM employees<br />
WHERE salary > (SELECT MAX(salary)<br />
FROM locations JOIN departments<br />
USING (location_id)<br />
JOIN employees<br />
USING (department_id)<br />
WHERE UPPER(city) IN ('TORONTO','OXFORD')<br />
)<br />
AND UPPER(job_id) NOT LIKE '%PRES'<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, salary, job_id<br />
from employees<br />
where salary > (select max(salary)<br />
from employees join departments<br />
using (department_id)<br />
join locations<br />
using (location_id)<br />
where upper(city) in ('TORONTO','OXFORD'))<br />
and upper(job_id) not like '%PRES'<br />
</pre><br />
<br />
===6.===<br />
''YuJin''<br />
<pre><br />
SELECT last_name, first_name, job_id, hire_date<br />
FROM employees<br />
WHERE hire_date ><br />
(SELECT MAX(hire_date)<br />
FROM employees<br />
WHERE department_id =<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'IT'))<br />
AND (department_id !=<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'EXECUTIVE')<br />
OR department_id IS NULL)<br />
ORDER BY 4 DESC;<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT last_name, first_name, job_id, hire_date<br />
FROM employees e<br />
WHERE hire_date > (SELECT MAX(hire_date)<br />
FROM employees<br />
WHERE department_id = (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) = 'IT'<br />
)<br />
)<br />
AND (department_id <> (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) ='EXECUTIVE')<br />
OR department_id IS NULL)<br />
ORDER BY hire_date DESC<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select last_name, first_name, job_id, hire_date<br />
from employees<br />
where hire_date > (select max(hire_date)<br />
from employees<br />
where department_id = (select department_id<br />
from departments<br />
where upper(department_name) = 'IT'))<br />
and (department_id != (select department_id<br />
from departments<br />
where upper(department_name) = 'EXECUTIVE')<br />
or department_id IS NULL)<br />
order by hire_date desc;<br />
</pre><br />
<br />
===7.===<br />
''YuJin''<br />
<pre><br />
SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay",<br />
MIN(salary) "Lowest Dept/Job Pay"<br />
FROM employees<br />
WHERE UPPER(job_id) NOT LIKE '%VP'<br />
AND department_id NOT IN<br />
(SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) IN ('IT','SALES'))<br />
GROUP BY department_id, job_id<br />
HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
ORDER BY 1, 2;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT department_id, job_id, AVG(salary) "Average Dept/Job Pay", MIN(salary) "Lowest Dept/Job Pay"<br />
FROM employees<br />
WHERE department_id <> ALL (SELECT department_id<br />
FROM departments<br />
WHERE UPPER(department_name) IN ('IT','SALES')<br />
)<br />
AND job_id NOT LIKE '%VP'<br />
GROUP BY department_id, job_id<br />
HAVING MIN(salary) BETWEEN 5000 AND 15000<br />
ORDER BY department_id, job_id<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select department_id, job_id, avg(salary) "Average Dept/Job Pay", min(salary) "Lowest Dept/Job Pay"<br />
from employees<br />
where upper(job_id) not like '%VP'<br />
and department_id != all(select department_id<br />
from departments<br />
where upper(department_name) in ('IT','SALES'))<br />
group by department_id, job_id<br />
having min(salary) between 5000 and 15000<br />
order by department_id, job_id<br />
</pre><br />
<br />
===8.===<br />
''YuJin''<br />
<pre><br />
SELECT department_id, department_name,<br />
RPAD(TRIM(NVL(city, 'Not Assinged Yet')), 25, ' ') "City",<br />
COUNT(DISTINCT job_id) "# of Jobs"<br />
FROM employees<br />
RIGHT OUTER JOIN departments USING (department_id)<br />
LEFT OUTER JOIN locations USING (location_id)<br />
GROUP BY department_id, department_name, city;<br />
<br />
</pre><br />
''Saad''<br />
<pre><br />
SELECT department_id, department_name, SUBSTR(NVL(city,'Not Assigned Yet'),1,25) City,<br />
COUNT(DISTINCT job_id) "# of Jobs"<br />
FROM locations l RIGHT OUTER JOIN departments d<br />
USING (location_id)<br />
LEFT OUTER JOIN employees e<br />
USING (department_id)<br />
GROUP BY department_id, department_name, city<br />
/<br />
</pre><br />
''James''<br />
<pre><br />
select department_id, department_name, substr(nvl(city,'Not Assigned Yet'),1,25) City,<br />
count(distinct job_id) "# of Jobs"<br />
from employees right outer join departments<br />
using (department_id)<br />
left outer join locations<br />
using (location_id)<br />
group by department_id, department_name, city<br />
</pre></div>
Yujin.jeong
https://wiki.cdot.senecacollege.ca/w/index.php?title=GAM666/DPS901Student_List_20103&diff=48314
GAM666/DPS901Student List 20103
2010-10-18T20:23:34Z
<p>Yujin.jeong: /* GAM666/DPS901 Student List for Fall of 2010 */</p>
<hr />
<div>{{GAM666/DPS901 Index | 20103}}<br />
== GAM666/DPS901 Student List for Fall of 2010 ==<br />
<br />
Make sure you have done the following before you add your name here:<br />
<br />
* You have a registered name for IRC; irc.freenode.net server.<br />
* You have a blog for GAM666/DPS901 either by filtering your posts or a dedicated blog. (Optional)<br />
** Please make sure your blog feed to Planet CDOT is filtered by a keyword or category so that only blog posts related to our work in GAM666/DPS901 are posted on the planet<br />
<br />
Please add your information to the student list table below by adding the following to the end of table code (if you are a student in GAM666/DPS901, Fall of 2010).<br /><br />
<big><pre>|[[User:WUN | FN]]||LN||[[TPN |TN]] ||<br />
SUB||[mailto:LID@learn.senecac.on.ca?subject=SUB LID]||[[Special:Contributions/WUN | WUN]]||IN||[BURL BN]<br />
|-</pre></big><br />
Replace the following with your own information when adding the row to the table: <br /><br />
* WUN: Your Wiki User name<br />
* FN: Your First Name<br />
* LN: Your Last Name<br />
* TPN: Youre Team/Project Page Name on wiki<br />
* TN: Your Team name<br />
* SUB: Your Subject(example: DPS901)<br />
* LID: Your seneca email ID (learn id)<br />
* IN: Your IRC '''Registered''' Nickname <br />
* BURL: Your Blog URL (if you do have one)<br />
* BN: Your Blog Title<br />
<br />
Do not add your row unless you have all the required information described above.<br />
<br />
If your information is not added to the following line, your work and assignments will not be marked.<br />
<br />
{| class="wikitable sortable" border="1" cellpadding="5"<br />
|+ GAM666/DPS901 - Fall of 2010 student list<br />
! First Name !! Last Name !! Team Name !! Subject !! Seneca Id !! wiki id !! IRC nick !! Blog URL !! Repository<br />
|-<br />
|[[User:fardad | fardad]]||Soleimanloo||[[GAM666/DPS901 Sample Team Page|Team Name]]||GAM666||[mailto:fardad.soleimanloo@senecac.on.ca?sujbect=gam666 fardad.soleimanloo]||[[Special:Contributions/fardad | fardad]]||fardad||[http://seneblog.fardad.com Fardad's Seneca Blog]<br />
|-<br />
<br />
|-<br />
|[[User:dperit | David]]||Perit||[[Team_Blam|Team Blam]]||GAM666||[mailto:drperit@learn.senecac.on.ca drperit]||[[Special:Contributions/dperit| dperit]]||dperit||<br />
|-<br />
<br />
|-<br />
|[[User:ajcondinho | Andrew]]||Condinho||[[Team_Blam|Team Blam]]||GAM666||[mailto:ajcondinho@learn.senecac.on.ca ajcondinho]||[[Special:Contributions/ajcondinho| ajcondinho]]||Dueraim||[http://ajcondinho.blogspot.com/ Andrew's Blog]<br />
|-<br />
|[[User:CloudScorpion | Joseph]]||Hughes||[[Team Mutalisk |Team Mutalisk]]||GAM666||[mailto:jphughes@learn.senecac.on.ca?sujbect=gam666 jphughes]||[[Special:Contributions/CloudScorpion | CloudScorpion]]||CloudScorpion||[http://cloudscorpion.blogspot.com/ Cloud's Blog]<br />
|-<br />
|-<br />
|[[User:rjalexander | Ryan]]||Alexander||[[Team Mutalisk |Team Mutalisk]]||GAM666||[mailto:rjalexander@senecac.on.ca]||[[Special:Contributions/rjalexander| rjalexander]]||tdot||[http://oopblog.tdotshack.net Tdots's Seneca Blog]<br />
|-<br />
<br />
|-<br />
|[[User:caangus | Corey]]||Angus||[[Team_An_Honest_Effort|An Honest Effort]]||GAM666||[mailto:caangus@senecac.on.ca caangus]||[[Special:Contributions/caangus| caangus]]||caangus||[no blog]<br />
|-<br />
|-<br />
|[[User:Scborges| Steve]]||Borges||[[Team_An_Honest_Effort|An Honest Effort]]||GAM666||[mailto:scborges@learn.senecac.on.ca scborges]||[[Special:Contributions/Scborges| Scborges]]||Steve||None<br />
|-<br />
|-<br />
|[[User:Apliats | Aleh]]|| Pliats ||[[Team Open|Team Open]]||GAM666||[mailto:apliats@learn.senecac.on.ca apliats]||[[Special:Contributions/apliats | apliats]]||oleg_pliats||[http://oleg-oop.blogspot.com Aleh Pliats]<br />
|-<br />
<br />
|-<br />
|[[User:dmmcgrath | Damien]]||Mcgrath||[[Team_Zombie|Team Zombie]]||GAM666||[mailto:dmmcgrath@learn.senecac.on.ca dmmcgrath]||[[Special:Contributions/dmmcgrath| dmmcgrath]]||Vandesdelca||N/A<br />
|-<br />
<br />
|-<br />
|[[User:qfeng5 | Qing]]||Feng||[[Team_Zombie|Team Zombie]]||GAM666||[mailto:qfeng5@learn.senecac.on.ca qfeng5]||[[Special:Contributions/qfeng5| qfeng5]]||Ryojin||N/A<br />
|-<br />
<br />
|-<br />
|[[User:asamimi | Ali]]||Samimi||[[GAM666 Wild Sparrows|Wild Sparrows]]||GAM666||[mailto:asamimi@learn.senecac.on.ca asamimi]||[[Special:Contributions/asamimi|asamimi]]||asa_||[http://asa.veryusefulinfo.com/ The Door]<br />
|-<br />
<br />
|-<br />
|[[User:kjkim | Kijeong]]||Kim||[[GAM666 Wild Sparrows|Wild Sparrows]]||GAM666||[mailto:kjkim@learn.senecac.on.ca kjkim]||[[Special:Contributions/kjkim|kjkim]]|| TonyKim ||[http://kijeongkim.blogspot.com/ Blog]<br />
|-<br />
<br />
|-<br />
|[[User:shengwei | Shengwei]]||Wang ||[[GAM666 Wild Sparrows|Wild Sparrows]]||GAM666||[mailto:swang94@learn.senecac.on.ca swang94]||[[Special:Contributions/shengwei | shengwei]]|| shengwei || [http://shengwei-seneca.blogspot.com/ Shengwei's blog]<br />
|-<br />
<br />
|-<br />
|[[User:xlu44 | Xiongwen ]]||LU||[[GAM666 Wild Sparrows|Wild Sparrows]]||GAM666||[mailto:xlu44@learn.senecac.on.ca?sujbect=gam666 xlu44]||[[Special:Contributions/xlu44 | xlu44]]||xlu44||[http://gam666.blogspot.com BLOG FOR GAM666]<br />
|-<br />
<br />
|-<br />
|[[User:cwdesautels | Carl]]||Desautels ||[[GAM666 Slap Your Grandma|Slap Your Grandma]]||GAM666||[mailto:cwdesautels@senecac.on.ca cwdesautels]||[[Special:Contributions/cwdesautels | cwdesautels]]|| cdes||[http://cwd89.blogspot.com Carl]<br />
|-<br />
<br />
|-<br />
|[[User:kmbarnhart| Kyle]]||Barnhart||[[DPS901 Team Copycat |Team Copycat]]||DPS901||[mailto:kmbarnhart@senecac.on.ca kmbarnhart]||[[Special:Contributions/kmbarnhart| kmbarnhart]]||kmbarnhart||[http://copycat.barnhart.ca Copycat Blog]<br />
|-<br />
<br />
|-<br />
|[[User:Mbarciak| Mark]]||Barciak||[[PAGE TBA |Name TBA]]||DPS901||[mailto:mbarciak@senecac.on.ca mbarciak]||[[Special:Contributions/mbarciak| mbarciak]]||mbarciak||None<br />
|-<br />
<br />
|-<br />
|[[User:Jbraffoul| Jordan]]||Raffoul||[[DPS901 Cerebral Thought |Cerebral Thought]]||DPS901||[mailto:jbraffoul@learn.senecac.on.ca jbraffoul]||[[Special:Contributions/jbraffoul| jbraffoul]]||phez||None<br />
|-<br />
<br />
<br />
|-<br />
|[[User:Vladimir | Volodymyr]]||Dryzhepolov||[[GAM666 SheetBrix Robotix|SheetBrix Robotix]]||GAM666||[mailto:vdryzhepolov@learn.senecac.on.ca vdryzhepolov]||[[Special:Contributions/vladimir | vladimir]]||Vovko||[http://www.drizhepolov.com/blog Vladimir Drizhepolov Blog]||[svn://zenit.senecac.on.ca/dps901_103rep5/branches/vdryzhepolov 5]<br />
|-<br />
<br />
|-<br />
|[[User: Adgezaza | Adrian]]||Maurer||[[GAM666 SheetBrix Robotix|SheetBrix Robotix]]||GAM666||[mailto:amaurer@learn.senecac.on.ca amaurer]||[[Special:Contributions/Adgezaza | Adgezaza]]||adgezaza||[http://adgezaza.posterous.com/ who cares]||[svn://zenit.senecac.on.ca/dps901_103rep5/branches/amaurer 5]<br />
|-<br />
<br />
|-<br />
|[[User:dsventura | Dan]]||Ventura||[[GAM666 SheetBrix Robotix|SheetBrix Robotix]]||GAM666||[mailto:dsventura@learn.senecac.on.ca dsventura]||[[Special:Contributions/dsventura| dsventura]]||danman||N/A||[svn://zenit.senecac.on.ca/dps901_103rep5/branches/dsventura 5]<br />
|-<br />
<br />
<br />
|-<br />
|[[User:Aroizin| Alex]]||Roizin||[[GAM666 SheetBrix Robotix|SheetBrix Robotix]]||GAM666||[mailto:aroizin@learn.senecac.on.ca aroizin]||[[Special:Contributions/aroizin| aroizin]]||aroizin||None||[svn://zenit.senecac.on.ca/dps901_103rep5/branches/aroizin 5]<br />
|-<br />
<br />
|-<br />
|[[User:peleaning | Pete]]||Leaning||[[Team_zombie|Team Zombie]]||GAM666||[mailto:peleaning@learn.senecac.on.ca?sujbect=gam666 pete ]||[[Special:Contributions/peleaning | peleaning]]||peleaning||[http://blockrockinpete.blogspot.com Pete's blog]<br />
|-<br />
<br />
|-<br />
|[[User:gmok| Geoffrey]]||Mok||[[10th Floor|The 10th Floor]]||GAM666||[mailto:gmok@learn.senecac.on.ca gmok]||[[Special:Contributions/gmok| gmok]]||gmok||[http://geoffrey-mok.blogspot.com gmok's blog]<br />
|-<br />
|-<br />
|[[User:szahmad| Shayan]]||Ahmad||[[DPS901 Cerebral Thought |Cerebral Thought]]||DPS901||[mailto:szahmad@learn.senecac.on.ca Shayan Ahmad]||[[Special:Contributions/szahmad| szahmad]]||szahmad||[http://zaf1.wordpress.com Shayan's Blog]<br />
|-<br />
<br />
|-<br />
|[[User:dacallow | Kaitlyn]]||Callow||[[DPS901_Hic_Sunt_Dracones|Hic Sunt Dracones]]||DPS901||[mailto:dacallow@learn.senecac.on.ca dacallow]||[[Special:Contributions/dacallow| dacallow]]||Kait85||[http://blog.kaitlyncallow.com Kaitlyn's Rambling Ramblings]<br />
|-<br />
<br />
|-<br />
|[[User:sweerdenburg| Steven]]||Weerdenburg||[[DPS901_Hic_Sunt_Dracones|Hic Sunt Dracones]]||DPS901||[mailto:sweerdenburg@learn.senecac.on.ca sweerdenburg]||[[Special:Contributions/sweerdenburg| sweerdenburg]]||stevenaw||[http://sweerdenburg.wordpress.com/ Steven's Blog]<br />
|-<br />
<br />
|-<br />
|[[User:dhhodgin | Daniel]]||Hodgin||[[DPS901_Hic_Sunt_Dracones|Hic Sunt Dracones]]||DPS901||[mailto:dhhodgin@learn.senecac.on.ca dhhodgin]||[[Special:Contributions/dhhodgin| dhhodgin]]||dhodgin||[http://www.hodgin.ca/ Blog/Website]<br />
|-<br />
<br />
|-<br />
|[[User:JBoelen| James]]||Boelen||[[DPS901_Hic_Sunt_Dracones|Hic Sunt Dracones]]||DPS901||[mailto:jboelen@learn.senecac.on.ca jboelen]||[[Special:Contributions/jboelen| JBoelen]]||Athrus||None<br />
|-<br />
<br />
|-<br />
|[[User:gwan7| Gerald]]||Wan||[[DPS901 Cerebral Thought |Cerebral Thought]]||DPS901||[mailto:gwan7@learn.senecac.on.ca Gerald Wan]||[[Special:Contributions/gwan7|gwan7]]||gwan7||None<br />
|-<br />
<br />
|-<br />
|[[User:errichard| Richard]]||Eyre||[[DPS901 Cerebral Thought |Cerebral Thought]]||DPS901||[mailto:errichard@learn.senecac.on.ca Richard Eyre]||[[Special:Contributions/errichard|errichard]]||epsilon||None<br />
|-<br />
|-<br />
|[[User:akopytov | Andrei]]||Kopytov||[[DPS901|Team GG]]||DPS901||[mailto:akopytov@learn.senecac.on.ca Andrei Kopytov]||[[Special:Contributions/akopytov |akopytov]]||akopytov||N/A<br />
|-<br />
|-<br />
|[[User:Satijas | Sasha]]||Atijas||[[GAM666 Slap Your Grandma|Slap Your Grandma]]||GAM666||[mailto:satijas@learn.senecac.on.ca Email]||[[Special:Contributions/Satijas| Satijas]]||Sash0040||N/A<br />
|-<br />
<br />
|[[User:Avathsalan | Aravinthan]]||Vathsalan||[[10th Floor|The 10th Floor]]||GAM666||[mailto:avathsalan@learn.senecac.on.ca?subject=GAM666 avathsalan]||[[Special:Contributions/Avathsalan | Avathsalan]]||avathsalan||N/A<br />
|-<br />
|[[User:BradMc| Brad]]||McKie||[[GG |GG]]||DPS901||[mailto:bmckie@learn.senecac.on.ca Brad McKie]||[[Special:Contributions/BradMc|BradMc]]||B-Rad||None<br />
|-<br />
<br />
|-<br />
|[[User:dseifried | Dave]]||Seifried ||[[GAM666 Slap Your Grandma|Slap Your Grandma]]||GAM666||[mailto:dseifried@senecac.on.ca dseifried]||[[Special:Contributions/dseifried | dseifried]]|| Jangalang ||[http://dseifried.blogspot.com Blog]<br />
|-<br />
|-<br />
|[[User:istessema | Iyosias]]||Tessema||[[GAM666|-]]||GAM666||[mailto:istessema@learn.senecac.on.ca Iyosias Tessema]||[[Special:Contributions/istessema |istessema]]||iyosias||N/A<br />
|-<br />
|[[User:ljubo |Ljubomir]]||Gorscak||[[GAM666|-]]||GAM666||[mailto:gljubomir@learn.senecac.on.ca Ljubomir Gorscak]||-||-||-<br />
|-<br />
<br />
|-<br />
|[[User:rmwang | Ryan]]||Wang||[[10th Floor|The 10th Floor]]||DPS901||[mailto:rmwang@learn.senecac.on.ca Ryan Wang]||[[Special:Contributions/rmwang| rmwang]]||rmwang||[http://flashalive.wordpress.com Ryan's Blog]<br />
|-<br />
<br />
|-<br />
|[[User:samoote | Stanley]]||Moote||[[GAM666|GG]]||DPS901||[mailto:samoote@learn.senecac.on.ca Stanley Moote]||[[Special:Contributions/samoote| samoote]]||samoote||N/A<br />
|-<br />
<br />
<br />
|-<br />
|[[User:jrbuckley | Jon]]||Buckley||[[DPS901_Hic_Sunt_Dracones | Team Hic Sunt Dracones]]||DPS901||[mailto:jrbuckley@learn.senecac.on.ca Jon Buckley]||[[Special:Contributions/jrbuckley| jrbuckley]]||jrbuckley||N/A<br />
<br />
|-<br />
|-<br />
|[[User:rjmorales1| Randl]]||Morales||[[DPS901 Team Copycat |Team Copycat]]||DPS901||[mailto:rjmorales1@learn.senecac.on.ca Randl Morales]||[[Special:Contributions/rjmorales1| rjmorales1]]||rjmorales1||N/A<br />
|-<br />
|-<br />
|[[User:Nmirabella| Nick]]||Mirabella||[[DPS901 Team Copycat |Team Copycat]]||DPS901||[mailto:nmirabella@learn.senecac.on.ca Nick Mirabella]||[[Special:Contributions/nmirabella| nmirabella]]||nmirabella||N/A<br />
|-<br />
|-<br />
|[[User:dpapagia | Denny]]||Papagiannidis||[[GAM666 Slap Your Grandma|Slap Your Grandma]]||GAM666||[mailto:dpapagia@learn.senecac.on.ca dpapagia]||[[Special:Contributions/dpapagia| dpapagia]]||dennyp|| [http://dennyp.wordpress.com Denny's Blog]<br />
<br />
|-<br />
|[[User:northWind87 | Hasan]]||Kamal-Al-Deen||[[Team Mutalisk|Team Mutalisk]] || GAM666||[mailto:hkamal-al-deen@learn.senecac.on.ca?subject=GAM666 hkamal-al-deen]||[[Special:Contributions/northWind87 | northWind87]]||northWind||[http://orbitalstation.wordpress.com The Orbital Station]<br />
|-<br />
<br />
|-<br />
|[[User:CWoodley1 | Carolyn]]||Woodley||[[Team Zombie|Team Zombie]] || GAM666||[mailto:cwoodley1@learn.senecac.on.ca?subject=GAM666 cwoodley1]||[[Special:Contributions/cwoodley1 | Cwoodley1]]||Cwoodley1||[http://carolynwoodley.blogspot.com Carolyn's Blog]<br />
|-<br />
<br />
|-<br />
|[[User:blaw1| Brian]]||Law||[[Team_Blam|Team Blam]] || GAM666||[mailto:blaw1@learn.senecac.on.ca?subject=GAM666 blaw1]||[[Special:Contributions/blaw1| blaw1]]||blaw1||[http://brianl20.blogspot.com/ Brian's Blog]<br />
|-<br />
<br />
|-<br />
|[[User:sjwilkin| Steven]]||Wilkinson||[[Double Tap |Double Tap]] || GAM666||[mailto:sjwilkin@learn.senecac.on.ca?subject=GAM666 sjwilkin]||[[Special:Contributions/sjwilkin| sjwilkin]]||sjwilkin||N/A<br />
|-</div>
Yujin.jeong
https://wiki.cdot.senecacollege.ca/w/index.php?title=Team_Blam&diff=48313
Team Blam
2010-10-18T20:22:42Z
<p>Yujin.jeong: /* Member Roles */</p>
<hr />
<div>{{GAM666/DPS901 Index | 20103}}<br />
= Don't Crash Into Buildings! =<br />
== Project Marking Percentage ==<br />
<big><br />
Group work: xx% (25 <= xx <= 50)<br />
Individual work: xx% + (50 <= xx <= 75) <br />
-------------------------<br />
Total 100%<br />
</big><br />
== Team Website ==<br />
[http://blam.lighthouseapp.com/projects/61347-dont-crash-into-buildings/overview blam.lighthouseapp.com]<br />
== Repository ==<br />
=== Repo path ===<br />
<br />
svn://zenit.senecac.on.ca/dps901_103rep3<br />
<br />
=== Trunk Status ===<br />
<br />
committed by YuJin (04-Oct-2010)<br />
<br />
== Member List == <br />
<br />
*[mailto:blaw1@learn.senecac.on.ca,ajcondinho@learn.senecac.on.ca,drperit@learn.senecac.on.ca?subject=gam666 Email All]<br />
<br />
{| class="wikitable sortable" border="1" cellpadding="5"<br />
! First Name !! Last Name !! Seneca Id !! wiki id !! IRC nick !! Blog URL !! MSN !! Phone<br />
|-<br />
|[[User:dperit | David]]||Perit||[mailto:drperit@learn.senecac.on.ca?sujbect=gam666 drperit]||[[Special:Contributions/dperit| dperit]]||dperit|| || wowbagger5@hotmail.com || 647 - 520 - 3039<br />
|-<br />
<br />
|-<br />
|[[User:ajcondinho | Andrew]]||Condinho||[mailto:ajcondinho@learn.senecac.on.ca?sujbect=gam666 ajcondinho]||[[Special:Contributions/ajcondinho| ajcondinho]]||Dueraim||[http://ajcondinho.blogspot.com/ Andrew's Blog] || || 416 - 997 - 1589<br />
|-<br />
<br />
|-<br />
|[[User:blaw1 | Brian]]||Law||[mailto:blaw1@learn.senecac.on.ca?sujbect=gam666 blaw1]||[[Special:Contributions/blaw1|blaw1 ]] || || || || 416 - 254 - 3457<br />
|-<br />
<br />
|}<br />
<br />
== Member Roles ==<br />
{| class="wikitable" border="1" width="300"<br />
! Member !! Role<br />
|- align="left"<br />
| [[User:dperit | David ]] || Collision Detection<br />
|- align="left"<br />
| [[User:ajcondinho | Andrew ]] || Path Guaranteeing<br />
|- align="left"<br />
| [[User:blaw1 | Brian ]] || Ship Movement<br />
<br />
|}<br />
<br />
== Proposal ==<br />
<br />
<br />
'''Game Name:''' Don't Crash Into Buildings !<br/><br/><br />
'''Game Description:'''<br/><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;In our game, you will be the captain of a ship. The main engine of this ship is stuck on full blast, so it cannot ever stop. The ship is travelling through an increasingly dense urban landscape, and it is your goal to avoid crashing into anything for as long as possible! To accomplish this goal you have a view of your ship from high above it, allowing you to see buildings as they race towards you. You also have a set of maneuvering thrusters, which can push your ship back, forwards, left, and right on a two-dimensional plane. This will hopefully allow you to avoid crashing into buildings!<br /><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The top down view of your ship is provided by a camera moving at a constant speed. This camera provides a limited view of the area around your ship, and your ship cannot move out of this area, or it will crash into an unseen building. This results in you having a mostly static view of your ship as it flies forward through the city.<br />
Crashing into a building will kill you. Try to avoid this. The maneuvering thrusters on your ship are unlimited use, and can move you at a constant speed around the viewable area.<br/><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Due to overzealous construction, all of the entrances and exits to the city's planning department were blocked with buildings while the department was meeting to create a layout and zoning plan for the city. As a result, the placement of buildings in the city is random! There is, however, guaranteed to be a navigable path for your ship through the city, due to the actions of the Emergency Runaway Spacecraft Advance Demolition Crew, who are busy carving a path of destruction offscreen, just so that the game isn't impossible. All of the buildings in the city are rectangular in shape, making the collision detection code much easier to write.<br />
<br />
<br />
'''Enhanced Don't Crash Into Buildings !'''<br />
this is a list of things we can do if we're done everything else, and looking for more<br />
<br />
(Some or all of these features may be added to/replace features in the base game, depending on time constraints)<br />
<br />
* Rather than move you at a constant speed, your thrusters can accelerate you (up to certain maximum speeds). This can provide additional challenge.<br />
<br />
* Rather than being instantly killed by a collision, you could have shields on your ship which regenerate over time. This would be damaged by collisions in direct proportion to the speed with which you collided with the building, and you will die if it's reduced to 0<br />
<br />
* Could transition between levels, or have moments of blank space giving a chance to rest, followed by a change in environment/city textures<br />
* Have three dimensional movement (up + down, along with forward + back + left + right), combined with shorter buildings that can be flown over or buildings that have gaps in them<br />
* Because it is important to be at the correct altitude to fly through the gaps/over them, we could have an altitude meter with different colours. The gaps in the buildings could be marked with those colours, and then you can match up those colours with the altitude meter to know that you're at the correct height to pass through the gaps<br />
* Vertical movement should be between a set of discrete values, due to the difficulty in telling exact height from a top down perspective, even with an altitude meter<br />
<br />
== Initial version ==<br />
<br />
The initial version of the game will be on the command line, turn based, with positional accuracy to the character level. This will allow us to write the full grid-aligned bounding box based collision detection, a simplified version of the ship movement code, and the maze generation and path guaranteeing code.<br />
<br />
Basic algorithms:<br />
Collision detection: All of the buildings are aligned to a grid, so they have a maximum and minimum x position, and a maximum and minimum y position. To determine if we have collided with a building, we check (either for all nearby buildings or all buildings onscreen) out ship's collision co-ordinates to see if maxBuildingX < shipX < minBuildingX AND maxBuildingY < shipY < minBuildingY. If so, then we've collided with that building. We should be keeping track of the ship's position in the previous frame, so that after we collide with something we can reset the position to that of the previous frame.<br />
<br />
Ship movement: Press arrows, ship position changes at a constant rate. In the console, we will simply change the ships position by one when an arrow key is pressed.<br />
<br />
Maze generation: We will have a difficulty number, possibly from 0 to 100, that increases over time. For each building square, we create a random number from 0 to 100. If that number is less than the difficulty number, then we place a building in that square.<br />
<br />
Path guaranteeing:<br />
If we have a building grid, like so, where x is a building and o is not a building:<br />
<pre><br />
XOOXX<br />
XXOOX<br />
XXOXX<br />
XOXXX<br />
</pre><br />
<br />
Then we'll have an exit point defined in the topmost row, either at column 2 or 3. Our next row will look like one of these possibilities (I'll assume the exit point is 3). The ? marks are pseudo-randomly determined to be a building or not a building depending on our maze generation algorithm.<br />
<pre><br />
??O?? new endpoint is 3<br />
?OO?? new endpoint is 2<br />
OOO?? new endpoint is 1<br />
??OO? new endpoint is 4<br />
??OOO new endpoint is 5<br />
</pre><br />
The most likely endpoint here would be 3, with endpoints of 2 and 4 less likely, and 1 and 5 even less likely, although the chance of getting 2,4,1, or 5 would increase with the difficulty level. If it's not possible for the ship to move fast enough to navigate X squares over in a row, then we'll remove that as a possibility, so that the maximum difference between end points in adjacent rows would be x - 1<br />
<br />
New maze generation code!<br />
<pre><br />
char buildings[40][5];<br />
//initialize that<br />
Path ourPaths[3];<br />
//initialize that<br />
<br />
for (int curRow = 0; curRow < 40; curRow++)<br />
{<br />
foreach(Path curPath in ourPaths)<br />
{<br />
curPath.buildPath(buildings[curRow]);<br />
}<br />
}<br />
<br />
<br />
Path<br />
{<br />
int startCol;<br />
int endCol;<br />
<br />
public:<br />
void buildPath(char currentRow[5])<br />
{<br />
currentRow[endCol] = notabuilding;<br />
startCol = endCol;<br />
endCol = endCol + or - a random number, probably influenced by difficulty level;<br />
//Fill in all columns between startCol and endCol with notabuildings<br />
}<br />
}<br />
</pre><br />
<br />
We are going to have several objects:<br />
A path object, which takes a row of buildings and generates a path in them.<br />
[optional, can just be a list] A pathset object, which contains a set of paths<br />
A building object, representing one building<br />
A maze object, containing a two dimensional array of buildings<br />
A ship object, representing the player's ship.<br />
<br />
Our main method will flow as follows, at least in the text version:<br />
The maze will use the set of path objects to generate a path through the maze<br />
Then, loop until exit, doing the following:<br />
Call the maze's draw function.<br />
<br />
Call the maze's collision detection function, passing in our ship. (Maze's collision detection will check all of the buildings for collisions, using the ship's co-ordinates)(If a collision is detected, the Maze's collision detection will call the ship's collision function, which will move the ship back in such a way that it's no longer colliding (this could involve storing the previous move and undoing it, adding in any additional movement downwards because the screen has just scrolled down) and reduce your shields)<br />
<br />
Call the ship's draw function<br />
<br />
Wait for input from the player.<br />
<br />
Give input to ship object, which will update position.<br />
<br />
Call the maze's scroll function, which will scroll at the pre-set rate.<br />
<br />
<br />
<br />
[http://zenit.senecac.on.ca/wiki/index.php/GAM666/DPS901_Project_requirements_20103#Phase_1 *How to write game proposal]<br />
<br />
== Map of the World of the Game ==<br />
== Moderator's - Instructors Comments ==<br />
== Important Project Due Dates ==<br />
{| border="1"<br />
! Tasks !! Due Date<br />
|-<br />
|<s>1. Proposal outline and team members selected</s><br />
|<s>September 21</s><br />
|-<br />
|<s>2. Proposal completed and members roles selected</s><br />
|<s>September 28</s><br />
|-<br />
|<s>3. Research into game requirements begins</s><br />
|<s>September 29</s><br />
|-<br />
|<s>4. Approval meeting with instructor</s><br />
|<s>Weeks of October 3 and October 10</s><br />
|-<br />
|5. Draft game submission and project review<br />
|November 16<br />
|-<br />
|6. Final game presentation<br />
|December 7<br />
|}<br />
<br />
== Meeting Schedule ==<br />
{| border="1"<br />
! Date and Time !! Place<br />
|-<br />
|<s>Sept 16, 09:50 AM</s><br />
|<s>Seneca Library Room 1131</s><br />
|-<br />
|<s>Sept 23, 09:50 AM</s><br />
|<s>Seneca Library Room 1131</s><br />
|-<br />
|<s>Sept 30, 09:50 AM</s><br />
|<s>Seneca Library Room 1132</s><br />
|-<br />
|Oct 7, 09:50 AM<br />
|Seneca Library Room 1132<br />
|-<br />
<br />
|}<br />
<br />
== Meeting Log ==<br />
=== Sept 16th Meeting ===<br />
Meeting place : Room 1131, Seneca Library <br />
==== Agenda ====<br />
# Look for the last member <br />
# Brainstorming on our game - share any ideas in mind<br />
# Decide member roles<br />
# How this group will work<br />
# Set regular meeting schedule<br />
## at least once a week<br />
## share each other's timetable<br />
==== Result ====<br />
# Brian joined our group !<br />
# Agreed on David's idea - he will put up more details on wiki page<br />
# Will be decided later<br />
# Work under one trunk<br />
# Regular Meeting Schedule<br />
## in-person meeting<br />
## at Seneca Library - YuJin will book the room every week<br />
## on every Thursday between 9:50am and 11:40am<br />
<br />
<hr/><br />
=== Sept 23th Meeting ===<br />
Meeting place : Room 1132, Seneca Library<br/><br />
Meeting time : 9:50am ~ 11:40am<br />
==== Agenda ====<br />
# Finalize our game proposal<br />
# Divide roles & responsibilities<br />
# Keep updated <br/><br />
## subscribe to team page and course pages<br/><br />
## subscribe by clicking 'watch' of each page menu<br />
# Creating our own private team page ???<br />
##to disclose certain information of our group project ???<br />
<br />
==== Result ====<br />
# Uploaded game proposal - there might be changes in the future<br />
# Will divide roles after having meeting with Chris<br />
# (was just notification)<br />
# (wasn't discussed) <br />
# New meeting schedule<br />
## We will have meetings every Thursday AND Friday<br />
## Will have to figure the exact meeting time soon (for Fridays)<br />
<hr/><br />
=== Sept 30th Meeting ===<br />
Meeting place : Room 1132, Seneca Library<br/><br />
Meeting time : 9:50am ~ 11:40am<br />
==== Agenda ====<br />
# Discuss details on our game proposal<br />
# Divide up roles<br />
==== Result ====<br />
# Updated game proposal<br />
# Initial roles decided<br />
## David - Collision detection<br />
## YuJin - Maze Generator<br />
## Brian - Ship Movement<br />
## Andrew - Path guaranteeing<br />
<br />
<hr/><br />
=== Oct 7th Meeting ===<br />
Meeting place : Room 1132, Seneca Library<br/><br />
Meeting time : 9:50am ~ 11:40am<br />
==== Agenda ====<br />
<br />
==== Result ====<br />
<br />
== Resources ==<br />
[http://zenit.senecac.on.ca/wiki/index.php/Team_Blam-GridCode Simple Grid Code]<br />
<br />
== Useful Links ==<br />
[http://theory.stanford.edu/~amitp/GameProgramming/ Pathfinding Guide]</div>
Yujin.jeong
https://wiki.cdot.senecacollege.ca/w/index.php?title=Team_Blam&diff=48312
Team Blam
2010-10-18T20:22:24Z
<p>Yujin.jeong: /* Member List */</p>
<hr />
<div>{{GAM666/DPS901 Index | 20103}}<br />
= Don't Crash Into Buildings! =<br />
== Project Marking Percentage ==<br />
<big><br />
Group work: xx% (25 <= xx <= 50)<br />
Individual work: xx% + (50 <= xx <= 75) <br />
-------------------------<br />
Total 100%<br />
</big><br />
== Team Website ==<br />
[http://blam.lighthouseapp.com/projects/61347-dont-crash-into-buildings/overview blam.lighthouseapp.com]<br />
== Repository ==<br />
=== Repo path ===<br />
<br />
svn://zenit.senecac.on.ca/dps901_103rep3<br />
<br />
=== Trunk Status ===<br />
<br />
committed by YuJin (04-Oct-2010)<br />
<br />
== Member List == <br />
<br />
*[mailto:blaw1@learn.senecac.on.ca,ajcondinho@learn.senecac.on.ca,drperit@learn.senecac.on.ca?subject=gam666 Email All]<br />
<br />
{| class="wikitable sortable" border="1" cellpadding="5"<br />
! First Name !! Last Name !! Seneca Id !! wiki id !! IRC nick !! Blog URL !! MSN !! Phone<br />
|-<br />
|[[User:dperit | David]]||Perit||[mailto:drperit@learn.senecac.on.ca?sujbect=gam666 drperit]||[[Special:Contributions/dperit| dperit]]||dperit|| || wowbagger5@hotmail.com || 647 - 520 - 3039<br />
|-<br />
<br />
|-<br />
|[[User:ajcondinho | Andrew]]||Condinho||[mailto:ajcondinho@learn.senecac.on.ca?sujbect=gam666 ajcondinho]||[[Special:Contributions/ajcondinho| ajcondinho]]||Dueraim||[http://ajcondinho.blogspot.com/ Andrew's Blog] || || 416 - 997 - 1589<br />
|-<br />
<br />
|-<br />
|[[User:blaw1 | Brian]]||Law||[mailto:blaw1@learn.senecac.on.ca?sujbect=gam666 blaw1]||[[Special:Contributions/blaw1|blaw1 ]] || || || || 416 - 254 - 3457<br />
|-<br />
<br />
|}<br />
<br />
== Member Roles ==<br />
{| class="wikitable" border="1" width="300"<br />
! Member !! Role<br />
|- align="left"<br />
| [[User:yujin.jeong | YuJin ]] || 1. Maze Generator <br/> 2. Book Meeting Room Every Week<br/> 3. Meeting Log<br />
|- align="left"<br />
| [[User:dperit | David ]] || Collision Detection<br />
|- align="left"<br />
| [[User:ajcondinho | Andrew ]] || Path Guaranteeing<br />
|- align="left"<br />
| [[User:blaw1 | Brian ]] || Ship Movement<br />
<br />
|}<br />
<br />
== Proposal ==<br />
<br />
<br />
'''Game Name:''' Don't Crash Into Buildings !<br/><br/><br />
'''Game Description:'''<br/><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;In our game, you will be the captain of a ship. The main engine of this ship is stuck on full blast, so it cannot ever stop. The ship is travelling through an increasingly dense urban landscape, and it is your goal to avoid crashing into anything for as long as possible! To accomplish this goal you have a view of your ship from high above it, allowing you to see buildings as they race towards you. You also have a set of maneuvering thrusters, which can push your ship back, forwards, left, and right on a two-dimensional plane. This will hopefully allow you to avoid crashing into buildings!<br /><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The top down view of your ship is provided by a camera moving at a constant speed. This camera provides a limited view of the area around your ship, and your ship cannot move out of this area, or it will crash into an unseen building. This results in you having a mostly static view of your ship as it flies forward through the city.<br />
Crashing into a building will kill you. Try to avoid this. The maneuvering thrusters on your ship are unlimited use, and can move you at a constant speed around the viewable area.<br/><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Due to overzealous construction, all of the entrances and exits to the city's planning department were blocked with buildings while the department was meeting to create a layout and zoning plan for the city. As a result, the placement of buildings in the city is random! There is, however, guaranteed to be a navigable path for your ship through the city, due to the actions of the Emergency Runaway Spacecraft Advance Demolition Crew, who are busy carving a path of destruction offscreen, just so that the game isn't impossible. All of the buildings in the city are rectangular in shape, making the collision detection code much easier to write.<br />
<br />
<br />
'''Enhanced Don't Crash Into Buildings !'''<br />
this is a list of things we can do if we're done everything else, and looking for more<br />
<br />
(Some or all of these features may be added to/replace features in the base game, depending on time constraints)<br />
<br />
* Rather than move you at a constant speed, your thrusters can accelerate you (up to certain maximum speeds). This can provide additional challenge.<br />
<br />
* Rather than being instantly killed by a collision, you could have shields on your ship which regenerate over time. This would be damaged by collisions in direct proportion to the speed with which you collided with the building, and you will die if it's reduced to 0<br />
<br />
* Could transition between levels, or have moments of blank space giving a chance to rest, followed by a change in environment/city textures<br />
* Have three dimensional movement (up + down, along with forward + back + left + right), combined with shorter buildings that can be flown over or buildings that have gaps in them<br />
* Because it is important to be at the correct altitude to fly through the gaps/over them, we could have an altitude meter with different colours. The gaps in the buildings could be marked with those colours, and then you can match up those colours with the altitude meter to know that you're at the correct height to pass through the gaps<br />
* Vertical movement should be between a set of discrete values, due to the difficulty in telling exact height from a top down perspective, even with an altitude meter<br />
<br />
== Initial version ==<br />
<br />
The initial version of the game will be on the command line, turn based, with positional accuracy to the character level. This will allow us to write the full grid-aligned bounding box based collision detection, a simplified version of the ship movement code, and the maze generation and path guaranteeing code.<br />
<br />
Basic algorithms:<br />
Collision detection: All of the buildings are aligned to a grid, so they have a maximum and minimum x position, and a maximum and minimum y position. To determine if we have collided with a building, we check (either for all nearby buildings or all buildings onscreen) out ship's collision co-ordinates to see if maxBuildingX < shipX < minBuildingX AND maxBuildingY < shipY < minBuildingY. If so, then we've collided with that building. We should be keeping track of the ship's position in the previous frame, so that after we collide with something we can reset the position to that of the previous frame.<br />
<br />
Ship movement: Press arrows, ship position changes at a constant rate. In the console, we will simply change the ships position by one when an arrow key is pressed.<br />
<br />
Maze generation: We will have a difficulty number, possibly from 0 to 100, that increases over time. For each building square, we create a random number from 0 to 100. If that number is less than the difficulty number, then we place a building in that square.<br />
<br />
Path guaranteeing:<br />
If we have a building grid, like so, where x is a building and o is not a building:<br />
<pre><br />
XOOXX<br />
XXOOX<br />
XXOXX<br />
XOXXX<br />
</pre><br />
<br />
Then we'll have an exit point defined in the topmost row, either at column 2 or 3. Our next row will look like one of these possibilities (I'll assume the exit point is 3). The ? marks are pseudo-randomly determined to be a building or not a building depending on our maze generation algorithm.<br />
<pre><br />
??O?? new endpoint is 3<br />
?OO?? new endpoint is 2<br />
OOO?? new endpoint is 1<br />
??OO? new endpoint is 4<br />
??OOO new endpoint is 5<br />
</pre><br />
The most likely endpoint here would be 3, with endpoints of 2 and 4 less likely, and 1 and 5 even less likely, although the chance of getting 2,4,1, or 5 would increase with the difficulty level. If it's not possible for the ship to move fast enough to navigate X squares over in a row, then we'll remove that as a possibility, so that the maximum difference between end points in adjacent rows would be x - 1<br />
<br />
New maze generation code!<br />
<pre><br />
char buildings[40][5];<br />
//initialize that<br />
Path ourPaths[3];<br />
//initialize that<br />
<br />
for (int curRow = 0; curRow < 40; curRow++)<br />
{<br />
foreach(Path curPath in ourPaths)<br />
{<br />
curPath.buildPath(buildings[curRow]);<br />
}<br />
}<br />
<br />
<br />
Path<br />
{<br />
int startCol;<br />
int endCol;<br />
<br />
public:<br />
void buildPath(char currentRow[5])<br />
{<br />
currentRow[endCol] = notabuilding;<br />
startCol = endCol;<br />
endCol = endCol + or - a random number, probably influenced by difficulty level;<br />
//Fill in all columns between startCol and endCol with notabuildings<br />
}<br />
}<br />
</pre><br />
<br />
We are going to have several objects:<br />
A path object, which takes a row of buildings and generates a path in them.<br />
[optional, can just be a list] A pathset object, which contains a set of paths<br />
A building object, representing one building<br />
A maze object, containing a two dimensional array of buildings<br />
A ship object, representing the player's ship.<br />
<br />
Our main method will flow as follows, at least in the text version:<br />
The maze will use the set of path objects to generate a path through the maze<br />
Then, loop until exit, doing the following:<br />
Call the maze's draw function.<br />
<br />
Call the maze's collision detection function, passing in our ship. (Maze's collision detection will check all of the buildings for collisions, using the ship's co-ordinates)(If a collision is detected, the Maze's collision detection will call the ship's collision function, which will move the ship back in such a way that it's no longer colliding (this could involve storing the previous move and undoing it, adding in any additional movement downwards because the screen has just scrolled down) and reduce your shields)<br />
<br />
Call the ship's draw function<br />
<br />
Wait for input from the player.<br />
<br />
Give input to ship object, which will update position.<br />
<br />
Call the maze's scroll function, which will scroll at the pre-set rate.<br />
<br />
<br />
<br />
[http://zenit.senecac.on.ca/wiki/index.php/GAM666/DPS901_Project_requirements_20103#Phase_1 *How to write game proposal]<br />
<br />
== Map of the World of the Game ==<br />
== Moderator's - Instructors Comments ==<br />
== Important Project Due Dates ==<br />
{| border="1"<br />
! Tasks !! Due Date<br />
|-<br />
|<s>1. Proposal outline and team members selected</s><br />
|<s>September 21</s><br />
|-<br />
|<s>2. Proposal completed and members roles selected</s><br />
|<s>September 28</s><br />
|-<br />
|<s>3. Research into game requirements begins</s><br />
|<s>September 29</s><br />
|-<br />
|<s>4. Approval meeting with instructor</s><br />
|<s>Weeks of October 3 and October 10</s><br />
|-<br />
|5. Draft game submission and project review<br />
|November 16<br />
|-<br />
|6. Final game presentation<br />
|December 7<br />
|}<br />
<br />
== Meeting Schedule ==<br />
{| border="1"<br />
! Date and Time !! Place<br />
|-<br />
|<s>Sept 16, 09:50 AM</s><br />
|<s>Seneca Library Room 1131</s><br />
|-<br />
|<s>Sept 23, 09:50 AM</s><br />
|<s>Seneca Library Room 1131</s><br />
|-<br />
|<s>Sept 30, 09:50 AM</s><br />
|<s>Seneca Library Room 1132</s><br />
|-<br />
|Oct 7, 09:50 AM<br />
|Seneca Library Room 1132<br />
|-<br />
<br />
|}<br />
<br />
== Meeting Log ==<br />
=== Sept 16th Meeting ===<br />
Meeting place : Room 1131, Seneca Library <br />
==== Agenda ====<br />
# Look for the last member <br />
# Brainstorming on our game - share any ideas in mind<br />
# Decide member roles<br />
# How this group will work<br />
# Set regular meeting schedule<br />
## at least once a week<br />
## share each other's timetable<br />
==== Result ====<br />
# Brian joined our group !<br />
# Agreed on David's idea - he will put up more details on wiki page<br />
# Will be decided later<br />
# Work under one trunk<br />
# Regular Meeting Schedule<br />
## in-person meeting<br />
## at Seneca Library - YuJin will book the room every week<br />
## on every Thursday between 9:50am and 11:40am<br />
<br />
<hr/><br />
=== Sept 23th Meeting ===<br />
Meeting place : Room 1132, Seneca Library<br/><br />
Meeting time : 9:50am ~ 11:40am<br />
==== Agenda ====<br />
# Finalize our game proposal<br />
# Divide roles & responsibilities<br />
# Keep updated <br/><br />
## subscribe to team page and course pages<br/><br />
## subscribe by clicking 'watch' of each page menu<br />
# Creating our own private team page ???<br />
##to disclose certain information of our group project ???<br />
<br />
==== Result ====<br />
# Uploaded game proposal - there might be changes in the future<br />
# Will divide roles after having meeting with Chris<br />
# (was just notification)<br />
# (wasn't discussed) <br />
# New meeting schedule<br />
## We will have meetings every Thursday AND Friday<br />
## Will have to figure the exact meeting time soon (for Fridays)<br />
<hr/><br />
=== Sept 30th Meeting ===<br />
Meeting place : Room 1132, Seneca Library<br/><br />
Meeting time : 9:50am ~ 11:40am<br />
==== Agenda ====<br />
# Discuss details on our game proposal<br />
# Divide up roles<br />
==== Result ====<br />
# Updated game proposal<br />
# Initial roles decided<br />
## David - Collision detection<br />
## YuJin - Maze Generator<br />
## Brian - Ship Movement<br />
## Andrew - Path guaranteeing<br />
<br />
<hr/><br />
=== Oct 7th Meeting ===<br />
Meeting place : Room 1132, Seneca Library<br/><br />
Meeting time : 9:50am ~ 11:40am<br />
==== Agenda ====<br />
<br />
==== Result ====<br />
<br />
== Resources ==<br />
[http://zenit.senecac.on.ca/wiki/index.php/Team_Blam-GridCode Simple Grid Code]<br />
<br />
== Useful Links ==<br />
[http://theory.stanford.edu/~amitp/GameProgramming/ Pathfinding Guide]</div>
Yujin.jeong