Creacio de funcion

Hola soy nuevo i me hablaron de este foro dicen que lo sabe todo o casi todo no se si esto ira aqui si no me podrian indicar alguna pagina donde ponerlo, gracias.
Hola tengo esta base de datos creada i me gustaria hacer la siguiente funcion

RECUPERACIO DE CURSORS

Si me pudieran decir la funcion

1.- Generar una funcion que muestre por pantalla una tabla que puede ser temporal que muestre el codigo de envio, el valor total de los paquetes de ese envio
i el peso total del envio. El peso maximo de un envio es 100 i cada paquete tiene un peso segun la mida: 2 el pequeño, 12 el mediano y 50 el grande.


Aqui les dejo la informacio --------->

---------------------------------------
BASE DE DATOS
---------------------------------------

create database facturacion;

CREATE TYPE contenidor AS ENUM (
'petit',
'mitja',
'gran');

CREATE TABLE articles (
codi_prod character varying(10),
descripcio text,
cost real,
preu_venta real,
disponible boolean,
stock integer,
tipus_iva integer,
primary key(codi_prod)
);


CREATE TABLE clients (
codi_client character varying(9),
nom_client character varying(100),
direccio character varying(127),
pais character varying(50) DEFAULT 'Espanya',
cp character varying(5),
contacte character varying(100),
telefon integer,
email character varying(127),
paga_a_dies smallint,
data_alta date,
limit_credit integer,
descompte_per_defecte float,
primary key(codi_client)
);


CREATE TABLE factura (
codi_factura serial,
codi_client character varying(9),
data_factura date DEFAULT current_date,
descripcio text,
data_ingres date,
base4 real,
base10 real,
base21 real,
exempt_iva boolean NOT NULL,
percentatge_descompte real,
monto_descompte real,
monto_total real,
venedor character varying(59),
mida_enviament contenidor,
primary key(codi_factura),
foreign key(codi_client) references clients(codi_client)
);



CREATE TABLE compra (
codi_prod character varying(10),
codi_fact integer NOT NULL,
quantitat real,
primary key(codi_prod,codi_fact),
foreign key(codi_prod) references articles(codi_prod),
foreign key(codi_fact) references factura(codi_factura)
);



CREATE TABLE usuaris (
codi_usuari character varying(9) NOT NULL,
nom_usuari character varying(9),
clau character varying(32),
primary key(nom_usuari),
foreign key(codi_usuari) references clients(codi_client)
);

------------------------

Datos de prueva

------------------------

COPY articles (codi_prod, descripcio, cost, preu_venta, disponible, stock, tipus_iva) FROM stdin;
art001 font d'alimentacio 9 15 t 5 21
art002 tarjeta de xarxa 10/100 5.17999983 10 t 10 21
art003 ratoli usb logitech 4.5 6 f 0 21
art004 teclat ps/2 7 10 f 0 21
\.


COPY clients (codi_client, nom_client, direccio, pais, cp, contacte, telefon, email, paga_a_dies, data_alta, limit_credit, descompte_per_defecte) FROM stdin;
12345678A Raquel Sanchez C/Industria 6 \N 08080 RaquelSanchez 930123456 rsan@gmail.com 60 2011-05-22 10000 5
23456789B Ferran Ramirez C/Escorxador 23 Andorra AD400 Ferran Ramirez 376823456 fermi@andorra.ad 0 2010-11-15 6000 0
A34567891 Movistar Paseo de la Castellana 365 Espanya 28080 Francisco Jose Perez 1004 movistar@movistar.es 30 2000-03-10 20000 0
P4305000D Ajuntament Cornudella de Montsant C/Conte de Rius 10 Espanya 43360 Pepita Polvora 977561416 aj.cornudella@altanet.org 270 1999-01-01 2500000 10
\.


COPY usuaris (codi_usuari, nom_usuari, clau) FROM stdin;
12345678A rsanchez rsanchez
23456789B framirez framirez
A34567891 timostar timostar
P4305000D ajcornom ajcornom
\.


COPY factura (codi_factura, codi_client, data_factura, descripcio, data_ingres, base4, base10, base21, exempt_iva, percentatge_descompte, monto_descompte, monto_total, venedor, mida_enviament) FROM stdin;
1 12345678A 2012-08-08 Factura per canvi de varies peces \N \N \N 325 f \N \N 429.549988 Maties petit
2 23456789B 2012-12-28 font d'alimentacio per pujar la tensio \N \N \N 25 f \N \N 30.25 Manel petit
3 A34567891 2012-06-13 Substituci¢ dels equips del departament de recursos humans \N \N \N 41963.5781 f \N \N 50755.9297 Maties gran
4 P4305000D 2012-12-31 Canvi de servidor \N \N \N 555.25 f \N \N 671.25 Manel petit
\.
0 respuestas