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

Langage SQL Discussion :

Compter le total d'enregistrements dans plusieurs tables à la fois


Sujet :

Langage SQL

  1. #1
    Candidat au Club
    Inscrit en
    Juillet 2010
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Compter le total d'enregistrements dans plusieurs tables à la fois
    Bonjour à tous

    Je cherche à compter le nombre total d'enregistrements dans plusieurs tables différentes.

    J'ai essayé très simplement avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT COUNT(*) FROM miroir, ctx
    mais cela me donne des résultats bizarre (8901 alors que les tables contiennent respectivement 989 et 9 enregistrements).

    Une idée ?

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 240
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 240
    Points : 12 872
    Points
    12 872
    Par défaut
    Bonjour,
    En fait ta requête fait le produit cartésien de tes deux tables, et compte le nombre de ligne du résultat (ici 989 * 9 = 8901).
    A mon avis il te faut passer par une union:
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    select sum(nombre) from
    (select count(*) as nombre from miroir
    union all
    select count(*) from ctx
    )

    Tatayo.

  3. #3
    Candidat au Club
    Inscrit en
    Juillet 2010
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Bonjour et merci pour la réponse.

    Malheureusement cela ne fonctionne pas non plus :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    SELECT SUM(nombre) FROM
    (SELECT COUNT(*) AS nombre FROM miroir
    UNION ALL
    SELECT COUNT(*) FROM ctx
    )
     
    # MySQL a répondu: 
     
    #1248 - Every derived table must have its own alias
    Du coup j'ai essayé en rajoutant un alias sur la deuxième table et en faisant SUM(nombre+nombre1), mais j'obtiens le même message d'erreur.

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 240
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 240
    Points : 12 872
    Points
    12 872
    Par défaut
    Peut-être ainsi alors:
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     
    SELECT sum(t.nombre) FROM
    (SELECT count(*) AS nombre FROM miroir
    union ALL
    SELECT count(*) FROM ctx
    ) as t

    Testé et approuvé sur MaxDB

    Tatayo.

  5. #5
    Candidat au Club
    Inscrit en
    Juillet 2010
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Eurêka, je viens de trouver une solution toute simple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT
    (SELECT COUNT(*) FROM miroir)
    +
    (SELECT COUNT(*) FROM ctx)
    Et ta solution fonctionne aussi, tout est bien qui finit bien

    Merci pour l'aide.

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

Discussions similaires

  1. Compter le nombre d'enregistrements dans une table
    Par youhibadelphi dans le forum Langage SQL
    Réponses: 5
    Dernier message: 24/06/2009, 20h30
  2. Nombre total d'éléments dans plusieurs tables avec SQL
    Par mistermiss dans le forum Bases de données
    Réponses: 5
    Dernier message: 06/05/2009, 23h23
  3. Compter le nombre d'enregistrement dans une table selon un critere
    Par Angelo91 dans le forum Requêtes et SQL.
    Réponses: 8
    Dernier message: 18/08/2008, 12h05
  4. effacer un enregistrement dans plusieurs tables
    Par aba_tarn dans le forum VBA Access
    Réponses: 2
    Dernier message: 17/08/2007, 10h15
  5. Réponses: 4
    Dernier message: 28/03/2007, 17h27

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