Comparer deux colonne d'une même table

Fermé
enlérga - 20 mai 2008 à 10:12
 enlérga - 22 mai 2008 à 12:02
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 921 Date d'inscription lundi 21 janvier 2008 Statut Membre Dernière intervention 6 mars 2012 131
20 mai 2008 à 14:31
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
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
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 921 Date d'inscription lundi 21 janvier 2008 Statut Membre Dernière intervention 6 mars 2012 131
21 mai 2008 à 17:00
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 921 Date d'inscription lundi 21 janvier 2008 Statut Membre Dernière intervention 6 mars 2012 131
22 mai 2008 à 03:11
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
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 921 Date d'inscription lundi 21 janvier 2008 Statut Membre Dernière intervention 6 mars 2012 131
22 mai 2008 à 11:37
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
Comme ça, ça marche !

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

Merci !
0