Transcription en ACCESS d'une equête SQL/DB2

Résolu/Fermé
enlérga - 22 mai 2008 à 09:39
 enlérga - 22 mai 2008 à 14:41
Bonjour,

J'ai besoin d'adapter cette requête à access:

SELECT Count(DISTINCT(NewTableau.[N° DAE])) AS ["colA"], Count(DISTINCT(NewTableau.[N° Doc Vente OPUS Gamme Opération])) AS ["colB"],

DECIMAL(DECIMAL(Count(DISTINCT(NewTableau.[N° DAE])),5,2) / DECIMAL(Count(DISTINCT(NewTableau.[N° Doc Vente OPUS Gamme Opération])),5,2),5,2) AS ["colA/B"]

FROM NewTableau;

(celle ci renvoi un message d'erreur: Fonction 'DISTINCT' non défini dans l'expression! )
Ou au moins si vous pouviez me donner un équivalent.

je dois comparer deux colonnes d'une table" N° DAE" et N° Doc Vente "N° Doc Vente OPUS Gamme Opération":

"N° Doc Vente OPUS Gamme Opération": Il peut y avoir plusieur fois le même nombre, je veux les compter une seule fois.(ne pas compter les doublon)

" N° DAE": Normalement tous différent donc tous les compter.

Je veux que ça renvoye un truc comme ça : 1/4=0.25 correspondant à [resultat colonne A]/[resultat colonne B]=resultat

Merci D'avance
A voir également:

3 réponses

blux Messages postés 25976 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 18 avril 2024 3 287
22 mai 2008 à 10:13
Salut,

ACCESS ne sait pas faire ça, il faut passer par une sous-requête.

SELECT Count(*) AS ["colA"] FROM (SELECT DISTINCT(NewTableau.[N° DAE]) FROM NewTableau);

Je pense que tu seras obligé(e) d'enregistrer deux sous-requêtes avant de les sélectionner, car je ne sais pas comment en imbriquer deux...

Pour ce qui est de la mise en forme, on verra plus tard...
0
Si j'ai bien compris, je dois le faire sur 2 requêtes défférente: (puis les rassembler sur une 3éme?)

Première :

SELECT Count(*) AS ["NbrOPUS"]
FROM (SELECT DISTINCT(NewTableau.[N° Doc Vente OPUS Gamme Opération]) FROM NewTableau);

Deuxième :

SELECT Count(*) AS ["NbrDAE"]
FROM [SELECT DISTINCT(NewTableau.[N° DAE]) FROM NewTableau];

(il ne faut pas que ça compte les champs vide!!)

est-ce juste stp ça deja?
0
blux Messages postés 25976 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 18 avril 2024 3 287 > enlérga
22 mai 2008 à 11:30
c'est un bon début :-)

par contre, pour ne pas compter les champs vides, il faut les exclure de la sous-requête d'origine avec un where...

je suis en train de réfléchir pour la juxtaposition des résultats, mais ça ne marche pas comme je veux pour l'instant, car il me fait un produit cartésien du nombre de lignes...
0
Enfaite j'ai juste deduit 1 sur chaque requête, car il compte le champ vide comme étant un champ distinct(il y avait 5 ligne rempli il en compte 6 à cause des champs vide donc j'ai fais un "-1").

Je pense que c'est bon comme ça, non?

J'ai ensuite rassemblé sur une même requête, voilà ce que ça renvoie:

NbrOPUS NbrDAE Pourcentage: NbrOPUS/NbrDAE <====== commande fausse je pense :)
5 79 #Erreur

J'arrive pas à avoir le rapport des deux. Je voudrais qu'il affiche 0.063 puis à coté en pourcentage, un truc comme ça !
0
blux Messages postés 25976 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 18 avril 2024 3 287
22 mai 2008 à 12:46
donne ta requête, on va s'arranger pour que ça soit joli :-)
0
enlérga > blux Messages postés 25976 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 18 avril 2024
22 mai 2008 à 13:16
Y'a pas grand chose dedans vu qu'elle ne fais que reprendre les deux autres :

SELECT NbrOPUS.["NbrOPUS"], NbrDAE.["NbrDAE"], "NbrOPUS"/"NbrDAE" AS Pourcentage
FROM NbrDAE, NbrOPUS;


et le "NbrOPUS"/"NbrDAE" AS Pourcentage ne marche pas !!
0
blux Messages postés 25976 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 18 avril 2024 3 287 > enlérga
22 mai 2008 à 13:37
Y'a pas grand chose dedans vu qu'elle ne fais que reprendre les deux autres
j'étais parti sur plus compliqué :-)

et le "NbrOPUS"/"NbrDAE" AS Pourcentage ne marche pas !!
Ca c'est normal...

Il ne faut pas mettre de double-quotes, mais simplement l'opération : NbrOPUS/NbrDAE AS Pourcentage.

Les doubles-quotes ne sont pas nécessaires, ni les crochets, les crochets ne servent que de délimiteurs dans le cas où le nom de l'objet (colonne, table, requête) contient un caractère réservé ou non standard : espace, tiret...

Ensuite, on peut formater pour avoir un résultat en pourcentage avec 2 décimales...

format(NbrOPUS/NbrDAE,"0.00%") AS Pourcentage
0
enlérga > blux Messages postés 25976 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 18 avril 2024
22 mai 2008 à 13:54
J'ai enttré cette commande:

SELECT NbrOPUS.["NbrOPUS"], NbrDAE.["NbrDAE"], NbrOPUS/NbrDAE AS Rapport, format(NbrOPUS/NbrDAE,"0.00%") AS Pourcentage
FROM NbrDAE, NbrOPUS;

Le problème est qu'a l'execution de la requête, une petite fenêtre s'affiche me demandant de taper le NbrOPUS et le NbrDAE. Moi je voudrais qu'il les récupère tout seul.

On en est pas loin là ! :)
0
blux Messages postés 25976 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 18 avril 2024 3 287 > enlérga
22 mai 2008 à 14:01
les préfixer avec le nom de leurs tables respectives ?
0
Excuse moi je comprends pas ...

NbrOPUS et NbrSDAE viennent de deux requêtes différentes qui compte le nombre de d'élement distinct dans la colonne "N° Doc Vente OPUS Gamme Opération" et la colonne "N° DAE" toute deux dans la table "NewTableau".

je sais pas si c'est cela que tu veux?
0
blux Messages postés 25976 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 18 avril 2024 3 287
22 mai 2008 à 14:15
si tu as une 'petite fenêtre', c'est qu'access ne sait pas trouver les champs qui correspondent, et il te demande de les taper...

Je les préfixerais, pour voir :

SELECT NbrOPUS.["NbrOPUS"], NbrDAE.["NbrDAE"], NbrOPUS.["NbrOPUS"]/.["NbrDAE"]NbrDAE AS Rapport, format(NbrOPUS.["NbrOPUS"]/NbrDAE.["NbrDAE"],"0.00%") AS Pourcentage
FROM NbrDAE, NbrOPUS;
0
enlérga > blux Messages postés 25976 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 18 avril 2024
22 mai 2008 à 14:28
Merci bien ça marche !! :))

Juste une petite erreur dans ta commande :

SELECT NbrOPUS.["NbrOPUS"], NbrDAE.["NbrDAE"], NbrOPUS.["NbrOPUS"]/NbrDAE.["NbrDAE"] AS Rapport, format(NbrOPUS.["NbrOPUS"]/NbrDAE.["NbrDAE"],"0.00%") AS Pourcentage
FROM NbrDAE, NbrOPUS;

Encore merci !
0
blux Messages postés 25976 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 18 avril 2024 3 287 > enlérga
22 mai 2008 à 14:31
voui, c'est un copier/coller pas au bon endroit...

content que ça marche, tu peux marquer le problème comme 'résolu'
0
enlérga > blux Messages postés 25976 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 18 avril 2024
22 mai 2008 à 14:41
C'est cool. Bonne journée !
0