ho fatto un giretto e credo tu debba creare una maschera e poi applicare la query:


SELECT nomerivista FROM riviste WHERE (((codgenere) IN (SELECT codgenere FROM generi WHERE descrizione=inputtastiera))

adesso hai tutte le riviste per genere

SELECT count(codcliente) FROM abbonamenti WHERE codrivista IN (SELECT codrivista FROM riviste WHERE codgenere IN (SELECT codgenere FROM generi WHERE descrizione=inputtastiera))))

così hai il numero di clienti per rivista

select count(codcliente) FROM abbonamenti WHERE codrivista IN
(SELECT codrivista FROM riviste WHERE codgenere =inputtastiera)

ora hai tutti i clienti per genere
devi fare solo la divisione tra i due dati.

forse è meglio se registri i dati parziali e totale dei clienti in una tabella così dopo puoi fare

SELECT clietiperrivista/clienti per genere FROM nometabelle


prova non ti assicuro niente