[PHP-mySql] requête imbriquée

raditz Messages postés 17 Statut Membre -  
raditz Messages postés 17 Statut Membre -
Bonjour à tous,
je me casse la tête sur la requête suivante :

J'ai une table ce_lqdj_pts avec les champs : lp_id (auto increment, primaire), lp_uid (id user), lp_pts (nombre de point par journée).
Pour obtenir le nombre de points cumulés lors de la derniere journée et créer un classement, pas de soucis :

$sql_pts = "SELECT lp_uid, SUM(lp_pts) AS pts_equipes FROM ce_lqdj_pts GROUP BY lp_uid ORDER BY pts_equipes DESC";


J'aimerais obtenir le nombre de points cumulés lors de la journée précédente (càd le classement sans le dernier lp_id de chaque lp_uid) et là je bloque, je ne dois pas etre tres loin du compte :

$sql_last_pts= "SELECT lp_id, lp_uid, SUM(lp_pts) AS pts_equipes FROM ce_lqdj_pts GROUP BY lp_uid HAVING NOT lp_id IN (SELECT MAX(lp_id) AS max_lpid FROM ce_lqdj_pts GROUP BY lp_uid) ORDER BY pts_equipes_ancien DESC";


J'obtiens le meme résultat que ma requete précédente, je bisque !
Merci pour votre aide.

3 réponses

  1. raditz Messages postés 17 Statut Membre 2
     
    On m'a donné la réponse sur un autre forum :

    SELECT lp_uid, SUM(lp_pts) AS pts_equipes
    FROM ce_lqdj_pts
    WHERE NOT lp_id IN (SELECT MAX(lp_id) AS max_lpid FROM ce_lqdj_pts GROUP BY lp_uid)
    GROUP BY lp_uid
    ORDER BY pts_equipes_ancien DESC


    Merci pour votre aide !
    1
  2. Utilisateur anonyme
     
    Bonjour,

    SELECT lp_id, lp_uid, SUM(lp_pts) AS pts_equipes 
    FROM ce_lqdj_pts 
    GROUP BY lp_uid 
    HAVING  lp_id < (SELECT MAX(lp_id) FROM ce_lqdj_pts ) 
    ORDER BY pts_equipes_ancien DESC
    


    Devrait fonctionner
    0
  3. raditz Messages postés 17 Statut Membre 2
     
    Non ça ne fonctionne pas. On m'a conseillé d'ajouter un champ date :
    Merci pour votre réponse.

    $sql_pts_ancien = "SELECT lp_id,lp_uid,lp_date,SUM(lp_pts) AS pts_equipes_ancien FROM ce_lqdj_pts GROUP BY lp_uid HAVING lp_date < MAX(lp_date) ORDER BY pts_equipes_ancien DESC";


    Le souci, c'est que mon SUM(lp_pts) me donne tjrs la somme de tous les enregistrement et pas la somme de tous les enregistrements - le dernier en date.

    Vous voyez une soluce ?
    0