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 :

Grouper des données


Sujet :

Langage SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Inscrit en
    Mai 2007
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 4
    Par défaut Grouper des données
    Bonjour a tous,

    Je pratique le sql depuis peu et j'ai un besoin un peu particulier.

    Je m'explique, j'ai une table comme ceci

    TableA

    Col1 Col2
    A A1
    A A2
    A A3
    A A4
    A A5
    A A6
    A A7
    B B1
    B B2
    B B3
    ... ....

    et j'aimerais arriver a ce résultat:

    A
    A1/A2/A3/A4/A5
    A6/A7
    B
    B1/B2/B3/...

    En gros je dois regrouper les elements de ma colonne 2 en fonction de ma colonne 1: ca je sais faire en utilisant cette fonction:
    /*----------------------------*/
    SET NOCOUNT ON
    DECLARE
    @cur_titre char(5),
    @cur_row char(5)


    DECLARE cur_titre CURSOR FOR
    SELECT DISTINCT(col1)
    from dbo.TableA

    OPEN cur_titre
    FETCH cur_titre INTO @cur_titre

    WHILE @@FETCH_STATUS=0
    BEGIN
    PRINT @cur_titre
    DECLARE cur_row CURSOR FOR
    SELECT col2 FROM dbo.TableA
    where col1 = @cur_titre
    OPEN cur_row
    FETCH NEXT FROM cur_row INTO @cur_row

    WHILE @@FETCH_STATUS=0
    BEGIN
    PRINT @cur_row
    FETCH NEXT FROM cur_row INTO @cur_row
    END
    CLOSE cur_row
    DEALLOCATE cur_row

    FETCH NEXT FROM cur_titre into @cur_titre
    END

    CLOSE cur_titre
    DEALLOCATE cur_titre
    /*---------------------*/

    Mais je dois aussi afficher seulement cinq enregistrement par ligne séparés par des /. Et ca malheuresement je sais pas faire...

    J'espere que vous pourrez m'aider.

    Merci par avance.

    Nono

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    254
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2007
    Messages : 254
    Par défaut
    Selon moi, tu utilises le SQL à contre-emploi. Le SQL c'est très bien pour extraire des données d'une DB. Par contre la mise en forme, c'est pas sa tasse de thé. C'est plutôt du ressort du langage qui utilise le SQL. Qu'utilises-tu?
    Si tu désire malgré tout rester à ce niveau, pour mySql il y a l'attribut 'LIMIT 0 5' (Syntaxe approximatif) qui ne te donnera que les 5 premiers records. Pour d'autres db, il existe également une commande pour obtenir les 5 premiers records.

  3. #3
    Futur Membre du Club
    Inscrit en
    Mai 2007
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 4
    Par défaut
    Merci pour ta reponse.

    J'utilise Transact SQL pour faire ma mise en forme de données.
    Je reconnais qu'il serait plus rigoureux de faire cela avec un autre langage...

Discussions similaires

  1. Comment grouper des données
    Par Conico113 dans le forum Webi
    Réponses: 6
    Dernier message: 26/03/2012, 17h16
  2. Grouper des données texte avec excel
    Par emule16 dans le forum Excel
    Réponses: 3
    Dernier message: 08/01/2008, 22h15
  3. Grouper des données dans un tableau
    Par matsmen dans le forum InfoPath
    Réponses: 1
    Dernier message: 02/08/2007, 14h12
  4. Grouper des données selon une date
    Par gids01 dans le forum iReport
    Réponses: 2
    Dernier message: 30/07/2007, 16h03
  5. [XSLT] trier et grouper des données
    Par kd dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 16/01/2007, 09h56

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