Problema MySQL
Problema MySQL postato il 25/03/2008 13:16:17 nel forum programmazione, open source e hosting e modificato da gemini il 25/03/2008 13:18:22
Supponiamo di avere una tabella sql organizzata così:
|___NOME_|__VALORE__|
|___PIPPO___|____11_____|
|____QUA___|_____11____|
|___PLUTO__|_____11_____|
|____QUA___|_____10_____|
|___PLUTO__|_____18_____|
|___PIPPO___|____19_____|
|___PIPPO___|____17_____|
|____QUI____|_____15____|
|____QUI____|_____12____|
|____QUI____|_____12____|
|___PLUTO__|_____11_____|
|___PLUTO__|_____11_____|
|____QUO___|_____18_____|
|___PIPPO___|____19_____|
|___PIPPO___|____10_____|
se io volessi tirare fuori una classifica dei primi 3 nomi associati a valori di $R in ordine decrescente (DESC), dove $R=$somma_valori_pippo/$numero_di_pippo
ovvero la somma di tutti i valori associati al nome PIPPO diviso per il numero di volte che il nome PIPPO è presente in tabella, con un'unica query sql, come potrei farlo? ^^"
Pagine → 1
25/03/2008 13:31:39 e modificato da darkside of breakfast il 25/03/2008 13:33:29
boh, invento, tu aggiusta
$Stringa ="SELECT Count(Nome) FROM nometabella WHERE Nome == 'Pippo' ";
$Result = mysql_query($Stringa);
$rs = mysql_fetch_array($Result);
$num = $rs[0];
$rs->close;
mysql_free_result($Result);
$Stringa2 ="SELECT Count(Valore) FROM nometabella WHERE Nome == 'Pippo' ";
$Result2 = mysql_query($Stringa2);
$rs2 = mysql_fetch_array($Result2);
$num2 = $rs2[0];
$rs2->close;
mysql_free_result($Result2);
$R= $num/$num2
Però, effettivamente, non so bene nemmeno io cosa ho scritto.
auhuahua
A parte gli scherzi, ci saranno mille errori di sintassi e di logica, però io lo imposterei così.
(ammesso che io abbia capito cosa tu voglia fare!!!!!)
25/03/2008 13:44:26
darkside of breakfast ha scritto: boh, invento, tu aggiusta
$Stringa ="SELECT Count(Nome) FROM nometabella WHERE Nome == 'Pippo' ";
$Result = mysql_query($Stringa);
$rs = mysql_fetch_array($Result);
$num = $rs[0];
$rs->close;
mysql_free_result($Result);
$Stringa2 ="SELECT Count(Valore) FROM nometabella WHERE Nome == 'Pippo' ";
$Result2 = mysql_query($Stringa2);
$rs2 = mysql_fetch_array($Result2);
$num2 = $rs2[0];
$rs2->close;
mysql_free_result($Result2);
$R= $num/$num2
Però, effettivamente, non so bene nemmeno io cosa ho scritto.
auhuahua
A parte gli scherzi, ci saranno mille errori di sintassi e di logica, però io lo imposterei così.
(ammesso che io abbia capito cosa tu voglia fare!!!!!)
Il codice bene o male dovrebbe andare (ho dato solo un'occhiata veloce). Solo che lui ha chiesto come farlo in un'unica query.
25/03/2008 13:57:13
Infatti; in breve l'iter che la query dovrebbe seguire è il seguente:
-->Sommare tutti i VALORI corrispondenti allo stesso NOME
-->Dividerli per il numero di volte che il NOME compare
-->Ordinare i risultati ottenuti dal più piccolo al più grande
-->Mostrare il NOME dei primi 3 risultati ottenuti.
In quest'ottica fare una richiesta per nome (Es. PIPPO) non avrebbe molto senso. ^^"
25/03/2008 16:21:06
Si, è perfetto grazie ^^
25/03/2008 16:24:57
Non avevo capito e non lo avrei saputo fare comunque :-(
Pagine → 1
Rispondi alla Discussione Segui Discussione Inoltra Discussione Forum Programmazione, Open Source e Hosting Elenco Forum
Articoli, Interviste e altre Risorse!
Imperion ↗
AlterEgo ↗
The Coven ↗
Neverness to Everness ↗
Cafuné ↗