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 :

Concatener dans un group by


Sujet :

MS SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert Avatar de Oluha
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 183
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 183
    Par défaut Concatener dans un group by
    Salut

    Quand on utilise la clause group by, il est possible de faire des sommes avec la fonction sum sur des colonnes de types numérique. Moi j'aimerai pouvoir concatener des colonnes de type chaine. Comment faire ?

    Merci

  2. #2
    Membre confirmé
    Inscrit en
    Août 2004
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 102
    Par défaut
    Si ta question est de recuperer dans le select un champ concatené, il suffit de faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     SELECT a + b from table1
    Si a et b sont du meme type bien sur...

  3. #3
    Membre Expert Avatar de Oluha
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 183
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 183
    Par défaut
    sauf que je veux pas concatener 2 colonnes distinctes

    imaginons 2 lignes à 3 colonnes :

    A B C
    A B D
    Je voudrais :

    A B CD

  4. #4
    Membre confirmé
    Inscrit en
    Août 2004
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 102
    Par défaut
    tu peut essayer en faisant une jointure sur la meme table et concatener les deux colonnes. Par exemple, immaginons une table test avec deux champs A et B, si on a la requete suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    select test.A, t.A, test.B, t.B, test.B + t.B
    from test inner join test t on test.A = t.A
    where test.B <> t.B
    Par contre on a la concatenation dans les deux sens, pour reprendre ton exemple, on a A B CD mais aussi A B DC....[/quote]

  5. #5
    Membre Expert Avatar de Oluha
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 183
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 183
    Par défaut
    oui c'est bien ce que je pensais, faut jouer avec les jointures mais ca m'arrange pas, car je peux avec un nombre indéfini de lignes

  6. #6
    Membre confirmé
    Inscrit en
    Août 2004
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 102
    Par défaut
    au bout d'un moment, le langage SQL a ses limites ....
    et bien souvent ca nous arrange pas.
    Peut etre qu'au niveau de la conception, les choses n'ont pas bien ete pensé ?

  7. #7
    Rédacteur
    Avatar de WOLO Laurent
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Mars 2003
    Messages
    2 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 2 741
    Par défaut
    Citation Envoyé par Oluha
    sauf que je veux pas concatener 2 colonnes distinctes

    imaginons 2 lignes à 3 colonnes :

    A B C
    A B D
    Je voudrais :

    A B CD
    Est ce que vous pouvez étendre votre exemple sur plusieurs cas pour plus de compréhension s.v.p.

    Découvrez la FAQ de MS SQL Server.
    La chance accorde ses faveurs aux esprits avertis !

  8. #8
    Membre Expert Avatar de Oluha
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 183
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 183
    Par défaut
    c'est plutôt que je dois sortir un état à la mormoilenoeud avec une liste de produits pour chaque règlement, le tout devant se trouver sur une seule ligne. J'ai bidouillé dans mon prog pour obtenir ce que je veux mais ca aurait été plus propre de concatener en SQL.

  9. #9
    Membre Expert Avatar de Oluha
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 183
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 183
    Par défaut
    Citation Envoyé par WOLO Laurent
    Est ce que vous pouvez étendre votre exemple sur plusieurs cas pour plus de compréhension s.v.p.
    A B C
    A B D
    B A C
    D E F
    D E G
    D E H
    voilà ce que je ressors sans grouper et ce que je voudrais obtenir :

    A B CD
    B A C
    D E FGH
    Je veux grouper les 2 premiers colonnes et concatener les valeurs de la 3eme.

  10. #10
    Nouveau membre du Club
    Inscrit en
    Mars 2006
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 5
    Par défaut
    Pourquoi ne pas utiliser une procedure stockee avec deux curseurs ?

    Le premier curseur sélectionne les clefs (les deux premières colonnes)
    le second selectionne les enregistrements pour la clef courante, concatene le résultat dans une variable et depose à l'issue le résultat dans une table temporaire de travail.

  11. #11
    Membre Expert Avatar de Oluha
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 183
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 183
    Par défaut
    oui j'avais pensé passer par une table mais le soucis c'est qu'avec SQL report server je crois qu'on peut faire que des datasets, du moins je n'ai pas trouvé comment executer une requête et faire du code pour un rapport

  12. #12
    Nouveau membre du Club
    Inscrit en
    Mars 2006
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 5
    Par défaut SQL2K
    Je vous propose d'utiliser la commande "EXECUTE"
    Reportez vous à l'aide den ligne (celle de l'analyseur de requête) vous y trouverez dans la même rubrique l'utilisation d'un curseur.

    PS: Attention toutefois, les exemples de code de l'aide en ligne peuvent ne pas marcher (je l'ai remarqué, et ce pour des problèmes de d'interprétation de la quote (') et de l double quote ("), ceux situés sur le site de microsoft eux fonctionnent.

    Doc en ligne SQL 2005 (compatible pour transac SQL)
    http://msdn2.microsoft.com/fr-fr/library/ms310245(MSDN.10).aspx

    Doc téléchrageable SQL 2000
    http://www.microsoft.com/france/sql/utilisez/infotech/info/info.asp?mar=/france/sql/telecharge/info/DocProduit.html.

  13. #13
    Membre Expert Avatar de Oluha
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 183
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 183
    Par défaut
    euh je sais utiliser les procédures stockées et les curseurs dans l'analyseur ou dans un programme mais apparemment SQL reports (sous visual studio net) n'accepte que des requêtes select en dataset pour générer un rapport.

  14. #14
    Nouveau membre du Club
    Inscrit en
    Mars 2006
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 5
    Par défaut
    Désolé mais je ne connais ni sql report ni visual studio.

Discussions similaires

  1. Enregistrer un nouveau serveur dans un groupe de serveur ?
    Par pop bob dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 19/07/2005, 16h18
  2. Regrouper des champs dans un GROUP BY
    Par kaiserazo dans le forum Langage SQL
    Réponses: 7
    Dernier message: 11/07/2005, 08h43
  3. [C#] Concatenation dans label Text
    Par Oberown dans le forum ASP.NET
    Réponses: 6
    Dernier message: 11/01/2005, 10h12
  4. GROUP_ID dans requete GROUP BY
    Par quemener dans le forum Oracle
    Réponses: 11
    Dernier message: 25/10/2004, 10h59
  5. Réponses: 6
    Dernier message: 05/08/2004, 13h15

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