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

SQL Oracle Discussion :

[Requête SQL] - Select count avec plusieurs tables


Sujet :

SQL Oracle

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 30
    Points : 17
    Points
    17
    Par défaut [Requête SQL] - Select count avec plusieurs tables
    Bonjour,

    Je suis à la recherche d'un script qui me permette de compter des enregistrements dans une table avec des contraintes en rapport avec d'autre table.

    Exemple : J'ai trois tables contenant chacune trois champs

    Table1 : A1, B1, C1
    Table2 : A2, B2, C2
    Table3 : A3, B3, C3

    Je souhaite compter le nom d'enregistrements dans Table1 où par exemple j'ai les contraintes suivantes :

    Table1.A1 = Table2.A2
    Table1.B1 > Table2.B2
    Table2.C2 = Table3.A3
    ...

    Je pensais faire un script du type :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    select count (*) 
    from Table1 
    where Table1.A1 = Table2.A2
    and Table1.B1 > Table2.B2
    and Table2.C2 = Table3.A3 ;
    Mais ça marche pas apparemment. J'ai cru lire un truc sur une jointure ou un truc dans ce style.

    Pouvez-vous m'aider et me donner des pistes.

    Merci d'avance,

    Ciao Ciao !!!

  2. #2
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Points : 4 926
    Points
    4 926
    Par défaut
    Citation Envoyé par Pithonnette Voir le message
    Mais ça marche pas apparemment
    pas de chance Pithonette tu as un message d'erreur ?

    Bon, franchement si tu nous donnais un exemple de données avec ce que tu espères et ce que tu obtiens ...

  3. #3
    McM
    McM est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Points : 7 740
    Points
    7 740
    Billets dans le blog
    4
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT count (*) 
    FROM Table1 
    WHERE Table1.A1 = Table2.A2
    AND Table1.B1 > Table2.B2
    AND Table2.C2 = Table3.A3 ;
    Nomal, tu n'as pas mis table2 et table3 dans ton FROM ...
    More Code : More Bugs. Less Code : Less Bugs
    Mon Blog PL/Sql : Fichier Zip / Image BMP / Lire sqliteDB / QRCode et Images PNG ou BMP

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 30
    Points : 17
    Points
    17
    Par défaut
    Si je met Table1, Table2 et Table3 dans mon FROM, comment savoir sur quelle table porte le Count ?

    Bon, franchement si tu nous donnais un exemple de données avec ce que tu espères et ce que tu obtiens ...
    Si je donne un exemple, c'est pour que la règle s'applique partout et pas seulement à un jeu de données.

    Merci

  5. #5
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Points : 4 926
    Points
    4 926
    Par défaut
    Citation Envoyé par Pithonnette Voir le message
    Si je donne un exemple, c'est pour que la règle s'applique partout et pas seulement à un jeu de données
    bon, si tu n'as pas d'exemple, je vais me coucher

  6. #6
    Membre confirmé Avatar de NGasparotto
    Inscrit en
    Janvier 2007
    Messages
    421
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 421
    Points : 603
    Points
    603
    Par défaut
    Citation Envoyé par Pithonnette Voir le message
    Si je met Table1, Table2 et Table3 dans mon FROM, comment savoir sur quelle table porte le Count ?
    Le count(*) porte sur le resultat de la jointure.

    Sinon, c'est encore un peu tot pour se coucher non, meme en Suisse. C'est presque l'heure de l'apero.

    Nicolas.

  7. #7
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Points : 4 926
    Points
    4 926
    Par défaut
    ouais, je voulais dire, après l'apéro bien sûr

  8. #8
    Membre émérite Avatar de pacmann
    Homme Profil pro
    Consulté Oracle
    Inscrit en
    Juin 2004
    Messages
    1 626
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consulté Oracle
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 626
    Points : 2 845
    Points
    2 845
    Par défaut
    Salut !

    McM a raison... si ce n'est dans le FROM, il faut quand même que tes tables apparaissent quelque part.

    Il faut connaître le lien entre les trois tables.
    Si c'est tout le temps du 1 - 1, tu peux faire la jointure (donc dans le FROM).

    Sinon, tu peux formuler ton besoin en :
    "Je veux toutes les lignes de A, telles que parmi les lignes qui sont en relation avec elles dans B et C, il y a au moins un triplet qui réalise Table1.B1 > Table2.B2
    "

    Dans ce cas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    SELECT count (*) 
    FROM Table1 a
    WHERE EXISTS (SELECT NULL
    FROM Table2, Table3
    WHERE a.A1 = Table2.A2
    AND a.B1 > Table2.B2
    AND Table2.C2 = Table3.A3)
    PS : Apéro puis dodo... ça ressemble à une bonne idée

    (c'est ma photo)
    Paku, Paku !
    Pour les jeunes incultes : non, je ne suis pas un pokémon...

    Le pacblog : http://pacmann.over-blog.com/

Discussions similaires

  1. Requête SQL avec plusieurs tables
    Par salma.mathlouthi dans le forum Développement
    Réponses: 1
    Dernier message: 30/07/2013, 08h16
  2. Réponses: 9
    Dernier message: 20/08/2012, 22h44
  3. select count avec 3 tables
    Par Riwalenn dans le forum Langage
    Réponses: 3
    Dernier message: 15/09/2010, 14h26
  4. [PL/SQL] SELECT INTO avec type TABLE
    Par Kaejar dans le forum Oracle
    Réponses: 13
    Dernier message: 06/07/2006, 16h17
  5. Requête : Insert avec plusieurs tables
    Par bleu_ciel dans le forum Access
    Réponses: 4
    Dernier message: 01/06/2006, 21h42

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