IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

[SQL] Compter le nombre de dossiers, pas le nombre d'enregistrements


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de lodan
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    2 064
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 064
    Par défaut [SQL] Compter le nombre de dossiers, pas le nombre d'enregistrements
    Bonjour,

    Lors de l'exécution d'une requête, il est possible de récupérer le nombre d'enregistrements retournés en faisant par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $nbLignes = count($requete);
    Dans un cas, je ne souhaite pas récupérer le nombre d'enregistrements, mais le nombre de dossier différents.

    J'ai alors fait en PHP une boucle qui lit le résultat de ma requête et en rupture sur le n° de dossier, je fait + 1 dans un compteur.

    Existe-t-il une fonction sql qui permette de faire cela directement dans une requête ?

    exemple de requete :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT maj_etat_civil.id_maj, id_user,maj_num_dos,maj_civilite_id, maj_nom, maj_prenom, maj_prenom_usage, maj_commentaire,maj_etat_civil.id_trt
    			FROM ".$prefixe_table."t_users_dossiers
    			LEFT OUTER JOIN ".$prefixe_table."`maj_etat_civil` 
    			ON ".$prefixe_table."t_users_dossiers.id_maj=".$prefixe_table."maj_etat_civil.id_maj 
    			WHERE '".$today."' BETWEEN (gest_date_debut AND gest_date_fin)
    			AND t_users_dossiers.id_trt BETWEEN 1 AND 4
    			AND maj_etat_civil.id_trt BETWEEN 1 AND 4
    Ceci est un exemple de requête sur lequel, je peux avoir en résultat 3 fois le même "maj_num_dos". Donc je voudrais compter 1 et non 3 enregistrements

  2. #2
    Membre chevronné Avatar de piff62
    Inscrit en
    Décembre 2003
    Messages
    431
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Décembre 2003
    Messages : 431
    Par défaut
    Donne nous la structure de ta table ca nous eclairera
    Mais il existe ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT count(nomdetacolonne) AS nomquetuveux FROM tatable;
    Enfin, je vois pas trop ce que tu veux ..

  3. #3
    Membre éprouvé Avatar de lodan
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    2 064
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 064
    Par défaut
    Je veux compter le nombre de dossiers, sachant que pour 1 dossier, j'ai "n" utilisateurs.

    Or si je récupère "$nbLignes = count($requete);", je vais avoir le nombre d'ulisateurs et non le nombre de dossiers.

    Bien sûr je veux l'affichage de tous les utilisateurs.

    J'avais déjà testé le COUNT (*) FROM nnnn, mais il veut un group by ce qui fait que j'ai un regroupement par dossier.

    Si j'ai 13 utilisateurs pour 6 dossiers, je veux avoir 13 enregistrements et un compteur qui me dise que j'ai 6 dossiers.

    J'espère avoir été plus clair.

  4. #4
    Membre Expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT DISTINCT(numero_dossier) FROM table
    Un count par-dessus ça et ça doit s'approcher du but...

  5. #5
    Membre éprouvé Avatar de lodan
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    2 064
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 064
    Par défaut
    Citation Envoyé par JWhite
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT DISTINCT(numero_dossier) FROM table
    Un count par-dessus ça et ça doit s'approcher du but...
    Je ne suis pas sûr de comprendre; Pour moi DISTINCT ne va me prendre qu'un enregistrement par numero_dossier, où alors c'est que je n'ai pas compris son utilisation.

    Je vais prendre un exemple simple :

    J'ai un fichier "personnel" avec des hommes et des femmes, le champ les différenciant est "sexe"; sexe peut prendre les valeurs "M" ou "F".

    Je veux afficher l'ensemble des membres du personnel et récupérer 2 compteurs.

    Un compteur du nombre de "H" et un compteur du nombre de "F".

  6. #6
    Membre Expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Par défaut
    Bah il faudrait faire un COUNT avec un GROUP BY sexe mais ça correspond pas à ce qut demandes avec tes dossiers...

    Avec le DISTINCT que j'ai mis tu récupères la liste des numéros de dossiers distincts, donc la liste de tes dossiers différentes, avec un count là-dessus tu as le nombre de dossiers différents en base, c'est bien ce que tu veux nan ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 7
    Dernier message: 31/01/2008, 08h50
  2. [SQL Server] nombre de dossier à une étape donnée
    Par mister3957 dans le forum Langage SQL
    Réponses: 12
    Dernier message: 17/09/2006, 11h35
  3. [PL/SQL] Compter le nombre de tuples impactés ?
    Par clawhammer dans le forum Oracle
    Réponses: 4
    Dernier message: 12/05/2006, 19h48
  4. [SQL] Compter un pas de 5 en 5
    Par Décibel dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 26/03/2006, 11h29
  5. [SQL]Compter le nombre de colonne
    Par dumser1 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 23/02/2006, 09h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo