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

VB.NET Discussion :

Passage de lignes en colonnes avec regroupement + rajout de colonnes


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    44
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2007
    Messages : 44
    Par défaut Passage de lignes en colonnes avec regroupement + rajout de colonnes
    Hello, j'ai une requête qui me renvoie:
    PdtID | PdtName | Price | TarifID
    10 | Poisson | 15.50 | 0
    10 | Poisson | 20.50 | 1
    10 | Poisson | 12.50 | 2


    Et j'aimerai que dans mon grid ça donne:
    PdtID | PdtName | Tarif 0 | Tarif 1 | Tarif 2
    10 | Poisson | 15.50 | 20.50 | 12.50


    Le nombre de tarif est indéfini.
    Mais je n'y arrive pas est-ce que quelqu'un aurait une idée?

    Merci d'avance

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    299
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 299
    Par défaut
    Bonjour,
    Tu dis que le nombre de tarifs est indéfini mais faudra bien définir une limite supérieur acceptable.

    1) Dans un premier temps, un select distinct portant sur le TarifId te permettra de savoir le nombre de colonnes à ajouter dynamiquement à ton DataGridView

    2) Puis un select distinct portant sur le produitId te permettra de mettre un place une boucle qui va rajouter une ligne à ton datagridview en renseignant dans la bonne colonne de tarif des lignes renvoyées par un select sur le produit id en question.

    C'est un peu 'haut niveau' comme explication mais ça ne devrait pas être trop compliqué à implémenter...

  3. #3
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Si tu le fais en SQL, comme l'a dit nokoko34, tu es obligé d'avoir une limite, puisque les colonnes à sélectionner doivent être indiquées dans la requête.

    Si tu te fixes un maximum de 3 tarifs par exemple, tu peux faire une requête comme ça :
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT p0.PdtID, p0.PdtName, p0.Price AS Tarif0, p1.Price AS Tarif1, p2.Price AS Tarif2
    FROM Product p0
    LEFT OUTER JOIN p1 ON p1.PdtID = p0.PdtId
    LEFT OUTER JOIN p2 ON p2.PdtID = p0.PdtId
    WHERE p0.TarifID = 0
    AND p1.TarifID = 1
    AND p2.TarifID = 2
    Par contre pour les performances ça doit pas être génial... Pour chaque colonne tarif que tu veux rajouter, il faut ajouter une jointure...

    Une autre approche est de faire une requête simple sur la table, et de transformer les données en mémoire, vu qu'avec un DataSet tu peux facilement ajouter des colonnes dynamiquement...

Discussions similaires

  1. copie ligne en colonne avec passage ligne automatique
    Par John Parker dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 26/10/2011, 10h37
  2. [XL-2007] Lignes en colonnes avec regroupement selon note
    Par Blondain dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 14/11/2010, 11h06
  3. Réponses: 3
    Dernier message: 11/04/2008, 15h37
  4. [VBA-E] Minimum d'une colonne avec condition sur autre colonne
    Par Currahee dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 10/05/2007, 17h01
  5. Passage de ligne en colonne
    Par HurtMarley dans le forum MS SQL Server
    Réponses: 14
    Dernier message: 21/07/2006, 18h15

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