SQL sous ACCES 2003

Résolu
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

  • Votes
  • Date
  • Date décroissante
  1. 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. REGION se trouve dans la table CLIENTS et non dans la table COMMANDES.
  2. 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 ?
    1. Justement c'est pour celà que j'ai fait la jointure.
      Je veux savoir le nombre de régions d'où proviennent les commandes.
      1. 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 !
        1. oui, c ça.
          Si tous les clients avaient fait de commande on aurait simplement compté le nombre de régions dans la table CLIENTS.
      2. SELECT COUNT(DISTINCT REGION) FROM CLIENTS WHERE NUMCLI IN (SELECT NUMCLI FROM COMMANDES;);
        1. SELECT COUNT(DISTINCT REGION) FROM CLIENTS WHERE NUMCLI IN (SELECT DISTINCT NUMCLI FROM COMMANDES;);
          1. 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+
            1. Super! ça marche.
              Je vous remercie tous.