--drop table emp; --drop table dept; --drop function low_high_salaries; create table dept( deptno integer, dname varchar(20), loc varchar(20), constraint pk_dept primary key (deptno) ); create table emp( empno integer, ename varchar(10), job varchar(9), mgr integer, hiredate date, sal integer, comm integer, deptno integer, constraint pk_emp primary key (empno), constraint fk_deptno foreign key (deptno) references dept (deptno) ); insert into dept values(10, 'ACCOUNTING', 'NEW YORK') ; insert into dept values(20, 'RESEARCH', 'DALLAS') ; insert into dept values(30, 'SALES', 'CHICAGO') ; insert into dept values(40, 'OPERATIONS', 'BOSTON') ; commit; insert into emp values( 7839, 'KING', 'PRESIDENT', null, to_date('17-11-1981','dd-mm-yyyy'), 5000, null, 10 ); insert into emp values( 7698, 'BLAKE', 'MANAGER', 7839, to_date('1-5-1981','dd-mm-yyyy'), 2850, null, 30 ); insert into emp values( 7782, 'CLARK', 'MANAGER', 7839, to_date('9-6-1981','dd-mm-yyyy'), 2450, null, 10 ); insert into emp values( 7566, 'JONES', 'MANAGER', 7839, to_date('2-4-1981','dd-mm-yyyy'), 2975, null, 20 ); insert into emp values( 7788, 'SCOTT', 'ANALYST', 7566, to_date('13-7-87','dd-mm-rr'), 3000, null, 20 ); insert into emp values( 7902, 'FORD', 'ANALYST', 7566, to_date('3-12-1981','dd-mm-yyyy'), 3000, null, 20 ); insert into emp values( 7369, 'SMITH', 'CLERK', 7902, to_date('17-12-1980','dd-mm-yyyy'), 800, null, 20 ); insert into emp values( 7499, 'ALLEN', 'SALESMAN', 7698, to_date('20-2-1981','dd-mm-yyyy'), 1600, 300, 30 ); insert into emp values( 7521, 'WARD', 'SALESMAN', 7698, to_date('22-2-1981','dd-mm-yyyy'), 1250, 500, 30 ); insert into emp values( 7654, 'MARTIN', 'SALESMAN', 7698, to_date('28-9-1981','dd-mm-yyyy'), 1250, 1400, 30 ); insert into emp values( 7844, 'TURNER', 'SALESMAN', 7698, to_date('8-9-1981','dd-mm-yyyy'), 1500, 0, 30 ); insert into emp values( 7876, 'ADAMS', 'CLERK', 7788, to_date('13-7-87', 'dd-mm-rr') - 51, 1100, null, 20 ); insert into emp values( 7900, 'JAMES', 'CLERK', 7698, to_date('3-12-1981','dd-mm-yyyy'), 950, null, 30 ); insert into emp values( 7934, 'MILLER', 'CLERK', 7782, to_date('23-1-1982','dd-mm-yyyy'), 1300, null, 10 ); commit; CREATE OR REPLACE FUNCTION low_high_salaries (dpet_id integer) RETURNS TABLE(low_sal INTEGER, high_sal INTEGER) AS $$ BEGIN RETURN QUERY select min(sal) as minsal, max(sal) as maxsal from emp where deptno = dpet_id; END; $$ LANGUAGE plpgsql; SELECT * FROM emp; SELECT * FROM dept; select * from low_high_salaries(20);