Retourner tout les enregistrement

Résolu
cs_doublemetre Messages postés 24 Statut Membre -  
cs_doublemetre Messages postés 24 Statut Membre -
Bonjour,

je rencontre un petit soucis voici mon code:

SELECT

e.id, 
e.title AS Titre,
c.title AS Catégorie,
e.shortdesc AS Libelé,
COUNT(r.people) AS Inscription ,
LEFT (RIGHT (e.params, LENGTH(e.params) - INSTR(e.params, "maxReg") -8  ),3 )AS Place,
(LEFT (RIGHT (e.params, LENGTH(e.params) - INSTR(e.params, "maxReg") -8  ),3 )) - (COUNT(r.people) ) AS Libre

FROM #__icagenda_events e  
JOIN #__icagenda_category c ON c.id = e.catid  
JOIN #__icagenda_registration r ON r.eventid = e.id 
WHERE e.state = TRUE AND r.state = TRUE
GROUP BY e.id

COUNT(r.people) AS Inscription , me retourne seulement les enregistrements avec inscription et pas tout les autres sans inscription.

Merci d'avance pour votre aide.

EDIT : Correction des balises de code

2 réponses

  1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 588
     
    bonjour, qu'est ce qui caractérise un enregistrement avec inscription?
    cela va-t'il mieux sans le WHERE?
    0
  2. cs_doublemetre Messages postés 24 Statut Membre
     
    bonjour merci pour votre réponse,
    bonjour, qu'est ce qui caractérise un enregistrement avec inscription? 

    C'est r.eventid de la table registration

    sans le WHERE je n'ai que un enregistrement affiché.
    0
    1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       
      c'est un peu compliqué, parce que tu nous montres une requête qui ne fonctionne pas, sans décrire ni la structure de tes tables, ni ce que tu obtiens, ni ce que tu veux obtenir.
      et ainsi, as-tu tous les évènements?
      SELECT
      e.id, 
      e.title AS Titre,
      c.title AS Catégorie,
      e.shortdesc AS Libelé,
      r.people AS Inscription ,
      e.params
      FROM #__icagenda_events e  
      JOIN #__icagenda_category c ON c.id = e.catid  
      LEFT JOIN #__icagenda_registration r ON r.eventid = e.id and r.state = TRUE
      WHERE e.state = TRUE 
      0
    2. cs_doublemetre Messages postés 24 Statut Membre
       
      oui là j'ai tout, c'est donc mon problème de récupération de cette valeur maxReg, qui me pose problème.
      0
    3. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588 > cs_doublemetre Messages postés 24 Statut Membre
       
      r.people, cela contient quoi?
      0
    4. cs_doublemetre Messages postés 24 Statut Membre
       
      c'est le nombre de personne que l'on inscrit, mais c'est toujours 1
      0
    5. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588 > cs_doublemetre Messages postés 24 Statut Membre
       
      et alors ceci?
      SELECT
      e.id, 
      e.title AS Titre,
      c.title AS Catégorie,
      e.shortdesc AS Libelé,
      sum(r.people) AS Inscription ,
      e.params,
      LEFT (RIGHT (e.params, LENGTH(e.params) - INSTR(e.params, "maxReg") -8  ),3 ) AS Place,
      (LEFT (RIGHT (e.params, LENGTH(e.params) - INSTR(e.params, "maxReg") -8  ),3 )) - (SUM(r.people) ) AS Libre
      FROM #__icagenda_events e  
      JOIN #__icagenda_category c ON c.id = e.catid  
      LEFT JOIN #__icagenda_registration r ON r.eventid = e.id and r.state = TRUE
      WHERE e.state = TRUE 
      group by e.id, 
      e.title ,
      c.title ,
      e.shortdesc ,
      e.params
      0