phpBB Italia chiude!
phpBB Italia ringrazia tutti gli utenti che hanno dato fiducia al nostro progetto per ben 9 anni, e che, grazie al grande lavoro fatto da tutto lo Staff (rigorosamente a titolo gratuito), hanno portato il portale a diventare il principale punto di riferimento italiano alla piattaforma phpBB.

Purtroppo, causa motivi personali, non ho più modo di gestirlo e portarlo avanti. Il forum viene ora posto in uno stato di sola lettura, nonché un archivio storico per permettere a chiunque di fruire di tutte le discussioni trattate.

Il nuovo portale di assistenza per l'Italia di phpBB diventa phpBB-Store.it, cui ringrazio per aver deciso di portare avanti questo grande progetto.

Grazie ancora,
Carlo - Amministratore di phpBB Italia

Mysql funzione INSERT con subquery ramificata

Area di discussione relativa al linguaggio di programmazione web più conosciuto. Il forum è dedicato anche a MySQL, la piattaforma di database più utilizzata con il PHP.
Rispondi
robce64
Utente
Utente
Messaggi: 2
Iscritto il: 29/01/2013, 19:04
Sesso: Maschio
Server: Windows
PHP: 5.4.6
Database: Mysql 5.5.27

Mysql funzione INSERT con subquery ramificata

Messaggio da robce64 » 30/01/2013, 15:01

Salve a tutti, premetto che non sono esperto di sql, stò realizzando un grosso database con mysql che collego a libreoffice, vi chiedo se qualcuno può gentilmente darmi una mano per un grosso problema che no riesco a risolvere.

Io vorrei fare questo... semplificando il concetto, ho due tabelle:

CORSO_SCOLASTICO_ALUNNO

con i seguenti campi

id_corso_scolastico (chiave primaria autoincrementante)
id_alunno
id_data_anno
Classe
Sezione


SCRUTINI

con questi campi:

id_scrutinio (chiave primaria)
id_corso_scolastico
promosso
data_scrutinio


Io vorrei dare una istruzione dove mi si vada cercare nella tabella SCRUTINI gli id_anno_scolastico che hanno l'anno della data_scrutinio uguale all'anno corrente, tra questi chi nel campo promosso ha valore "si" ed infine chi tra questi ha il valore della Classe < di 3, quindi inserire gli id_alunno relativi ad ogni corso scolastico trovato, nella tabella CORSO SCOLASTICO ALUNNO, oltre all'id_alunno mi dovrà anche inserire l'id_data_anno aumentato di 1, la Classe aumentata di 1 e la stessa Sezione.

L'Sql che avevo provato io era questa:

Codice: Seleziona tutto

 INSERT INTO corso_scolastico_alunno (id_alunno, id_data_anno, Classe, Sezione) SELECT id_alunno, id_data_anno+1, Classe+1, Sezione FROM corso_scolastico_alunno WHERE Classe < '3' AND id_alunno IN (SELECT id_corso_scolastico FROM scrutini WHERE promosso = 'si' AND id_data_anno IN (SELECT id_data_anno FROM date_anni WHERE YEAR( data_scrutinio ) = YEAR( CURRENT_DATE )))
però non mi funziona... ma io in sql non sono tanto esperto... c'è qualche anima buona che mi può aiutare? Se riesco a risolvere questo problema mi si spianerebbe di parecchio la strada per il database che stò realizzando....
Se non si capisse da quello che ho messo sopra, detto in parole povere io vorrei fare la ricerca di chi ha dato l'esame nell'anno corrente, poi trovare chi è stato promosso e tra tutti questi chi faceva la prima e la seconda classe, poi questi valori andrebbero a popolare la tabella del corso scolastico relativo all'anno prossimo (ecco perchè andrebbe messo id_data_anno +1), con il valore della Classe aumentato di uno (se faceva la 1 andra in 2 ecco perchè Classe +1) mentre la sezione sara riportata pari pari (se faceva la sezione A farà ancora la sezione A)
In pratica se un Alunno nel 2013 fa il corso scolastico con classe 1, sezione C, se verrà promosso il corso scolastico l'anno prossimo dovrà riportare anno 2014, classe 2, sezione C.
Linserimento dei nuovi corsi per i promossi dovranno riguardare chiaramente le classi 1 e 2 perchè i promossi delle classi 3 non faranno più la scuola media e quindi nessun nuovo corso scolastico ma andranno alle superiori.

Riuscite a darmi una mano in questa cosa? Pleaseeeee :-)

robce64
Utente
Utente
Messaggi: 2
Iscritto il: 29/01/2013, 19:04
Sesso: Maschio
Server: Windows
PHP: 5.4.6
Database: Mysql 5.5.27

Sisolto - Mysql funzione INSERT con subquery ramificata

Messaggio da robce64 » 31/01/2013, 16:28

Scusate, ho trovato l'errore in una relazione errata delle tabelle.... ora funziona tutto l'sql e quindi con mysql è possibile realizzare funzioni INSERT che contengono subquery nidificate!

Rispondi

Torna a “PHP - MySQL”

Chi c’è in linea

Visitano il forum: Nessuno e 43 ospiti