Affichage d'un tableau avec 2 requêtes différente

Résolu
Bonjour,

Je souhaite afficher un tableau des dépense publique par bordereau , j'aimerais donc afficher une colonne qui contient le montant du présent bordereau , ex : n°10, et une autre colonne qui affiche le totale des bordereaux antérieurs , ex : de 1 à 9.
voila mon code : 
$reqtt = $db->query('SELECT article, chapitre, date,  SUM(montant) AS parchapitre FROM depense WHERE num_borde = "'.$num_borde.'" GROUP BY chapitre, article ');
   while( $resultt = $reqtt->fetch()){
             
     echo '<tr>';    
   echo '<td>'.$resultt['chapitre'].' </td>';
   echo '<td>'.$resultt['article'].'</td>'; 
    echo '<td>'.number_format($resultt['parchapitre'],2).'</td>';
      echo '<td>'.$resultt['date'].'</td>';
       }
     $reqtt2 = $db->query('SELECT article, chapitre, date,  SUM(montant) AS anterieur FROM depense WHERE num_borde < "'.$num_borde.'" GROUP BY chapitre, article ');  
        while( $resultt2 = $reqtt2->fetch()){ 
          echo '<td>'.number_format($resultt2['anterieur'],2).' </td>'; 
            echo '</tr>';
        }

mais sa marche pas .
ce que je veux , c'est soit afficher les deux résultat avec une seule requête (c'est bcp mieux), soit , j'affiche un tableau avec deux requête différente.
voilà ce que ça donne , et je veux mettre les cellules souligné en rouge, à la place de la flèche

merci.

2 réponses

  1. Modérateur
    Bonjour,

    Un truc du genre peut-être
    $sql = "SELECT Q.article
                  , Q.chapitre
                  , Q.date  
                  ,SUM(Q.montant_actuel) AS  parchapitre
                  ,SUM(Q.montant_prec) AS anterieur 
            FROM (
              SELECT article
                    , chapitre
                    , date  
                    ,IF(num_borde = '$num_borde', montant,0 ) as montant_actuel
                    ,IF(num_borde < '$num_borde', montant,0 ) as montant_prec
              FROM depense 
             ) Q
             WHERE Q.num_borde <= '$num_borde' 
              GROUP BY Q.chapitre, Q.article ";
    

    Cordialement, 
    Jordane                                                                 
    0
    1. Bonjour ,
      merci de me répondre ,
      la lettre Q correspond bien au nom de la table ?
      et comment boucler sur cette requête ?
      0
    2. Modérateur
      @salim_1305La table "dérivée" que j'ai créé pour la sous-requête.
      J'ai mis une lettre au pif .. on aurait pu l’appeler "toto" ou "truc" ... ça aurait fait pareil :-)
      0
    3. @jordane45ah je comprend , je test tt de suite
      merci d'avoir pris le temps
      0
    4. @jordane45sa marche pas
      Column not found: 1054 Champ 'Q.num_borde' inconnu dans where clause'
      0
    5. Modérateur
      @salim_1305Ah oui
      Faut rajouter la colonne num_borde dans le sous select
      0
  2. pour ceux que sa intéresse j'ai résolu mon probleme :
    SELECT SUM(IF(num_borde = "'.$num_borde.'",montant,0)) AS present,  
           SUM(IF(num_borde < "'.$num_borde.'",montant,0)) AS anterieur,
           article, chapitre, num_borde, date
    FROM depense GROUP BY chapitre, article
    
    0