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 les éléments distincts dans une requête


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 120
    Points : 67
    Points
    67
    Par défaut [SQL] compter les éléments distincts dans une requête
    Bonjour!

    J'ai un problème avec une requête.

    Tout d'abord, il s'agit de faire un site répertoriant les concerts d'un chanteur;
    voici un shéma d'un partie de ma base

    Je souhaite savoir le nombre de pays visités dans une tournée tournée donnée.

    Pour cela, je pensais d'abord faire une requête pour lister les pays concernées:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    SELECT tb_concert.id_leg,
     tb_leg.id_leg,
    tb_leg.id_tournee,
    tb_concert.id_salle,
    tb_salle.id_salle,
    tb_salle.id_ville,
    tb_ville.id_ville,
    tb_ville.id_pays,
    tb_pays.id_pays,
    tb_pays.pays
    FROM tb_concert, tb_leg, tb_salle, tb_ville, tb_pays
    WHERE tb_concert.id_leg = tb_leg.id_leg
    AND tb_leg.id_tournee = $id_tour_recherche
    AND tb_concert.id_salle = tb_salle.id_salle
    AND tb_salle.id_ville = tb_ville.id_ville
    AND tb_ville.id_pays = tb_pays.id_pays
    Ensuite et surtout, je pensais utiliser cette requête en sous requête pour compter les pays distincts:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT COUNT (DISTINCT tb_pays.id_pays) AS nbr_pays
    FROM tb_pays
    WHERE tb_pays.id_pays IN ma_requête_ci_dessus
    On peut agencer un count et un distinct comme ça?
    Je peux utiliser ma sous requête de cette manière?


    Merci !

  2. #2
    Membre actif
    Profil pro
    Développeur Web
    Inscrit en
    Octobre 2006
    Messages
    251
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2006
    Messages : 251
    Points : 292
    Points
    292
    Par défaut
    Cadeau:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    SELECT COUNT(DISTINCT id_pays)
    FROM tb_ville
    WHERE id_ville IN(
    	SELECT id_ville 
    	FROM tb_salle 
    	WHERE idsalle IN(
    		SELECT idsalle
    		FROM tb_concert
    		WHERE id_leb IN (
    			SELECT id_leg_tournee 
    			FROM tb_leg 
    			WHERE id_tournee = $id_tour_recherche)));
    Par contre de là a dire que ça marche, tout dépend la version de ta base de donnée

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 120
    Points : 67
    Points
    67
    Par défaut
    Je viens d'essayer ça, apparament ça me convient sans sous requête:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT COUNT( DISTINCT tb_ville.id_pays ) AS nbr_pays
    FROM tb_concert, tb_leg, tb_salle, tb_ville
    WHERE tb_concert.id_leg = tb_leg.id_leg 
    AND tb_leg.id_tournee = $id_tour 
    AND tb_concert.id_salle = tb_salle.id_salle 
    AND tb_salle.id_ville = tb_ville.id_ville

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

Discussions similaires

  1. [Oracle] Ignorer les champs vides dans une requête sql
    Par roswina dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 26/05/2015, 09h29
  2. Compter les Dates différentes dans une requête Access
    Par maxireus dans le forum Modélisation
    Réponses: 2
    Dernier message: 11/05/2007, 00h02
  3. Distinct dans une requête sql
    Par manytime dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 17/11/2006, 17h29
  4. Réponses: 1
    Dernier message: 23/10/2005, 00h55
  5. Comment gérer les valeur Nulles dans une requête ?
    Par sondo dans le forum Bases de données
    Réponses: 3
    Dernier message: 16/03/2005, 11h02

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