[access] pb de requete SQL
Résolu
rodrigue62
Messages postés
190
Date d'inscription
Statut
Membre
Dernière intervention
-
lilibarth -
lilibarth -
bonjour,
sous access lorsque j'essaye d'executer la requete suivante:
SELECT COUNT( DISTINCT ([TOURNEE].[NOM_CAMION])) AS [nbr location], COÛTS.COÛT_LOCATION, [nbr location]*[COÛT_LOCATION] AS [cout total],
FROM (CAMION INNER JOIN (COÛTS INNER JOIN CONCERNÉ_PAR ON COÛTS.ID_COÛTS = CONCERNÉ_PAR.ID_COÛTS) ON CAMION.NOM_CAMION = COÛTS.NOM_CAMION) INNER JOIN TOURNEE ON CAMION.NOM_CAMION = TOURNEE.NOM_CAMION
WHERE (((TOURNEE.ID_MOIS)=[entrer mois voulu]))
GROUP BY COÛTS.COÛT_LOCATION, TOURNEE.NOM_CAMION, TOURNEE.DATE;
ca me met:
Dans l'instruction SELECT, un mot réservé ou un argument est mal orthographié ou absent, ou la ponctuation est incorrecte.
Si quelqu'un a une idée de ou est mon erreur merci d'avance
sous access lorsque j'essaye d'executer la requete suivante:
SELECT COUNT( DISTINCT ([TOURNEE].[NOM_CAMION])) AS [nbr location], COÛTS.COÛT_LOCATION, [nbr location]*[COÛT_LOCATION] AS [cout total],
FROM (CAMION INNER JOIN (COÛTS INNER JOIN CONCERNÉ_PAR ON COÛTS.ID_COÛTS = CONCERNÉ_PAR.ID_COÛTS) ON CAMION.NOM_CAMION = COÛTS.NOM_CAMION) INNER JOIN TOURNEE ON CAMION.NOM_CAMION = TOURNEE.NOM_CAMION
WHERE (((TOURNEE.ID_MOIS)=[entrer mois voulu]))
GROUP BY COÛTS.COÛT_LOCATION, TOURNEE.NOM_CAMION, TOURNEE.DATE;
ca me met:
Dans l'instruction SELECT, un mot réservé ou un argument est mal orthographié ou absent, ou la ponctuation est incorrecte.
Si quelqu'un a une idée de ou est mon erreur merci d'avance
A voir également:
- Date non définie
- Acer quick access ✓ - Forum PC portable
- Acer Quick Access - affichage CapsLock, VerrNum - Forum logiciel systeme
- Désinstaller ACER QUICK ACCESS - Forum Logiciels
- Exemple base de données access à télécharger gratuit - Forum Access
- Exemple base de données Access de gestion ✓ - Forum Logiciels
11 réponses
salut c'est encore moi ;-)
je cherche quelqu'un a qui je pourrait envoyer par mail ma base de donnée, car en fait il y a une requete que j'essaye de faire sur plusieurs table en faisant des sommes sur plusieurs champs numeriques, mais ca me donne des resultats aberant, en fait j'ai l'impression que ca compte plusieurs fois les meme champ, j'ai essayé de plusierus manieres differentes mais rien a faire, ca fait 2 jours que je suis dessus, donc si qq1 pouvait y jeter un oeil et me dire ce qu'il en pense...
je cherche quelqu'un a qui je pourrait envoyer par mail ma base de donnée, car en fait il y a une requete que j'essaye de faire sur plusieurs table en faisant des sommes sur plusieurs champs numeriques, mais ca me donne des resultats aberant, en fait j'ai l'impression que ca compte plusieurs fois les meme champ, j'ai essayé de plusierus manieres differentes mais rien a faire, ca fait 2 jours que je suis dessus, donc si qq1 pouvait y jeter un oeil et me dire ce qu'il en pense...
blux
Messages postés
27137
Date d'inscription
Statut
Modérateur
Dernière intervention
3 362
denis point mail point list chez free point fr
Bonjour,
Je ch qqu'un qui puisse m'aider sur access.
Dans une requête, je voudrais pouvoir compter les lignes Date. Le problème c'est que les lignes comportant la même date doivent compter pour 1 jour dans mon réusltat, comment faire ?
Merci de votre aide précieuse.
Je ch qqu'un qui puisse m'aider sur access.
Dans une requête, je voudrais pouvoir compter les lignes Date. Le problème c'est que les lignes comportant la même date doivent compter pour 1 jour dans mon réusltat, comment faire ?
Merci de votre aide précieuse.
Salut,
as-tu essayé en ôtant tous les accents (surtout les majuscules) ?
Mais ça t'oblige à redéfinir tes tables...
as-tu essayé en ôtant tous les accents (surtout les majuscules) ?
Mais ça t'oblige à redéfinir tes tables...
Non c'est au niveau de la fonction DISTINCT qu'est le probleme, si je veux compter toute les fois ou le camion est apparu ca va mais en fait je veux compter les dates differentes auquels il est apparu, en fait si il faut que je compte dans le mois le nombre de jours ou le camion est utilisé dans le mois, si il est utilisé plusieurs fois au cour d'une meme journée ca ne compte qu'une fois.
En fait la je faisais ensuite un calcul, donc j'ai essyé de simplifier ma requete en n'essayant de trouver que le nombre d'utilistation du camion et ensuite j'utiserai cette requete dans une autre
j'ai donc la requete suivante:
SELECT Count(DISTINCT(TOURNEE.NOM_CAMION)) AS Nbr_location, TOURNEE.DATE
FROM TOURNEE
GROUP BY TOURNEE.DATE;
et ca me met comme erreur: fontion 'DISTINCT' non definie dans l'expression
En fait la je faisais ensuite un calcul, donc j'ai essyé de simplifier ma requete en n'essayant de trouver que le nombre d'utilistation du camion et ensuite j'utiserai cette requete dans une autre
j'ai donc la requete suivante:
SELECT Count(DISTINCT(TOURNEE.NOM_CAMION)) AS Nbr_location, TOURNEE.DATE
FROM TOURNEE
GROUP BY TOURNEE.DATE;
et ca me met comme erreur: fontion 'DISTINCT' non definie dans l'expression
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
non le programme la compterai le nombre de camions differents par date ce qu'il me faut c'est
SELECT Count(DISTINCT(TOURNEE.DATE)) AS Nbr_location,TOURNEE.NOM_CAMION
FROM TOURNEE
GROUP BY TOURNEE.NOM_CAMION;
mais le resultat est le meme j'obtient la meme erreur
SELECT Count(DISTINCT(TOURNEE.DATE)) AS Nbr_location,TOURNEE.NOM_CAMION
FROM TOURNEE
GROUP BY TOURNEE.NOM_CAMION;
mais le resultat est le meme j'obtient la meme erreur
Après tests, il semblerait que DISTINCT, en tant que prédicat ACCESS (comme TOP, ALL...), ne supporterait pas d'être 'encapsulé' dans un COUNT...
Ce qu'on peut faire, c'est enregistrer la requête avec le DISTINCT (sous le nom R1, par exemple), puis lancer une autre requête qui fera le count sur les résultats de R1 :
Et là, ça marche...
Ce qu'on peut faire, c'est enregistrer la requête avec le DISTINCT (sous le nom R1, par exemple), puis lancer une autre requête qui fera le count sur les résultats de R1 :
SELECT COUNT (R1.EXPR1) FROM R1;
Et là, ça marche...
Ok merci. et y a t-il moyen pour les champs non renseigné de renvoyer 0. Je m'explique, si au cours d'un mois un camion n'a effectué aucune date, ce camion n'apparaitra pas dans ma requete qui compte le nombre de dates effectuées, or je voudrais qu'il aparaisse avec la valeur 0 affectée
Pour cela, tu as la fonction iif :
Mais il faudra peut-être transformer TOURNEE.DATE en chaine de caractère...
SELECT IIF(TOURNEE.DATE="","0",TOURNEE.DATE) FROM ...
Mais il faudra peut-être transformer TOURNEE.DATE en chaine de caractère...
Ok merci je connaissais la fonction IIF car je l'avais deja utilisée dans des champs calculés mais je savais pas que l'on pouvais l'utiliser dans des requêtes SQL.
Merci de ton aide et de ta patience.
Merci de ton aide et de ta patience.