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

MS SQL Server Discussion :

[SQLSERVER2005] Group by + LKE '%'


Sujet :

MS SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    190
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 190
    Par défaut [SQLSERVER2005] Group by + LKE '%'
    Bonjour,

    J'ai une table qui compte des numéros de comptes, chacun lié à un pays
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    PAYS COMPTE
    A     12301
    A     12303
    A     51201
    A     12305
    B     12802
    B     18502
    C     18501
    C     18504
    C     41803
    C     48150
    ...
    J'aimerai avoir un code qui me permette d'avoir la table de résultat ci-dessous.
    En fait, je veux pouvoir identifier, selon les pays, combien de comptes se terminent par 0, par 1, par 2, par 3, etc..
    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
    PAYS CHIFFRE TOT_COMPTE
    A     0        0
    A     1        2
    A     2        0
    A     3        1
    A     5        1
    B     0        0
    B     1        0
    B     2        2
    B     3        0
    B     4        0
    B     5        0
    C     0        1
    C     1        1
    C     2        0
    C     3        1
    C     4        1
    C     5        0
    ...
    Auriez-vous une idée ?
    Merci d'avance.

  2. #2
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Par défaut
    Bonjour,

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT PAYS,RIGHT(COMPTE, 1), COUNT(*)
    FROM LaTable
    GROUP BY PAYS, RIGHT(COMPTE, 1)

    Cette requete ne vous renverra pas les lignes pour lesquelles il n'y a aucun compte !
    Si vous les voulez, vous pouvez faire :
    Code SQL : 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
     
    WITH nb AS (
        SELECT 0 AS n
        UNION ALL
        SELECT n + 1
        FROM nb
        WHERE n < 9
    ),
    P AS (
    	SELECT DISTINCT Pays
    	FROM LaTable
    )
    SELECT P.PAYS, n, COUNT(Compte) AS Nombre
    FROM  P
    CROSS JOIN nb
    LEFT JOIN LaTable T
    	ON T.Pays = P.Pays
            AND RIGHT(T.Compte,1) = n
    GROUP BY P.PAYS, n
    ORDER BY P.PAYS, n

    Qui pourrait s'ecrire plus proprement/simplement si votre base était mieux conçue, avec la liste des pays dans une table à part, reference par la table des comptes, ce qui est peut etre le cas (remplacez alors la pseudo table P par la table des pays)

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    190
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 190
    Par défaut
    Merci bcp aieeeuuuuu !!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT PAYS,RIGHT(COMPTE, 1), COUNT(*)
    FROM LaTable
    GROUP BY PAYS, RIGHT(COMPTE, 1)

    J'ai réussi à modifier ce code selon mes besoins.

    Décidémment, vous m'êtes d'une grande aide.


    Merci à la communauté

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. SQLSERVER2005 - GROUP BY
    Par apnw7931 dans le forum MS SQL Server
    Réponses: 12
    Dernier message: 18/02/2011, 10h57
  2. [CR8] Groupes nommés par ordre spécifié
    Par PschittN dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 17/05/2004, 23h46
  3. [RaveReport] - Bloquer groupe sur une page
    Par muaddib dans le forum Rave
    Réponses: 3
    Dernier message: 25/02/2003, 16h21
  4. gestion des groupes
    Par muaddib dans le forum QuickReport
    Réponses: 3
    Dernier message: 31/12/2002, 11h01

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