w3resource

PL/SQL Cursor Exercises: Display the number of employees by month. Print number of employees by month

PL/SQL Cursor: Exercise-38 with Solution

Write a PL/SQL block to display the number of employees by month. Print number of employees by month.

Sample Solution:

Table: employees

employee_id		integer
first_name		varchar(25)
last_name		varchar(25)
email			archar(25)
phone_number		varchar(15)
hire_date		date
job_id			varchar(25)
salary			integer
commission_pct		decimal(5,2)
manager_id		integer
department_id		integer

PL/SQL Code:

DECLARE
    st_month NUMBER(2) := 1;
    no_o_emp NUMBER(3);
BEGIN
    dbms_output.Put_line(Rpad('Month No', 20)
                         ||Rpad('Month Name', 20)
                         || 'Number of Employees');
dbms_output.Put_line('-------------------------------------------------------------');

FOR month IN 1 .. 12 LOOP
    SELECT Count(*)
    INTO   no_o_emp
    FROM   employees
    WHERE  To_char(hire_date, 'mm') = month;

    dbms_output.Put_line(Rpad(To_char(month, '00'), 20)
                         ||Rpad(To_char(To_date(month, 'MM'), 'MONTH'), 20)
                         || To_char(no_o_emp, '999'));
END LOOP;
END; 
/

Sample Output:

SQL> /
Month No            Month Name          Number of Employees
-----------------------------------------------------------
01                 JANUARY               14
02                 FEBRUARY              13
03                 MARCH                 17
04                 APRIL                  7
05                 MAY                    6
06                 JUNE                  11
07                 JULY                   7
08                 AUGUST                 9
09                 SEPTEMBER              5
10                 OCTOBER                6
11                 NOVEMBER               5
12                 DECEMBER               7

PL/SQL procedure successfully completed.

Flowchart:

Flowchart: PL/SQL Cursor Exercises - Display the number of employees by month. Print number of employees by month

Improve this sample solution and post your code through Disqus

Previous: Write a PL/SQL block to display the last name, first name and overpaid amount by using parameters.
Next: Write a PL/SQL block to display the last name of manager, and their departments for a particular city, using parameters with a default value in explicit cursor.

What is the difficulty level of this exercise?



Become a Patron!

Follow us on Facebook and Twitter for latest update.

It will be nice if you may share this link in any developer community or anywhere else, from where other developers may find this content. Thanks.

https://w3resource.com/plsql-exercises/cursor/plsql-cursor-exercise-38.php