Comparer deux colonne d'une même table

enlérga -  
 enlérga -
Bonjour,

J'ai une table avec plus de 40 colonnes (ancien tableau excel), je dois comparer deux colonnes de cette table que l'on va appeler colonne A et colonne B qui sont des nombres:

Colonne A: Il peut y avoir plusieur fois le même nombre, je veux les compter une seule fois.(ne pas compter les doublon)

Colonne B: Normalement tous différent donc tous les compter.

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

Cela doit être possible avec une requête, mais je sais pas faire....

Si quelqu'un à une idée :)

Merci D'avance.
A voir également:

5 réponses

cchristian Messages postés 928 Statut Membre 131
 
Bonjour,

En SQL/DB2 ça doit donner ça :

SELECT      COUNT  ( DISTINCT (COLA) )                    AS "col.A" , 
            COUNT  ( DISTINCT (COLB) )                    AS "col.B" ,
   DECIMAL (
      DECIMAL ( COUNT ( DISTINCT (COLA) ), 5 ,2 )  
                             /   
      DECIMAL ( COUNT ( DISTINCT (COLB) ), 5, 2 ), 
           5, 2 )                                        AS "col.A./B" 
FROM  TATABLE  ;


Pour un résultat (Exemple) :
col.A       col.B       col.A./B
----------- ----------- --------
          6           4     1,50
0
enlérga
 
Merci de ta réponse,


Dans ta commande COLA et COLB sont les noms des colonnes? avec des crochets ou pas?

col.A, col.B sont juste des noms qu'on donne,je crois?

Comme ta pu le constater je debute :)
0
enlérga
 
Je l'ai pas dit mais je bosse sur access.

Lorque j'entre ta commande dans une requête, le message d'erreur suivant est affiché:

Fonction 'DISTINCT' non défini dans l'expression
0
cchristian Messages postés 928 Statut Membre 131
 
Bonjour,

Dans ta commande COLA et COLB sont les noms des colonnes? avec des crochets ou pas?
Ce sont en effet les noms des colonnes de ta table pour lesquelles tu veux compter les occurrences de valeurs différentes. J'ai d'ailleurs repris les noms que tu as donnés (colonne A, colonne B).
Les parenthèses qui enferment un nom de colonne sont liées à la clause (COUNT, ou DISTINCT, ....) qui précéde ce nom ainsi : COUNT ( DISTINCT (COLA) ) signifie : Compter ( ...en considérant la signification de ce qu'il y a entre ces deux parenthèses...) ==> c'est-à-dire : DISTINCT (COLA) qui signifie (...Ne considérer (en l'occurrence ne compter que) que les valeurs DISTINCTes contenues dans la colonne COLA...). Idem pour les autres clauses de la requête. Je te rappelle que la syntaxe de la requête que j'ai codée correspond à SQL/DB2, en général il n'existe pas de grandes différences enttre les "SQL" (SQL/xxx signifie Le langages d'interrogation des bases de données relationnelles du SystèmeGeestionBasesDonnéesRelationnelles / DB2, qui est le SGBDR propre à IBM)

col.A, col.B sont juste des noms qu'on donne,je crois?
Si la table existe déjà tu dois reprendre les noms des colonnes, dans le cas contraire tu choisis les noms que tu estimes les plus significatifs lors de la création de la table. J'ai pris COLA, et COLB parceque je ne connais rien à l'application, sinon j'aurai choisi des noms de colonnes plus pertinents et plus éloquents.

Comme ta pu le constater je debute :) --
On ne fait que cela toute la vie, mais bien souvent on ne veut pas l'admettre !

Cordialement.

Cchristian.
0
cchristian Messages postés 928 Statut Membre 131
 
Bonjour/bonsoir ?

Je ne peux malheureusement pas te donner la transcription en ACCESS de ma requête SQL/DB2, et plus paticulièrement l'équivalent au niveau de la syntaxe de la clause DISTINCT car je ne connais pas ACCESS.

Désolé,

P.S. Sur internet j'ai trouvé cela :

SELECT Count(Distinct Color) AS N FROM tblColors

https://docs.microsoft.com/en-us/archive/blogs/
0
enlérga
 
Bonjour !

SELECT Count(Distinct Color) AS N FROM tblColors

C'est pourtant exactement la même que tu m'as donné !

Je vais continuer à chercher.

Merci de ton aide cchristian !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cchristian Messages postés 928 Statut Membre 131
 
Bonjour,

Pas tout à fait, il y a ces parenthèses qui font la différence probablement,

SELECT COUNT ( DISTINCT (COLA) ) ...............
SELECT Count (Distinct Color) .................

0
enlérga
 
Comme ça, ça marche !

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

Merci !
0