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 :

Access/SQL : Problème avec Count


Sujet :

Langage SQL

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 18
    Points : 11
    Points
    11
    Par défaut Access/SQL : Problème avec Count
    Bonjour à tous,

    J'ai une table Historique, dont la clé primaire composée est faite des champs His_Code, His_Mois, His_Annee.

    His_Code référence la clé primaire d'une autre table, clé primaire qui représente l'identifiant d'un article.

    Je cherche à obtenir le nombre d'articles présents dans la table historique.

    Ça n'a pas l'air compliqué, n'est-ce pas ? Mais je tombe sur un problème que je ne comprends tout simplement pas...

    La requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT DISTINCT(His_Code) FROM HISTORIQUE
    me renvoie 1070 résultats.

    Mon but est donc de faire une requête qui me renvoie en tout et pour tout le nombre 1070.

    Naïvement, j'ai fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT COUNT(His_Code) FROM Historique WHERE His_Code IN (SELECT DISTINCT(His_Code) FROM HISTORIQUE)
    Et là, surprise, au lieu de récupérer 1070 comme je m'y attendais, la requête me renvoie (...au bout de deux minutes...) 59360, soit le nombre total d'entrées dans la table Historique. Bon, après réflexion, j'ai compris que je ne devais pas m'y prendre comme ça, et que la requête imbriquée n'allait pas changer le résultat.

    Mais du coup, comment faire ?

    J'ai aussi essayé de faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT COUNT(DISTINCT (His_Code)) FROM Historique
    et d'autres variantes, mais la requête est invalidée.

    Quelqu'un a une idée ?

  2. #2
    Membre habitué Avatar de nantais
    Inscrit en
    Juillet 2004
    Messages
    158
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 158
    Points : 192
    Points
    192
    Par défaut
    Ton résultat est tout à fait logique (chaque occurence de His_code verifie ta requête).

    Tu ferais mieux de faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT COUNT(*) FROM (SELECT DISTINCT(His_Code) FROM HISTORIQUE)

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 18
    Points : 11
    Points
    11
    Par défaut
    Merciii

    Oui oui, j'avais fini par comprendre pourquoi j'obtenais 59360, mais... Je ne savais pas comment m'y prendre pour obtenir ce que je voulais...
    Je ne pense jamais à mettre une autre requête dans un FROM.

    Merci encore

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

Discussions similaires

  1. problème avec l'apostrophe dans une requête
    Par mika0102 dans le forum VBA Access
    Réponses: 7
    Dernier message: 09/03/2019, 17h51
  2. [SQL] Problème avec SELECT COUNT(*)
    Par jpascal dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 17/11/2006, 13h37
  3. [ACCESS][SQL] Problème avec requete SQL ...
    Par mpascolo dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 09/11/2005, 11h54
  4. [T-SQL] problème avec un trigger
    Par karine77 dans le forum Adaptive Server Enterprise
    Réponses: 3
    Dernier message: 26/09/2005, 11h45
  5. [SQL] problème avec les date et les group By
    Par Stef784ever dans le forum Langage SQL
    Réponses: 3
    Dernier message: 23/11/2004, 10h18

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