SQL sous ACCES 2003

Résolu
diocool Messages postés 371 Statut Membre -  
diocool Messages postés 371 Statut Membre -
Bonjour,
je voudrais exécuter une requête SQL sous accès mais je n'y arrive pas.
J'ai 2 tables:
-CLIENTS(NUMCLI,NOM,ADR,CA,REGION)
NUMCLI: numéro client
NOM: nom du client
ADR: adresse
CA: chiffre d'affaires annuel du client
REGION: région où habite le client

-COMMANDES(NUMCLI,NUMCOM,DATECOM)
NUMCLI: numéro client
NUMCOM: numéro commande
DATECOM: date commande

Voici la requête: De combien de régions différentes viennent les commandes clients?
SQL: SELECT COUNT(DISTINCT REGION) FROM CLIENTS AS CLI,COMMANDES AS COM WHERE CLI.NUMCLI=COM.NUMCLI;
ERREUR AFFICHEE: Erreur de syntaxe (opérateur absent) dans l'expression 'COUNT(DISTINCT REGION)'

8 réponses

  1. paglop !!! Messages postés 856 Statut Membre 234
     
    Pourquoi tu as fait une jointure

    SELECT COUNT(DISTINCT REGION) FROM CLIENTS;

    Ça te donne le nombre de région déjà ça !

    Après tu veut peut être en fonction de chaque client
    1
    1. diocool Messages postés 371 Statut Membre 12
       
      REGION se trouve dans la table CLIENTS et non dans la table COMMANDES.
      0
  2. paglop !!! Messages postés 856 Statut Membre 234
     
    1) tu veut savoir le nombre de region ou tu a eu une commande, ou le nombre de region en fonction d'un numéro de commande ?

    SELECT COUNT(DISTINCT REGION) FROM CLIENTS;
    
    REGION se trouve dans la table CLIENTS et non dans la table COMMANDES.

    Ou tu voit la table commande dans cette requette ?
    0
  3. diocool Messages postés 371 Statut Membre 12
     
    Justement c'est pour celà que j'ai fait la jointure.
    Je veux savoir le nombre de régions d'où proviennent les commandes.
    0
  4. paglop !!! Messages postés 856 Statut Membre 234
     
    As tu des client qui ne font pas de commande ?

    Explique le plus précisément possible la requette que tu souhaite obtenir ! Parce que je comprend pas bien ou tu veut en venir !
    0
    1. diocool Messages postés 371 Statut Membre 12
       
      oui, c ça.
      Si tous les clients avaient fait de commande on aurait simplement compté le nombre de régions dans la table CLIENTS.
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. paglop !!! Messages postés 856 Statut Membre 234
     
    SELECT COUNT(DISTINCT REGION) FROM CLIENTS WHERE NUMCLI IN (SELECT NUMCLI FROM COMMANDES;);
    0
  7. paglop !!! Messages postés 856 Statut Membre 234
     
    SELECT COUNT(DISTINCT REGION) FROM CLIENTS WHERE NUMCLI IN (SELECT DISTINCT NUMCLI FROM COMMANDES;);
    0
  8. diocool Messages postés 371 Statut Membre 12
     
    Toujours le même message d'erreur
    0
  9. Utilisateur anonyme
     
    Bonjour

    count(distinct...) ne fonctionne pas sous accès 2003.

    tu peux essayer :
    SELECT Count(*)
    FROM
    (select distinct region from CLIENTS, COMMANDES
    WHERE CLIENTS.Numcli=Commandes.NUMCLI)

    A+
    0
    1. diocool Messages postés 371 Statut Membre 12
       
      Super! ça marche.
      Je vous remercie tous.
      0