Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    (SQL) valore percentuale su un gruppo

    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.


  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2004
    Messaggi
    724
    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

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2004
    Messaggi
    724
    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

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.