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 :

Combinaison de deux selects simples


Sujet :

Langage SQL

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5
    Points : 3
    Points
    3
    Par défaut Combinaison de deux selects simples
    Hello,

    J'utilise Oracle 9i.

    Je voudrais combiner en un seul select les deux selects suivants

    SELECT table_name FROM user_tables;

    Renvoie une liste contenant le nom des tables disponiblent

    SELECT count(*) FROM Nom_d_une_table_de_cette_liste;

    Compte le nombre d'enregistrement dans la table spécifiée.

    Je veux obtenir au final les résultats suivants:

    TABLE_NAME Records
    --------------------------
    Articles 1500
    Clients 500
    Factures 1200
    ...

    Cela devrait être simple mais je me casse la tête dessus !

    Merci à l'avance pour votre aide !

  2. #2
    Membre confirmé Avatar de lper
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    396
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2004
    Messages : 396
    Points : 641
    Points
    641
    Par défaut
    Bonjour,
    je ne sais pas si l'information est correcte sous oracle mais il existe dans la table user_tables la colonne Num_Rows qui peut te donner la solution !?
    La faiblesse humaine est d'avoir des curiosités d'apprendre ce qu'on ne voudrait pas savoir

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5
    Points : 3
    Points
    3
    Par défaut Re,
    Je viens de tester à l'instant mais cela ne semble pas fonctionner
    correctement, je n'obtiens pas les même résultats que lorsque que je fait un count(*) classique.

    Zut...

  4. #4
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    En SQL c'est impossible à moins de calculer les statistiques juste avant (dans ce cas il faut regarder la colonne NUM_ROWS comme ça a été dit)

    2 solutions :
    En SQL :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    set head off
    set feed off
    set echo off
    set head off
    set linesize 200
    set pagesize 999
    SPOOL c:\liste_table.sql
    SELECT 'SELECT '''||table_name||''',COUNT(1) FROM '||table_name||';'
    FROM user_tables;
    SPOOL OFF
    @c:\liste_table.sql
    $del c:\liste_table.sql
    En PL/SQL :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    set serveroutput on size 1000000
    DECLARE 
    nb_rows NUMBER;
    BEGIN
    FOR i IN (SELECT * FROM user_tables)
    LOOP 
      EXECUTE IMMEDIATE('SELECT COUNT(1) FROM '||i.table_name) INTO nb_rows;
      DBMS_OUTPUT.PUT_LINE(i.table_name||' -> '||nb_rows);
    END LOOP;
    END;
    /

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5
    Points : 3
    Points
    3
    Par défaut Re,
    Yep.

    Mega thanx !

  6. #6
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    Et pense :

    Aux balises code
    A poster dans le bon forum (Oracle par exemple)
    et au bouton Résolu

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

Discussions similaires

  1. comparer deux date dans une requete select simple
    Par isac83 dans le forum Requêtes
    Réponses: 1
    Dernier message: 23/09/2007, 09h53
  2. SQL SERVER 2000(Somme de deux SELECT )
    Par gwadakillah dans le forum Langage SQL
    Réponses: 1
    Dernier message: 09/08/2006, 14h18
  3. selection simple mais résultat multiple dans combobox
    Par forzaxelah dans le forum Bases de données
    Réponses: 1
    Dernier message: 12/06/2006, 14h21
  4. Select simples/multiples : Bug IE?
    Par Zogzog4 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 23/05/2006, 17h36
  5. UNION de deux SELECT avec nombre d'arguments différents
    Par orus8 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 16/07/2004, 14h32

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