Rechercher : dans
Par :

Comparer deux colonne d'une même table

Dernière réponse le 22 mai 2008 à 12:02:01 enlérga, le 20 mai 2008 à 10:12:13 
 Signaler ce message aux modérateurs

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.

Configuration: Windows XP
Internet Explorer 6.0

Meilleures réponses pour « comparer deux colonne d'une même table » dans :
Remplir une ligne ou une colonne avec une suite logique VoirVous devez créer un tableau avec le nom des mois dans une ligne ou une colonne : - vous inscrivez au moins 2 mois consécutifs : par exemple, janvier en B4 et février en B5 - vous pointez sur B4, puis en maintenant shift enfoncé, vous pointez B5. ...
Tableaux HTML VoirUtilisation de tableaux Il est souvent utile de présenter des informations mieux structurées qu'avec des listes. Les tableaux permettent de les afficher en lignes et en colonnes. Les tableaux sont définis comme étant des suites de lignes. Un...

1

cchristian, le 20 mai 2008 à 14:31:39

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
Cordialement.

Cchristian.

Répondre à cchristian

2

enlérga, le 21 mai 2008 à 16:18:14

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

Répondre à enlérga

3

enlérga, le 21 mai 2008 à 16:46:41

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

Répondre à enlérga

4

cchristian, le 21 mai 2008 à 17:00:48

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.

Répondre à cchristian

5

cchristian, le 22 mai 2008 à 03:11:15

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

http://blogs.msdn.com/...
Cordialement.

Cchristian.

Répondre à cchristian

6

enlérga, le 22 mai 2008 à 09:51:39

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 !

Répondre à enlérga

7

cchristian, le 22 mai 2008 à 11:37:23

Bonjour,

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

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

Cordialement.

Cchristian.

Répondre à cchristian

8

 enlérga, le 22 mai 2008 à 12:02:01

Comme ça, ça marche !

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

Merci !

Répondre à enlérga