Page 1 sur 1

[Mysql] SUM(planetes.u11) + SUM(attaques.u11) == NULL ?

Posté : 17 mars 2006, 22:26
par dark_vidor
Si je fait SUM( planetes.u11 ) tout seul j'obtiens 5
ensuite SUM( attaques.u11 ) tout seul j'ai NULL jusqu'a la c'est bon

mais quand je fait SUM( planetes.u11 ) + SUM( attaques.u11 ) ça me renvoi aussi NULL :?

La requete complete :

Code : Tout sélectionner

$sql = "SELECT ". "(SUM(planetes.u11) + SUM(attaques.u11))*".$$p11." + ". "(SUM(planetes.u12) + SUM(attaques.u12))*".$$p12." + ". "(SUM(planetes.u13) + SUM(attaques.u13))*".$$p13." + ". "(SUM(planetes.u14) + SUM(attaques.u14))*".$$p14." + ". "(SUM(planetes.u15) + SUM(attaques.u15))*".$$p15." + ". "(SUM(planetes.u16) + SUM(attaques.u16))*".$$p16." + ". "(SUM(planetes.u21) + SUM(attaques.u21))*".$$p21." + ". "(SUM(planetes.u31) + SUM(attaques.u21))*".$$p31." + ". "(SUM(planetes.u32) + SUM(attaques.u32))*".$$p32." + ". "(SUM(planetes.u33) + SUM(attaques.u33))*".$$p33." + ". "(SUM(planetes.u41) + SUM(attaques.u41))*".$$p41." + ". "(SUM(planetes.u42) + SUM(attaques.u42))*".$$p42." + ". "(SUM(planetes.u43) + SUM(attaques.u43))*".$$p43." + ". "(SUM(planetes.u44) + SUM(attaques.u44))*".$$p44." ". "FROM planetes, attaques ". "WHERE planetes.players = ".$id." AND attaques.players = ".$id;
ça viens pas des $$p j'ai vérifié :)

Posté : 17 mars 2006, 23:37
par Truc
utilise la fonction IFNULL de mysql

Posté : 18 mars 2006, 16:11
par Hubert Roksor
Ou même COALESCE(), qui devrait être un petit peu plus portable (PostgreSQL, Oracle, probablement SQLite et Firebird):

SUM(COALESCE(champs))

PS: il faudrait que tu te documentes sur la normalisation des données, sinon tes requêtes vont être très compliquées et/ou lentes:
Wikipedia: Database normalization - Intro to Normalization - Wikipédia: Formes normales