Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2014
    Messaggi
    55

    [Oracle] Query che controlla se due tabelle hanno le stesse righe

    Salve,
    dovrei scrivere una query che faccia la seguente cosa: "si scriva in sql un interrogazione che restituisca coppie di studenti che sono stati iscritti alla stessa laurea e che per ogni anno di iscrizione hanno esattamente la stessa media sugli esami"

    Chiarisco la questione dell'esame perchè potrebbe non essere intuitiva: ogni corso di laurea è composto da esami appartenenti ad un determinato anno (primo, secondo ecc..). La query vuole l'elenco di coppia di studenti appartenenti allo stesso corso di laurea e che, per ogni anno, hanno la stessa media.

    Le tabelle utili sono Studente (che contiene matricola e CorsoLaurea) ed Esame (che contiene il voto e l'anno dell'esame).

    Volevo fare una cosa del genere:
    codice:
    SELECT s1.matr, s2.matr
    FROM studente s1 JOIN studente s2 ON s1.codLaurea = s2.codLaurea //in modo da prendere solo le coppie di studenti che hanno lo stesso CdL
    WHERE NOT EXISTS (SELECT anno, AVG(voto)
                      FROM esami e1
                      WHERE e1.matr = s1.matr AND voto IS NOT NULL
                      GROUP BY anno) INTERSECT (SELECT anno, AVG(voto)
                                                 FROM esami e2
                                                 WHERE e2.matr = s2.matr AND voto IS NOT NULL
                                                 GROUP BY anno);
    Ma ho dei seri dubbi sul fatto che funzioni. Qualcuno ah qualche consiglio sul come svolgere questo tipo di query?

  2. #2
    Utente di HTML.it L'avatar di nman
    Registrato dal
    Jan 2011
    residenza
    Milano
    Messaggi
    1,333
    La tua vista non la ho letta (perche poi mi influenza)


    Immaginiamo che
    - nel anno 3°
    - nel corso di Matematica
    hai 7 studenti con media 28

    cosa fai ?????
    3 coppie e uno studente a caso escluso ????
    (quindi 6 record ???)

    .

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2014
    Messaggi
    55
    Quote Originariamente inviata da nman Visualizza il messaggio
    La tua vista non la ho letta (perche poi mi influenza)


    Immaginiamo che
    - nel anno 3°
    - nel corso di Matematica
    hai 7 studenti con media 28

    cosa fai ?????
    3 coppie e uno studente a caso escluso ????
    (quindi 6 record ???)

    .
    le coppie devono essere elencate solo se i due studenti hanno la stessa media al primo, secondo, terzo ecc... anno in tutti gli anni disponibili (dove non hanno dato esami la media sarà 0 ovviamente).
    immagino che gli elementi delle coppie possano rpetersi (non mi ero mai posto questo problema)...

    per chiarezza posto la traccia completa:
    http://i.imgur.com/5EMmPLd.png
    esercizio 3


    davvero non so dove andare a parare :/

  4. #4
    Utente di HTML.it L'avatar di nman
    Registrato dal
    Jan 2011
    residenza
    Milano
    Messaggi
    1,333
    Quote Originariamente inviata da Lodin Visualizza il messaggio
    ....immagino che gli elementi delle coppie possano rpetersi (non mi ero mai posto questo problema).....
    Mhhhh!!!!
    abbastanza complicato .......

    Nella mia testa ho cancellato la parola "coppie" sostituendola con "gruppi"
    quindi se sono 7 studenti vengono tutti elencati

    Poi mi rendo conto adesso che la media non deve essere uguale nel singolo anno bensi in tutti gli anni (quindi in tutta la carriera scolastica)

    Una soluzione concettualmente semplice ( ma poco professionale )
    potrebbe seerere quella di "estendere" su un unico record gli anni
    e poi beccare i record uguali
    (Gli anni dopo tutto sono un numero fisso e limitato)

    Per altre soluzioni al momento non saprei ........

    Devo andare,
    forse questa sera mi verra una idea migliore

    .

Tag per questa discussione

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 © 2024 vBulletin Solutions, Inc. All rights reserved.