Salve,
ho ancora problemi a formulare query:

ho due tabelle:
manager e aziende
manag ha manag.id e aziendaid (di collegamento)
e azi ha azi.id e azi.settori

dunque, se faccio
codice:
select distinct settori, count(*) as c from azi where ( settori !='' ) group by settori order by c desc;
tutto ok, escono i settori con accanto il contatore

ma se voglio contare i manager raggruppandoli per categoria, quando formulo la query escono fuori comunque il numero delle aziende!
Ho provato sia con:
codice:
select distinct settori, count(*) as c
from manag
inner join azi ON ( manag.id_azienda = azi.ID ) where ( settori !='' )
group by settori
order by c desc
e sia invertendo l'inner join e il from, ma il risultato è indifferente.

L'unica soluzione funzionante che mi è venuta in mente è quella di usare una tabella temporanea per appoggiare i dati e poi contarli, ma mi chiedevo se si potesse fare tutto con una query

Per farvi capire meglio come sono fatte le tabelle ecco l'sql che le crea:
codice:
CREATE TABLE `azi` (
  `id` INTEGER(11) UNSIGNED NOT NULL AUTO_INCREMENT,
  `nome` VARCHAR(255) NOT NULL,
  `settori` VARCHAR(255) NOT NULL,
  PRIMARY KEY (`id`)
);

COMMIT;

INSERT INTO `azi` (`id`, `nome`, `settore`) VALUES 
  (1,'società1','1'),
  (2,'società2','1'),
  (3,'società3','2'),
  (4,'società4','3'),
  (5,'società5','4'),
  (6,'società6','4'),
  (7,'società7','4'),
  (8,'società8','2');

CREATE TABLE `manag` (
  `id` INTEGER(11) UNSIGNED NOT NULL AUTO_INCREMENT,
  `id_azienda` INTEGER(11) NOT NULL DEFAULT '0',
  `nome` VARCHAR(255) NOT NULL,
  PRIMARY KEY (`id`)
);

COMMIT;

INSERT INTO `manag` (`id`, `id_azienda`, `nome`) VALUES 
  (1,1,'tizio'),
  (2,1,'caio'),
  (3,1,'sempronio'),
  (4,2,'asdrubale'),
  (5,2,'fagiano'),
  (6,3,'elagabalo'),
  (7,3,'io'),
  (8,4,'tu'),
  (9,4,'lui'),
  (10,5,'noi'),
  (11,6,'voi'),
  (12,7,'essi'),
  (13,7,'loro'),
  (14,8,'boh');