Rechercher : dans
Par :

SQL sous ACCES 2003

Dernière réponse le 16 avr 2009 à 04:38:17 diocool, le 13 avr 2009 à 01:15:58 
 Signaler ce message aux modérateurs

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)'

1

paglop !!!, le 13 avr 2009 à 03:04:46

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

Répondre à paglop !!!

2

diocool, le 13 avr 2009 à 16:56:10

REGION se trouve dans la table CLIENTS et non dans la table COMMANDES.

Répondre à diocool

3

paglop !!!, le 14 avr 2009 à 00:29:41

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 ?

Répondre à paglop !!!

4

diocool, le 14 avr 2009 à 01:20:48

Justement c'est pour celà que j'ai fait la jointure.
Je veux savoir le nombre de régions d'où proviennent les commandes.

Répondre à diocool

5

paglop !!!, le 14 avr 2009 à 03:14:47

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 !

Répondre à paglop !!!

6

diocool, le 14 avr 2009 à 11:42:13

Oui, c ça.
Si tous les clients avaient fait de commande on aurait simplement compté le nombre de régions dans la table CLIENTS.

Répondre à diocool

7

paglop !!!, le 14 avr 2009 à 23:58:56

SELECT COUNT(DISTINCT REGION) FROM CLIENTS WHERE NUMCLI IN (SELECT NUMCLI FROM COMMANDES;);

Répondre à paglop !!!

8

paglop !!!, le 15 avr 2009 à 01:26:00

SELECT COUNT(DISTINCT REGION) FROM CLIENTS WHERE NUMCLI IN (SELECT DISTINCT NUMCLI FROM COMMANDES;);

Répondre à paglop !!!

9

diocool, le 15 avr 2009 à 02:35:09

Toujours le même message d'erreur

Répondre à diocool

10

Priouman, le 15 avr 2009 à 06:28:17

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+

Répondre à Priouman

11

 diocool, le 16 avr 2009 à 04:38:17

Super! ça marche.
Je vous remercie tous.

Répondre à diocool