PDA

Visualizza la versione completa : (SQL) valore percentuale su un gruppo


nordavind
24-01-2005, 13:01
dunque vi illustro completamente il mio problema:
il database il seguente:
CASEEDITRICI (CodCasa, Nome, Indirizzo)
RIVISTE (CodRivista, Nome, CodCasa, CodGenere, CostoUnitario, CostoAbbonamenti)
GENERI (CodGenere, Descrizione)
CLIENTI (CodCliente, Descrizione)
ABBONAMENTI (CodAbbonamento, CodRivista, CodCliente, DataScaenza)

la richiesta della query :
Dato un certo genere inserito da tastiera, visualizzare l'elenco complessivo delle riviste che trattano quel genere, riportando per ciascuna la percentuale di abbonamenti rispetto al totale degli abbonamenti alle riviste di quel genere (ad esempio, considerando riviste di informatica, si pu avere che il 55% degli abbonamenti a riviste di informatica sono relativi alla RIVISTA_A, il 35% alla RIVISTA_B, il 10% alla RIVISTA_C.

sto sclerando per scuola e non ho idea di come farlo.
:nonono:
:messner: :dh: :dh: :dh: :dh: :messner:

perzem
24-01-2005, 19:57
se lo vuoi strutturare su pi query puoi fare cos:
con la prima query ottieni tutte le riviste che trattano un argomento.
poi con ogni rivista interroghi il gli abbonamenti ed hai l'elenco dei clienti abbonati che verrano poi divisi per il totale dei clienti.

sql un po che non lo macino quindi di pi non posso fare

perzem
24-01-2005, 20:36
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

Loading