Alors merci à vous, la requête s'éxécute merveilleusement bien en moins d'1s après quelques modification :
SELECT t0.article, t0.designation, t0.montant - coalesce(T1.montant, 0) as delta from informations as T0 join informations as T1 on T1.article = t0.article and MONTH(T1.date) = MONTH(DATE_ADD(NOW(), INTERVAL -2 MONTH)) and YEAR(T1.date) = YEAR(DATE_ADD(NOW(), INTERVAL -2 MONTH)) Where t0.date = MONTH(DATE_ADD(NOW(), INTERVAL -1 MONTH)) and YEAR(T0.date) = YEAR(DATE_ADD(NOW(), INTERVAL -1 MONTH)) GROUP BY t0.article ORDER BY delta DESC Limit 20
Dans phpmyadmin la requête fonctionne très bien ! Mais sous PHP c'est la cata, je n'arrive pas à récupérer mes champs !
1 2 3 4 5 6 7 8 9 10
|
$rqSql_delta = "SELECT t0.article, t0.designation, t0.montant - coalesce(T1.montant, 0) as delta from informations as T0 join informations as T1 on T1.article = t0.article and MONTH(T1.date) = MONTH(DATE_ADD(NOW(), INTERVAL -2 MONTH)) and YEAR(T1.date) = YEAR(DATE_ADD(NOW(), INTERVAL -2 MONTH)) Where t0.date = MONTH(DATE_ADD(NOW(), INTERVAL -1 MONTH)) and YEAR(T0.date) = YEAR(DATE_ADD(NOW(), INTERVAL -1 MONTH)) GROUP BY t0.article ORDER BY delta DESC Limit 20";
$result_delta = mysql_query( $rqSql_delta, $idConnect)
or die( "Exécution requête impossible.");
while ( $row_delta = mysql_fetch_array( $result_delta)) {
$article_delta .= $row_delta["article"];
$montant_delta .= $row_delta["delta"];
$designation_delta .= $row_delta["designation"];
} |
Alors après avoir farfouillé sur le net, j'ai vue que mettre des alias pouvait être la solution, malheureusement ça n'a pas fonctionné ( par exemple SELECT t0.article as t0_article et récupérer avec $row_delta["t0_article"]; ).
Sauriez-vous m'éclairer là dessus également ? Merci !
EDIT : Quand je fais
echo mysql_field_name($result_delta, 0);echo mysql_field_name($result_delta, 1);echo mysql_field_name($result_delta, 2);
je retrouve bien les noms : article, delta, designation.
Partager