|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : février 2007 Messages : 14 ![]() |
Bonjour à tous !
Une question concernant une requête dont je n'arrive pas à me sortir... J'ai les deux tables suivantes : Individu Nom | Prenom | DatedeNaissance -----| ----------|---------- Toto | Totu | 20070512 Adresses Individu FK_Individu | Adresse -----------|------------- Toto | Adresse 1 Toto | Adresse 2 Et voilà, j'aimerais avoir en une requete le resultat suivant : Nom | Prenom | Adresse | Adresse ----------------------------------- Toto | Totu | Adresse1|Adresse2 Qui plus est, vous vous imaginez bien que ceci n'est qu'un exemple. Je peux en effet avoir n adresses à récupérer Auriez-vous une solution ou du moins une piste pour faire une requête relativement légère (pas d'union ou de trucs dans le genre Merci beaucoup d'avance, si vous trouvez qque chose, vous me sauvez !
|
|
|
00
|
|
|
#2 |
![]() ![]() Consultant en Business Intelligence Inscription : janvier 2007 Messages : 1 192 ![]() |
Bonjour,
Perso, je ferais un petit curseur sur adresse et avec une petite procedure plsql faire la concaténation du résultat avec le resultat de la 1ere requete. |
|
|
00
|
|
|
#3 |
![]() ![]() Inscription : janvier 2004 Messages : 15 861 ![]() |
ça a été très souvent traité, essaye de faire une recherche dans ce forum et le forum SQL.
|
|
|
00
|
|
|
#4 |
|
Expert Confirmé
![]() Chef de projet en SSII Inscription : janvier 2004 Messages : 2 866 ![]() |
La solution dépend de la version d'oracle. Alors merci de respecter les règles du forum et de préciser votre version.
__________________
Un problème sans solution est un problème mal posé Merci de poser vos questions sur le forum, je ne réponds pas aux questions posées par MP. |
|
|
00
|
|
|
#5 |
|
Invité de passage
![]() Inscription : février 2007 Messages : 14 ![]() |
Oracle 10g, dsl
Pour les autres posts du forum, les solutions trouvées sont pour des exemples precis avec des nombres de colonnes arretés. Personnellement, je cherche à construire "dynamiquement" mes colonnes. Dans l'exemple de mon 1er message, un individu peut avoir 1 adresse mais un autre peut en avoir 4 etc... Donc le nombre de colonnes est variable. Merci de vos idées ! |
|
|
00
|
|
|
#6 |
|
Expert Confirmé
![]() Chef de projet en SSII Inscription : janvier 2004 Messages : 2 866 ![]() |
Dans ce cas tu peux créer ta propre fonction d'aggrégation :
http://www.developpez.net/forums/sho...98&postcount=4
__________________
Un problème sans solution est un problème mal posé Merci de poser vos questions sur le forum, je ne réponds pas aux questions posées par MP. |
|
|
00
|
|
|
#7 |
|
Invité de passage
![]() Inscription : février 2007 Messages : 14 ![]() |
Merci je vais lire tout ça
|
|
|
00
|
|
|
#8 | |
|
Expert Confirmé Sénior
![]() Inscription : juillet 2003 Messages : 3 450 ![]() |
Citation:
C'est pour utiliser dans quoi cette requete ?
__________________
More Code : More Bugs. Less Code : Less Bugs |
|
|
|
00
|
|
|
#9 |
|
Invité de passage
![]() Inscription : février 2007 Messages : 14 ![]() |
Je decris plus précisemment le problème :
J'ai une application où les utilisateurs peuvent créer leurs champs. Ceux-ci sont associés à la source de données alimentant la fenêtre dans laquelle ils sont créés. Par exemple, j'ai une fenetre qui affiche tous les individus; l'utilisateur ajoute visuellement les champ "Adresse" et "Profession" qui n'existaient pas auparavant. Plutot que de changer la structure de la table, j'utilise le modele de meta-données . cf http://sqlpro.developpez.com/cours/m...n/metadonnees/ Ma requete entre la table Individu et le modele meta-donnée me renvoie deux lignes pour chaque individu (car dans le meta modele, on a une ligne par nouveau champ créé) : Nom | Prenom | Profession Nom | Prenom | Adresse Or je souhaiterais Nom | Prenom | Profession | Adresse. Le nombre de colonnes est variables car je peux avoir la table "Société", affichée dans une autre fenetre à qui l'utilisateur aura ajouté 5 champs. Donc lors d'une même requete, on aura toujours le même nombre de colonnes. J'avoue que je n'avais pas été très précis là dessus ! Voilà precisemment mon cas d'utilisation |
|
|
00
|
|
|
#10 |
![]() ![]() Inscription : janvier 2004 Messages : 15 861 ![]() |
non mais là c'est à l'applicatif de se débrouiller, en SQL ce n'est pas possible
Le SQL récupère des données, charge au client (SQL*Plus, Forms, J2EE, etc...) de mettre le résultat en forme |
|
|
00
|
|
|
#11 |
|
Invité de passage
![]() Inscription : février 2007 Messages : 14 ![]() |
Personne n'a une piste ?
Les aggregats ne semblent pas repondre à mes besoins |
|
|
00
|
|
|
#12 |
![]() ![]() Consultant en Business Intelligence Inscription : janvier 2007 Messages : 1 192 ![]() |
Est ce que tu peux utiliser une procédure pl/sql ou est ce qu'il te faut une 'vrai' requete ?
|
|
|
00
|
|
|
#13 |
|
Invité de passage
![]() Inscription : février 2007 Messages : 14 ![]() |
Bien sur je peux utiliser un procédure PL/SQL
J'essaie d'en faire une d'ailleurs depuis ce matin mais j'avoue que je rame bien comme il faut ! |
|
|
00
|
|
|
#14 | |||
![]() ![]() Consultant en Business Intelligence Inscription : janvier 2007 Messages : 1 192 ![]() |
Citation:
En regardant de plus près ton problème, peut être qu'un curseur dynamique pourrait t'aider Je prends l'exemple de l'adresse : Code :
|
|||
|
|
00
|
|
|
#15 |
|
Invité de passage
![]() Inscription : février 2007 Messages : 14 ![]() |
C'est effectivement dans ce sens que je m'oriente. Merci de ton aide
|
|
|
00
|
|
|
#16 |
|
Expert Confirmé
![]() Chef de projet en SSII Inscription : janvier 2004 Messages : 2 866 ![]() |
Les fonctions pipelined peuvent être une solution à ton problème.
__________________
Un problème sans solution est un problème mal posé Merci de poser vos questions sur le forum, je ne réponds pas aux questions posées par MP. |
|
|
00
|
|
|
#17 |
![]() ![]() Consultant en Business Intelligence Inscription : janvier 2007 Messages : 1 192 ![]() |
+ d'info sur les pipelined ici :
http://sheikyerbouti.developpez.com/pl_sql/?page=Chap4 Par contre, je vois pas bien ce que l'on gagne à ce servir de ça... PlaineR, peux tu nous en dire plus sur les avantages / inconvenients de cette fonction ? |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com