[ marko v @ 02.06.2007. 09:41 ] @
Recimo da imamo 3 tabele Naslov (id_naslova,naziv,.....), Posudba (Id_posudbe,datum,....) i StavkePosudbe(id_posudbe,
redni_broj_stavke, id_naslova,...) kako napraviti upit kojim bi dobili top listu naslova, koliko je puta svaki naslov posudjen u odredjenom periodu. Nisam neki sql majstor pa bih molio barem da me netko usmjeri u kom pravcu da razmisljam.
[ goranvuc @ 02.06.2007. 09:50 ] @
Evo ti link na puno komplikovaniji slucaj, ako se ne snadjes javi ...

http://www.elitesecurity.org/t245433
[ Miloš Baić @ 02.06.2007. 11:19 ] @
Code:

create table naslov (
 id_naslov integer not null,
 naziv varchar(15),

constraint pk_naslov primary key (id_naslov)
);

create table iznajmljivanje (
 id_iznajmljivanje integer not null,
 datum date,

constraint pk_iznaj primary key (id_iznajmljivanje)
);

create table stavke (
 id_iznajmljivanje integer not null,
 redni_broj integer not null,
 id_naslov integer not null, 

constraint pk_stavke primary key (id_iznajmljivanje, redni_broj, id_naslov),
constraint fk_stavke foreign key (id_iznajmljivanje)
 references  iznajmljivanje (id_iznajmljivanje)
 on delete restrict on update cascade
);

insert into naslov values (1, 'Kuca');
insert into naslov values (2, 'Kola');
insert into naslov values (3, 'Kisa');
insert into naslov values (4, 'Prodavnica');
insert into naslov values (5, 'Mleko');
insert into naslov values (6, 'Makarone');

insert into iznajmljivanje values (1, '2007-02-10');
insert into iznajmljivanje values (2, '2007-03-22');
insert into iznajmljivanje values (3, '2007-04-01');
insert into iznajmljivanje values (4, '2007-03-10');
insert into iznajmljivanje values (5, '2007-04-22');
insert into iznajmljivanje values (6, '2007-05-01');

insert into stavke values (1, 1, 1);
insert into stavke values (1, 2, 3);
insert into stavke values (2, 1, 2);
insert into stavke values (2, 2, 1);
insert into stavke values (2, 3, 3);
insert into stavke values (3, 1, 2);
insert into stavke values (3, 2, 1);
insert into stavke values (3, 3, 3);
insert into stavke values (4, 1, 5);
insert into stavke values (4, 2, 6);
insert into stavke values (5, 1, 4);
insert into stavke values (5, 2, 6);
insert into stavke values (5, 3, 5);
insert into stavke values (6, 1, 4);
insert into stavke values (6, 2, 5);

SQL upit:
Code:

select n.naziv,count(s.id_naslov) as broj
from stavke s
 left join naslov n
  on s.id_naslov = n.id_naslov
group by n.naziv
order by broj desc

Testirano na PostgreSQL 8.2. Primer je urađen na brzinu, možda ima logičkih grešaka, ali suština je u funkciji "count" i "group by" klauzuli.
[ marko v @ 02.06.2007. 11:52 ] @
Obojici zahvaljujem na pomoci. COUNT i GROUP BY odradjuju posao savrseno