Pagina 2 di 5 primaprima 1 2 3 4 ... ultimoultimo
Visualizzazione dei risultati da 11 a 20 su 47

Hybrid View

  1. #1
    Quote Originariamente inviata da badaze Visualizza il messaggio
    Anzi. La struttura attuale non va.
    Prima cosa. Non si fa mai un legame tra tabelle con delle descrizioni
    .....
    Se intendevi questo ok, non fa una grinza ed ovviamente concordo in tutto;
    ... ma sono propenso a credere che l'OP abbia volutamente semplificato la struttura
    al solo scopo di concentrarsi sulla query
    :bye:

  2. #2
    Ciao,
    mi scuso che mi stavo perdendo il proseguo di questa discussione (non mi arrivano pi� le notifiche).
    Si pu� dire che sono ricapitato qui solo ora e solo per caso perch� volevo rivedere alcuni passaggi della discussione.
    Anche se la query di sspintux mi ha subito dato i risultati attesi, quella di badaze � pi� concisa.

    Sull'aver usato le tabelle corsi_docenti e corsi_allievi è stata una mia leggerezza aver usato la descrizione del corso anzichè il suo ID. Posso rimediare perchè il progetto è in fase di studio.

    Sulla struttura delle tabelle ha parzialmente ragione.
    Infatti ho le 3 tabelle come da lui suggerito
    La tabella corsi con ID e corso
    La tabella corsi_docenti con ID, corso, id_insegnanti
    La tabella corsi_allievi con ID, corso, id_allievo
    (corso della seconda e terza tabella diventer� id_corso)

    La seconda e terza tabella hanno un ID perchè ogni allievo ed ogni insegnante possono essere interessati a piïù corsi. Piïù insegnanti possono avere lo stesso corso se particolarmente affollato.

    Questo fatto annulla la possibilità di sapere con quale insegnante ciascun allievo è associato. E' importante sapere a quale o quali corsi l'allievo è iscritto.


    Per la Query mi sembra buona e l'ho subito testata, ma non è corretta per la terza colonna.
    Se per la seconda colonna i risultati sono quelli attesi (1 1 1 1 1 2 2 1), la terza colonna ha dei valori non veritieri: mi restituisce 1 1 3 3 0 10 12 3 invece di 1 1 3 3 0 5 6 3.

    Comunque grazie. Aspetto per sapere se la terza colonna può essere aggiustata.


  3. #3
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,373
    @micdas.
    per le tabelle alievi e docenti la chiave puo' essere composta da più di un campo. Per esempio se metti id_allievo e id_corso come chiave univoca non hai bisogno di id.
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  4. #4
    ...
    Per esempio se metti id_allievo e id_corso come chiave univoca non hai bisogno di id.
    ... ti precludi però la possibilità che un allievo possa ripetere un corso
    ( ... ovviamente a meno di aggiungere un altro campo alla PK , tipo anno/semestre del corso)

  5. #5
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,373
    Quote Originariamente inviata da sspintux Visualizza il messaggio
    ... ti precludi però la possibilità che un allievo possa ripetere un corso
    ( ... ovviamente a meno di aggiungere un altro campo alla PK , tipo anno/semestre del corso)
    Anche in questo caso l'id non serve.
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  6. #6
    Ciao badaze

    Sto riprogettando le due tabelle allievi e insegnanti mettendo anzichè la voce l'ID del corso a cui si fa riferimento.
    Dopo di questo come occorre modificare la query per ottenere:
    nome_corso
    tot_allievi_iscritti
    tot_insegnanti_iscritti

    Infatti non capisco come due valorivengono raddoppiati
    Invece di
    Corsi a staff ad allievi
    BATTERIA 1 1
    CHITARRA CLASSICA 1 1
    CHITARRA ELETTRICA 1 3
    CONTRABBASSO 1 3
    EDUCAZIONE MUSICALE 1
    SASSOFONO 2 5
    TROMBA 2 6
    VIOLINO 1 3

    con la tua query ottengo
    Corsi a staff ad allievi
    BATTERIA 1 1
    CHITARRA CLASSICA 1 1
    CHITARRA ELETTRICA 1 3
    CONTRABBASSO 1 3
    EDUCAZIONE MUSICALE 1
    SASSOFONO 2 10
    TROMBA 2 12
    VIOLINO 1 3

    Il primo risultato è quello esatto.
    Se vuoi, visto che i nomi inseriti nelle tabelle sono fittizi, posso allegare i 3 sql relativi alle 3 tabelle in gioco senza violare la privacy degli iscritti memorizzati.

  7. #7
    Ciao badaze

    Sto riprogettando le due tabelle allievi e insegnanti mettendo anzichè la voce l'ID del corso a cui si fa riferimento.
    Dopo di questo come occorre modificare la query per ottenere:
    nome_corso
    tot_allievi_iscritti
    tot_insegnanti_iscritti

    Infatti non capisco come due valorivengono raddoppiati
    Invece di
    Corsi a staff ad allievi
    BATTERIA 1 1
    CHITARRA CLASSICA 1 1
    CHITARRA ELETTRICA 1 3
    CONTRABBASSO 1 3
    EDUCAZIONE MUSICALE 1
    SASSOFONO 2 5
    TROMBA 2 6
    VIOLINO 1 3

    con la tua query ottengo
    Corsi a staff ad allievi
    BATTERIA 1 1
    CHITARRA CLASSICA 1 1
    CHITARRA ELETTRICA 1 3
    CONTRABBASSO 1 3
    EDUCAZIONE MUSICALE 1
    SASSOFONO 2 10
    TROMBA 2 12
    VIOLINO 1 3

    Il primo risultato è quello esatto.
    Se vuoi, visto che i nomi inseriti nelle tabelle sono fittizi, posso allegare i 3 sql relativi alle 3 tabelle in gioco senza violare la privacy degli iscritti memorizzati.

  8. #8
    Ciao badaze http://forum.html.it/forum/images/smilies/ciao.gif

    Sto riprogettando le due tabelle allievi e insegnanti mettendo anzichè la voce l'ID del corso a cui si fa riferimento.
    Dopo di questo come occorre modificare la query per ottenere:
    nome_corso
    tot_allievi_iscritti
    tot_insegnanti_iscritti

    Infatti non capisco come due valorivengono raddoppiati
    Invece di
    Corsi a staff ad allievi
    BATTERIA 1 1
    CHITARRA CLASSICA 1 1
    CHITARRA ELETTRICA 1 3
    CONTRABBASSO 1 3
    EDUCAZIONE MUSICALE 1
    SASSOFONO 2 5
    TROMBA 2 6
    VIOLINO 1 3

    con la tua query ottengo
    Corsi a staff ad allievi
    BATTERIA 1 1
    CHITARRA CLASSICA 1 1
    CHITARRA ELETTRICA 1 3
    CONTRABBASSO 1 3
    EDUCAZIONE MUSICALE 1
    SASSOFONO 2 10
    TROMBA 2 12
    VIOLINO 1 3

    Il primo risultato è quello esatto.
    Se vuoi, visto che i nomi inseriti nelle tabelle sono fittizi, posso allegare i 3 sql relativi alle 3 tabelle in gioco senza violare la privacy degli iscritti memorizzati.

    ciao

  9. #9
    acc
    ho combinato un guaio
    chiedo scusa

  10. #10
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,373
    Secondo me è dovuto al fatto che TROMBA appare 2 volte nella tabella insegnanti (deve essere la stessa cosa per l'altra voce).
    Se crei una tabella "corsi" non avrai più questo problema.

    Select id_corso, desc_corso, sum(case when id_insegnante is null then 0 else 1 end) as tot_ins, sum(case when id_allievo is null then 0 else 1 end) as tot_all
    from corsi C
    left join corsi_docenti D on D.id_corso = C.id_corso
    left join corsi_allievi A on A.id_corso = C.id_corso
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

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