Calcolo differenza valori provenienti da una tabella

  • Creatore Discussione Creatore Discussione Garaux
  • Data di inizio Data di inizio

Garaux

Utente Attivo
24 Feb 2013
50
0
0
Ciao,
ho un quesito da porre.
All'interno di una tabella ho dei dati inerenti alle prestazioni di un giocatore in cui inserisco la data in cui ha giocato, il risultato e i gol segnati. Non si tratta di un calciatore ma di un cecista, per cui i canestri possono essere maggiori di 10 etc.
Ora...cio' che voglio ottenere è di visualizzare la differenza canestri in base alla partita precedente.
Ciò che vorrei mostrare è questo:


[table="width: 500"]
[tr]
[td]Data[/td]
[td]Canestri effettuati[/td]
[td]Diff[/td]

[/tr]
[tr]
[td]28.10.2014[/td]
[td]12[/td]
[td]=[/td]

[/tr]


[tr]
[td]21.10.2014[/td]
[td]12[/td]
[td]-6[/td]

[/tr]



[tr]
[td]14.10.2014[/td]
[td]18[/td]
[td]+10[/td]

[/tr]

[tr]
[td]07.10.2014[/td]
[td]8[/td]
[td]=[/td]

[/tr]



[/table]

Nella prima partita la diff è = visto che non ha giocato partite precedenti. Poi - e + se i canestri sono diminuiti o aumentati nelle partite successive.
Ho provato a ottenere il risultato con PHP, ma mi sono incartato per cui ho provato con questa select:

PHP:
$sql ="select *, coalesce
 ( (SELECT concat(IF(t1.pl_scored_goal>t2.pl_scored_goal,'+',''),(t1.pl_scored_goal-t2.pl_scored_goal)) 
FROM hb_games t2 
WHERE t2.pl_date_game<t1.pl_date_game AND playerID = 240 
ORDER BY t2.pl_date_game DESC LIMIT 1) , '=' ) as diff 
FROM hb_games t1 WHERE 1 AND playerID = 240 order by t1.pl_date_game DESC" ;


La query funziona ma appena inizio a modificare qualcosa va in panne, per cui credo che non sia abbastanza robusta.

Le date sono racchiuse all'interno della colonna pl_date_game, mentre i canestri nella colonna pl_scored_goal.
Sapreste darmi una mano ad ottenere quanto desiderato attraverso PHP e MySQL?

Grazie
 

Discussioni simili