|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Candidat au titre de Membre du Club
![]() Inscription : juin 2008 Messages : 51 ![]() |
Bonjour,
Je tiens d'abord à m'excuser si ce sujet a déja eu une réponse, mais ayant passé toute la matinée sur le forum je n'ai pas trouver de répons eà mon interrogation d'où la création de cette discussion; J'ai une table Test avec les valeur: Code :
Code :
1 | 10 | 11 | 12 2 | 1 | 2 | null Merci beaucoup ! |
||||
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() Inscription : août 2008 Messages : 1 271 ![]() |
Recherche pivot sur le forum, mais compte tenu de ton exemple ça ne fonctionnera pas, le SQL est un langage statique qui doit connaître à l'avance le nombre de colonne.
Donc pivote les lignes en colonnes côté applicatif ou génère la requête pivot en déterminant précédemment le nombre de colonnes à afficher. Si tu dois le faire en PL/SQL regarde pivot de tkyte. Sinon regarde peut être du côté de String Aggregation Techniques, mais ça n'est pas du pivot. |
|
|
00
|
|
|
#3 | ||
|
Membre confirmé
![]() Grégoire MARTINIngénieur développement logiciels Inscription : janvier 2011 Messages : 128 ![]() |
Ok c'est un peu tordu , mais l'astuce c'est de générer un chainage entre les lignes puis de passer par une lecture hierarchique et de ne garder que le plus grand path .
Code :
|
||
|
|
00
|
|
|
#4 |
|
Candidat au titre de Membre du Club
![]() Inscription : juin 2008 Messages : 51 ![]() |
Juste une petite correction,
le résultat attendu était plutôt de récupérer le résultats dans des colonnes différentes. ID_PERS | MNT_1 | MNT_2 | MNT_3 | ---------------------------------- 1 | 10 | 11 | 12 | 2 | 1 | 2 | null | |
|
|
00
|
|
|
#5 |
|
Membre Expert
![]() Inscription : août 2008 Messages : 1 271 ![]() |
|
|
|
00
|
|
|
#6 | ||
![]() ![]() |
Comme skuatamad vous l'a indiqué, il faut faire un pivot :
Code :
__________________
Email : http://scr.im/waldar |
||
|
00
|
|
|
#7 |
|
Candidat au titre de Membre du Club
![]() Inscription : juin 2008 Messages : 51 ![]() |
Merci beaucoup pour ta réponse skuatamad. Il n'est donc pas possible d'obtenir ce que je veux .
A vrai dire mon problème est le suivant : J'ai 12 lignes par ID_PERS (1 ligne correspond à un mois) et j'aimerai donc le transposer. Le nombre de colonne est à présent fixé. Je voudrais créer un top=1 pour les id_pers ayant le montant > 1500 durant 3 mois consécutifs? Je ne vois pas comme faire là ... |
|
|
00
|
|
|
#8 | ||
|
Membre Expert
![]() Pacman PacmanBusiness analyst Inscription : juin 2004 Messages : 1 417 ![]() |
Salut !
Tu peux utiliser les fonctions analytiques pour calculer sur chaque ligne une somme selon un ordre et dans un group. Code :
Ensuite, tu fais une sur-requête sur le résultat pour filtrer les lignes dont la somme cumulée est supérieure à 1500...
__________________
(c'est ma photo) Paku, Paku ! Pour les jeunes incultes : non, je ne suis pas un pokémon... Le pacblog : http://pacmann.over-blog.com/ |
||
|
00
|
|
|
#9 |
|
Candidat au titre de Membre du Club
![]() Inscription : juin 2008 Messages : 51 ![]() |
Merci Waldar !
Ton exemple réponds parfaitement à mon besoin initial ! Merci pacmann ! C'est exactement ce que je cherchais ! |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com