Sie sind auf Seite 1von 5

Assignment I

Oracle Lab Exercise for Day 3, 4 and 5


1. For each employee, display the employee number, last_name, salary, and salary
increased by 15% and expressed as a whole number. Label the column New Salary.

2.Modify above query to add a column that subtracts the old salary from the new salary.
Label the column Increase

3.For each employee, display the employees last name, and calculate the number of
months between today and the date the employee was hired. Label the column
MONTHS_WORKED. Order your results by the number of months employed. Round the number of
months up to the closest whole number.

4.Create a query that displays employee last names, department numbers, and all the
employees who work in the same department as a given employee. Give each column an
appropriate label.
5. Display the names and hire dates for all employees who were hired before their
managers, along with their managers names and hire dates. Label the columns Employee,
Emp Hired, Manager, and Mgr Hired, respectively.
6. Write a query to display each departments name, location, number of employees, and
the average salary for all employees in that department. Label the columns Name,
Location, Number of People, and Salary, respectively. Round the average salary to two
decimal places.

7. Create a query to display the employee numbers and last names of all employees who
earn more than the average salary. Sort the results in ascending order of salary

Assignment II
Read and understand the following table structures. The 5 questions given in this paper are based on these
table structures.
TAB1: ITEM
Item_No
Item_Description
Item_Group
Item_Family
Item_Unit_Of_Measure
Item_Unit_Price

Number(5)
Varchar2(50)
Varchar2(10)
Varchar2(20)
Varchar2(5)
Number

Not Null (Pk),


Not Null,
Not Null,
Not Null,
Not Null,
Not Null

Sample Data for ITEM:


ITEM_NO
ITEM_DESCRIPTION
ITEM_GROUP
ITEM_FAMILY
ITEM_UNIT_OF_MEASURE
ITEM_UNIT_PRICE
---------------------- ----------------------------------------------------1
CHIPS
SNACKS
FOOD
KG
2
CLINIC PLUS
SHAMPOO
TOILETRIES
PACK
3
COCA COLA
BEVERAGE
FOOD
BOTL
4
SURF EXCEL
DETERGENT
HOUSEHOLD
PACK
5
OLD SPICE
AFTERSHAVE
TOILETRIES
BOTL
TAB2: Geography
Loctaion_Id
Sub_Region
Region

Varchar2(5)
Varchar2(10)
Varchar2(10)

Sample Data for GEOGRAPHY:


LOCATION_ID
SUB_REGION
-------------------1
BARODA
2
CHENNAI
3
CALCUTTA
4
MUMBAI
5
BANGALORE
6
DELHI
7
SIMLA
8
GUWAHATI
9
HYDERABAD
10
PUNE

Not Null (Pk),


Not Null,
Not Null
REGION
-----WEST
SOUTH
EAST
WEST
SOUTH
NORTH
NORTH
EAST
SOUTH
WEST

40
97
15
45
50

TAB3: FISCAL_CALENDAR
Fiscal_Date
Date
Fiscal_Week
Number
Fiscal_Month
Number
Fiscal_Qtr
Number
Fiscal_Year
Number

Not Null (Pk),


Not Null,
Not Null,
Not Null,
Not Null

Sample data for FISCAL_CALENDAR:


FISCAL_DATE
FISCAL_WEEK
-------------------------------01-JAN-05
1
01-FEB-05
5
01-APR-05
14

FISCAL_MONTH FISCAL_QTR
-------------------1
1
2
1
4
2

TAB4: PRODUCTION_DATA
Start_Date
Date
End_Date
Date
Location_Id
Varchar2(5)
Item_No
Number(5)
Production_Qty
Number

Not Null,
Not Null,
Not Null (Pk),
Not Null (Pk),
Not Null

Sample data for PRODUCTION_DATA:


START_DATE
END_DATE LOCATION_ID
--------------------------01-JAN-05
31-MAR-05
1
01-JAN-05
31-MAR-05
2

ITEM_NO
------1
1

TAB5: PRODUCTION_MASTER
Production_Date
Date
Location_Id
Varchar2(5)
Item_No
Number(5)
Production_Qty
Number

Not Null,
Not Null (Pk),
Not Null (Pk),
Not Null

TAB6: CUSTOMER_MASTER
Cust_Id
Number(5)
Cust_Name
Varchar2(50)
Cust_Location
Varchar2(10)

Not Null (Pk),


Not Null,
Not Null (Fk),

TAB7: ORDER_HEADER
Order_Id
Number(5)
Order_Dt
Date
Order_Cust_Id
Number(5)

Not Null (Pk),


Not Null,
Not Null

TAB8: ORDER_DETAIL
Order_Id
Item_No
Order_Qty

Not Null (Pk),


Not Null (Pk),
Not Null

Number (5)
Number(5)
Number (5)

FISCAL_YEAR
2005
2005
2005

PRODUCTION_QTY
-------------180
90

Q1: Write sql to generate the total cost of all the item groups produced by region. Expected sample output is
given below:
REGION
ITEM_GROUP
TOTAL COST
-----------------------WEST
SNACKS
7200
SOUTH
SNACKS
3600
.....
.......... ....
NOTE: THE TOTAL COST IN THIS EXAMPLE IS THE (PRODUCTION_QTY * ITEM_UNIT_COST)
Q2: Write sql to generate the sales report by customer. Expected output is as follows:
CUST_NAME
------------

ITEM_NAME
-----

TOTAL_COST
----------

NOTE: THE TOTAL COST IN THIS EXAMPLE IS THE (ORDER_QTY * ITEM_UNIT_COST)


Q3: Generate an order report as follows:
ORDER_ID CUST_NAME
ITEM_NAME
QTY TOTAL_COST
-------- ---------------------------NOTE:
1. THE TOTAL COST IN THIS EXAMPLE IS THE (ORDER_QTY * ITEM_UNIT_COST).
2. THE REPORT SHOULD ALSO INCLUDE ORDERS FOR WHICH THERE ARE ONLY RECORDS IN
ORDER_HEADERS, BUT NO RECORDS IN ORDER_DETAIL TABLE. IN THIS CASE THE
ITEM_NAME, QTY AND TOTAL_COST COLUMNS SHOULD BE BLANK
Q4: GENERATE A QUARTERLY, SUB-REGIONWISE PRODUCTION REPORT. EXPECTED OUTPUT:
FISCAL_QTR
SUB_REGION
PRODUCTION_QTY
------------------------------Q5: GENERATE A PRODUCTION VS. SALES REPORT BY REGION. EXPECTED OUTPUT:
REGION
------

ITEM_NAME
PRODUCTION_QTY
------------------------------

SALES_QTY

NOTE: THE REPORT SHOULD INCLUDE REGIONS FOR WHICH THERE IS ONLY PRODUCTION
& NO SALES AND REGIONS WHICH ONLY HAS SALES BUT NO PRODUCTION
Q6: GENERATE LIST OF ITEMS, WHOSE TOTAL ORDER QTY LAST YEAR IS LESS THAN THE
TOTAL ORDER QTY THIS YEAR.
NOTE: DO NOT HARDCODE 2004 OR 2005 IN THE QUERY. LAST YEAR AND CURRENT YEAR
SHOULD BE POPULATED USING SYSDATE
Q7: WRITE AN SQL TO GENERATE THE DAILY PRODUCTION INFORMATION FROM THE
PRODUCTION_DATA TABLE:
PRODUCTION_DATE
LOCATION_NAME ITEM_NAME
DAILY_PRODUCTION_QTY

--------------01-JAN-05
02-JAN-05
03-JAN-05
.........
31-MAR-05
01-JAN-05
02-JAN-05
03-JAN-05
.........
31-MAR-05

------------BARODA
BARODA
BARODA
.......
BARODA
CHENNAI
CHENNAI
CHENNAI
.......
CHENNAI

--------CHIPS
CHIPS
CHIPS
......
CHIPS
CHIPS
CHIPS
CHIPS
......
CHIPS

-----

--------------2
2
2
..
2
1
1
1
..
1

NOTE: THE DAILY_PRODUCTION_QTY IS GENERATED BY CALCULATING THE NO OF DAYS


BETWEEN START_DATE AND END_DATE IN PRODUCTION_DATA TABLE AND DIVIDING THE
PRODUCTION QUANTITY BY THE NUMBER OF DAYS
HINT: JOIN WITH FISCAL_CALENDAR TABLE TO IMPLEMENT THE ABOVE CALCULATION
Q8: WRITE A FUNCTION TO ACCEPT AN ITEM NUMBER. BASED ON THE ITEM NUMBER THE
OUTPUT SHOULD BE AS FOLLOWS:
ITEM NAME:
QTY PRODUCED TILL DATE:
QTY ORDERED TILL DATE:
TOTAL NUMBER OF ORDERS WHICH HAS THIS ITEM:
TOTAL NUMBER OF DISTINCT CUSTOMERS WHO ORDERED THIS ITEM:
Q9: Write a plsql procedure to convert and insert the data from production_data table to production_master
table. In case, there are zero records inserted into the production_master table, the plsql should generate a
message "data load unsuccessful". Else it should generate "data load successful".
HINT: REUSE THE SQL GENERATED IN Q5 FOR THIS PURPOSE.
Q10: The procedure in Q9 is to convert 'all' the data from production_data to production_master table. The
requirement has changed slightly and we now need to automatically insert the converted record into
production_master table as soon as a record is inserted into production_data table. Implement this using a
suitable database trigger.

Das könnte Ihnen auch gefallen