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

Algorithmes et structures de données Discussion :

Algo de tableau croisé dynamique


Sujet :

Algorithmes et structures de données

  1. #1
    Membre du Club
    Inscrit en
    Novembre 2005
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 76
    Points : 67
    Points
    67
    Par défaut Algo de tableau croisé dynamique
    Bonjour,

    je me casse les dents depuis quelques jours sur la manière de résoudre un algo de tableau croisé dynamique et j'aurais besoin de vos lumières et vos idées...

    j'ai des données comme cela

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Col1	Col2	col3	col4	Val1	
    UNTEL	A	COL	SCOL	1	
    UNTEL	B	COL	SCOL2	2	
    UNTEL2	A	COL	SCOL	3	
    UNTEL2	B	COL2	SCOL2	4	
    UNTEL3	A	COL	SCOL	5

    que je veux transformer comme cela:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    		COL		COL2
    		SCOL SCOL2 	SCOL2
    UNTEL
    	A	1	2	
    	B	
    UNTEL2
    	A	3
    	B			4
    UNTEL3
    	A	5
    bon, je ne mets pas tout le détail mais l'idée est de faire un pivot pour créer un tableau croisé dynamique (sachant que les données sont issues d'une requête SQL déja groupée par les 4 première colonnes).

    La difficulté est que le nombre de colonnes de groupage est variable, il peut y avoir une seule colonne, 2 ou plus et pareil pour les lignes de données. il est même possible qu'il n'y ai pas de groupe sur les colonnes ou les lignes. j'ai entrevu des solutions à base d'arbre mais la démarche à suivre n'est pas très claire pour moi...

    Vous avez une idée, un lien pour résoudre cela ?

  2. #2
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    Bonjour,

    J'ai essayé de résumer les grand principe du traitement en espérant que c'est compréhensible.

    Etape 1 : le paramétrage
    1.a) spécifier la liste des champs à mettre en ligne avec pour chacun d'eux l' ordre de tri, et le besoin de totalisation.
    1.b) spécifier la liste des champs à mettre en colonne avec pour chacun d'eux l' ordre de tri, et le besoin de totalisation.
    1.c) spécifier la liste des champs à mettre en cellule avec pour chacun d'eux l' ordre de tri, et le besoin de totalisation.

    Etape 2 : le traitement des données d'entrée
    2.a)On gère une liste de records avec comme clé l'ensemble des champs lignes et colonnes et comme valeur l'ensemble des champs cellules
    Pour chaque donnée d'entrée, on détermine un record avec une clé (combinaison de la clé ligne et de la clé colonne) et une valeur (ensmble des valeurs des champs cellule).
    Si la clé existe dans la liste, on totalise ce record avec celui de la liste correspondant à la clé, sinon on ajoute le record à la liste.
    2.b) On trie la liste
    2.c) On effectue les totalisations demandées (en évitant de créer un total lorsqu'il n'y a qu'un record à totaliser).

    Etape 3 : Sortie du tableau croisé
    3.a) on détermine les colonnes, c'est à dire autant de colonnes que de clé colonnes différentes dans la liste des records.
    3.b) on traite chaque record :
    - si la clé ligne est différente de celle du record précédent, on "finalise" l'enregistrement de sortie en cours et on crée un nouvel enregistrement de sortie dans lequel on remplit la colonne correspondant à la clé colonne du record.
    - si la clé ligne est identique à la précédente (la clé colonne est forcément différente), on remplit la colonne correspondant à la clé colonne de l'enregistrement en cours.

Discussions similaires

  1. filtrer tableau croisé dynamique sous excel
    Par kernel57 dans le forum Excel
    Réponses: 7
    Dernier message: 17/11/2006, 14h18
  2. Tableau croisé dynamique
    Par papy_tergnier dans le forum Access
    Réponses: 5
    Dernier message: 26/12/2005, 18h05
  3. Tableau croisé dynamiqué élaboré sous Access
    Par Mahefasoa dans le forum Access
    Réponses: 1
    Dernier message: 20/11/2005, 08h04
  4. tableau Croisé Dynamique
    Par Bjuice2 dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 10/11/2005, 10h36
  5. tableau croisé dynamique sous delphi, comment ?
    Par Brice Yao dans le forum Bases de données
    Réponses: 2
    Dernier message: 20/07/2005, 09h33

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