IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage SQL Discussion :

nombre de champs identique dans une ligne


Sujet :

Langage SQL

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    311
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2002
    Messages : 311
    Points : 96
    Points
    96
    Par défaut nombre de champs identique dans une ligne
    Bonjour,

    J'aimerai savoir comment compter le nom de chiffres identique dans une ligne/enregistrement.
    J'ai une table qui comporte entre autre 60 champs numérique.
    j'aimerai pour chaque enregistrement/ligne savoir combien il y à de chiffre 11 dans ces 60 champs numérique.

    En fais je doit faire un classement au total des 60 champs numérique.
    Les champs sont remplis de nombre de 0 à 11.
    En cas d'égalité, c'est le nombre de 11 qui départage.

    Existe t'il un requete SQL pour faire ce genre de chose ???

    Merci d'avance
    FikoU

  2. #2
    Expert éminent sénior
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Points : 12 891
    Points
    12 891
    Par défaut
    Bonjour,

    Pouvez vous nous en dire plus sur le schéma de votre table ?

    ++

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    311
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2002
    Messages : 311
    Points : 96
    Points
    96
    Par défaut
    Re,
    C'est une table qui me sert pour le classement d'un concours de tir.
    Le concours est de 6 passe de 10 coups. Les cibles vont de 0 à 10 plus la mouche (zone à l'intérieur du 10).
    En cas d'égalité au total des 60 coups je doit effectuer le classement selont le nombre le plus important de mouches.
    Je marque les mouches dans ma table avec le nombre 11.
    Donc en cas d'égalité j'aimerai connaitre le nombre de "11" de la ligne des tireurs à égalité.
    Ma table se compose des champs suivants :
    nom, prenom, licence...
    coup_1 ...... coup_60
    passe1 .......passe_10
    Total

    Avant le nouveau réglement je classai de la sorte :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     "SELECT * FROM " & tabConcours(NomTable) & " ORDER BY I_Total DESC, I_Passe6 DESC, I_Passe5 DESC, I_Passe4 DESC, " & _
                           "I_Passe3 DESC, I_Passe2 DESC, I_Passe1 DESC, I_Nom;"
    Maintenant je doit d'abord compter les "mouches".
    En fait cette méthode de tri est toujours valable si le nombre de mouches est égal

    Merci d'avance
    FikoU

  4. #4
    Expert éminent sénior
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Points : 12 891
    Points
    12 891
    Par défaut
    Voici une solution en fonction des données que vous avez donné. J'ai simplement classé par total et par nombre d'occurences des "mouches" par joueur. A voir si cela vous convient :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    CREATE TABLE t 
    ( 
     nom VARCHAR(20),
     prenom VARCHAR(20),
     coup_1 INT,
     coup_2 INT,
     coup_3 INT,
     coup_4 INT,
     passe1 INT,
     passe2 INT,
     total INT
    )
    GO
     
    INSERT INTO t VALUES ('toto','toto',1, 11, 2, 11, 12, 13, 25)
    INSERT INTO t VALUES ('tota','tota',11, 11, 2, 11, 22, 13, 35)
    INSERT INTO t VALUES ('toti','toti',1, 11, 7, 5, 12, 13, 25)
    GO
     
    SELECT 
     nom,
     prenom,
     CASE coup_1 WHEN 11 THEN 1 ELSE 0 END +
     CASE coup_2 WHEN 11 THEN 1 ELSE 0 END +
     CASE coup_3 WHEN 11 THEN 1 ELSE 0 END + 
     CASE coup_4 WHEN 11 THEN 1 ELSE 0 END AS nb_11,
     total
    FROM t
    ORDER BY total DESC, nb_11 DESC
    ++

Discussions similaires

  1. Contrôle champs identiques dans une table
    Par Fingertip dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 31/08/2011, 15h56
  2. [MySQL] Compter le nombre de valeurs identiques dans une colonne d'une table
    Par luca120 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 03/12/2009, 01h40
  3. Probleme de Champ identique dans une CListCtrl
    Par poseidon2 dans le forum MFC
    Réponses: 2
    Dernier message: 27/12/2006, 19h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo