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 :

Count multiple : quelle méthode ?


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2010
    Messages
    347
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2010
    Messages : 347
    Par défaut Count multiple : quelle méthode ?
    Bonjour,

    je cherche à connaitre le nombre d'enregistrements d'une table à partir de sa clé primaire.
    Donc en théorie ça revient à faire
    sauf que dans mon cas, la clé primaire est constituée de 4 colonnes (deux colonnes varchar2 et 2 colonnes number). Et je ne trouve pas d'exemple sur Google pour ce cas de figure.
    J'ai déjà essayé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    count (champ1, champ2, ...)
    me renvoie une erreur
    ORA-00909: nombre d'arguments non valide
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    count (champ1 + champ2 + ....)
    me renvoie une erreur.
    ORA-01722: Nombre non valide
    Pour le moment je fais ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    count(champ1) + count(champ2) + ...
    mais j'ai un doute.

    Merci à ceux qui sauront m'expliquer laquelle est bonne et pourquoi.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Pourquoi pas count(*) ???

  3. #3
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2010
    Messages
    347
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2010
    Messages : 347
    Par défaut
    Le résultat est complètement différent entre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    count (champ1) + count (champ2) + ...
    et
    donc j'avoue ne pas savoir

  4. #4
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Par défaut
    Dans quel cas faites vous le count ?

    Est-ce sur une table issue d'une jointure externe ?

  5. #5
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2010
    Messages
    347
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2010
    Messages : 347
    Par défaut
    Euh non, simplement à des fins de test pour le moment.
    On m'a conseillé (vu que ce que je faisais était complètement faux) de récupérer les 4 champs et avec une requête imbriquée de calculer le résultat.

    comment on fait ça ?

  6. #6
    Membre Expert Avatar de lola06
    Femme Profil pro
    Consultante en Business Intelligence
    Inscrit en
    Avril 2007
    Messages
    1 316
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Consultante en Business Intelligence
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 316
    Par défaut
    Tu n'as pas besoin de t'embêter à récupérer les 4 champs, en effet puisqu'il s'agit de la clé primaire alors pour chaque enregistrement de la table une valeur existe pour tes 4 champs.

    Le count(*) suffit largement pour ça.

  7. #7
    Membre Expert Avatar de lola06
    Femme Profil pro
    Consultante en Business Intelligence
    Inscrit en
    Avril 2007
    Messages
    1 316
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Consultante en Business Intelligence
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 316
    Par défaut
    --> va compter (sans distinction de colonnes) le nombre d'enregistrements dans ta table.

    Tandis que :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    count (champ1) + count (champ2) + ...
    --> va faire la somme du nombre d'enregistrement du champ 1 et du nombre d'enregistrement du champ 2.

Discussions similaires

  1. Quelles méthodes utiliser ?
    Par Ekinoks dans le forum OpenGL
    Réponses: 2
    Dernier message: 29/09/2005, 14h45
  2. Réponses: 4
    Dernier message: 05/06/2005, 14h05
  3. [C#] Form : Quelles méthodes ? Close, Dispose, Show, Hide
    Par TheSeb dans le forum Windows Forms
    Réponses: 9
    Dernier message: 30/05/2005, 16h42
  4. [persistance]Quelle méthode utiliser ?
    Par le Daoud dans le forum Persistance des données
    Réponses: 9
    Dernier message: 15/11/2004, 09h29
  5. code récurrent, quelle méthode utiliser ?
    Par khayyam90 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 10/10/2004, 15h03

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