|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Futur Membre du Club
![]() Inscription : décembre 2011 Messages : 60 ![]() |
bonjour,
j'aimerai savoir si quelqu'un à une idée de comment entamé le problème ci-dessous? le problème : nous disposons d'une base avec 5 tables et nous souhaitons faire des insertions automatique selon des pourcentages donnés. nous avons une table plats, cuisinier, restaurant, buffet et serveur. ... plats(id, entrée, principal, dessert, ...); ... la base de données sera remplie avec une proportion maitrisée des plats par entrée, principal et dessert. les portion sont les suivantes : entrée : Carpaccio(10%), soupe(20%), salade(40%), Terrine(10%), Risotto(20%). principal : grillade(20%), poulet(20%), viande(40%), pâtes(10%), poisson(10%). dessert : pâtisserie(30%), fruits(30%), boisson(40%). quelqu'un aurai une idée? comment je peux faire ces insertions? merci. NB : je suis nouveau sur le forum et je vous demande de m'excuser si jamais j'ai fais une erreur ou que j'explique mal mon problème. |
|
|
00
|
|
|
#2 | ||
|
Expert Confirmé Sénior
![]() Inscription : juillet 2003 Messages : 3 440 ![]() |
Tu fais 10 insertions dans la table plat :
En entrée, tu mets Carpaccio dans la première, Soupe dans les 2 insertions suivantes, Salade dans les 4 suivantes, Terrine dans la suivante et Risotto dans les 2 dernières. En Principal tu mets Grillade dans les 2 premières, Poulet dans les 2 suivantes, Viande dans les 4 suivantes, pâtes dans la suivante et poisson dans la dernière etc.. Ce qui donne Code :
__________________
More Code : More Bugs. Less Code : Less Bugs |
||
|
|
00
|
|
|
#3 |
|
Futur Membre du Club
![]() Inscription : décembre 2011 Messages : 60 ![]() |
merci pour ta réponse
le problème c'est que il nous demande de remplir la table avec 500 tuples en respectant ces pourcentages. je pense pas qu'il attend de nous d'écrire 500 lignes de insert into. qu'est ce que vous en pensez? il doit y avoir une solution qui nous évite à les écrire mais je n'ai aucune piste pour l'instant à bientôt |
|
|
00
|
|
|
#4 | ||
![]() ![]() |
Il faut jouer avec une requête pour générer des nombres, et utiliser la fonction modulo :
Code :
__________________
Email : http://scr.im/waldar |
||
|
20
|
|
|
#5 | ||
|
Expert Confirmé Sénior
![]() Inscription : juillet 2003 Messages : 3 440 ![]() |
Je m'en doutais un peu.
Ton but est donc de créer une procédure qui insère aléatoirement des données en respectant un % Utilises donc dbms_random pour avoir un aléatoire et générer tes insertions exemple simplifié de code Code :
__________________
More Code : More Bugs. Less Code : Less Bugs |
||
|
|
10
|
|
|
#6 |
|
Futur Membre du Club
![]() Inscription : décembre 2011 Messages : 60 ![]() |
merci pour vos réponses.
au fait une procédure c'est une solution idéale et je vais la garder mais je viens d'apprendre que apparemment il veut qu'on utilise des requêtes et une table temporaire pour résoudre ce problème. pour l'instant je ne sais pas si c'est faisable et je n'ai aucune idée de comment le faire donc pour le moment je vais suivre l'idée de la procédure. encore merci et à bientôt. |
|
|
00
|
|
|
#7 |
|
Membre Expert
![]() Inscription : avril 2006 Messages : 1 024 ![]() |
Waouuh! comment elle me plait ta solution Waldar!
|
|
|
00
|
|
|
#8 |
|
Expert Confirmé Sénior
![]() Inscription : juillet 2003 Messages : 3 440 ![]() |
La solution de Waldar nécessite une 10g (et n'a pas d'aléatoire, mais on peut le rajouter)
__________________
More Code : More Bugs. Less Code : Less Bugs |
|
|
00
|
|
|
#9 |
|
Membre Expert
![]() Inscription : avril 2006 Messages : 1 024 ![]() |
En même temps, ce qui est demandé c'est une proportion, pas de l'aléatoire (qui va forcément s'écarter un peu des proportions requises.)
Enfin moi, j'avais un jugement purement esthétique
|
|
|
00
|
|
|
#10 |
![]() ![]() |
Tout-à-fait, les données de la requête que j'ai proposée sont très figées.
Si c'est limitant on peut d'amuser avec dbms_random. Par contre ça fonctionne en 9i l'astuce connect by level.
__________________
Email : http://scr.im/waldar |
|
00
|
|
|
#11 |
|
Expert Confirmé Sénior
![]() Inscription : juillet 2003 Messages : 3 440 ![]() |
Chez moi en 9.2.0.7 le connect by level ne marche pas (Oracle ne renvoie qu'une seule ligne)
Sur une 10.2 c'est bon.
__________________
More Code : More Bugs. Less Code : Less Bugs |
|
|
00
|
|
|
#12 | ||
|
Futur Membre du Club
![]() Inscription : décembre 2011 Messages : 60 ![]() |
bonjour,
alors j'ai réussi à remplir ma table avec les pourcentages souhaité en modifiant le solution proposé par McM que je remercie à l'occasion. voici le code : Code :
je me demande si quelqu'un aurait une idée? svp merci et à bientôt |
||
|
|
00
|
|
|
#13 |
|
Expert Confirmé Sénior
![]() Inscription : juillet 2003 Messages : 3 440 ![]() |
Heu.. aléatoire : Dbms_random, c'est tout.
Il faut juste associer un retour numérique à un nom (cuisinier), pour le reste c'est facile, ce sont des nombre (la date, suffit juste de rajouter X jours à une date mini)
__________________
More Code : More Bugs. Less Code : Less Bugs |
|
|
00
|
|
|
#14 |
|
Futur Membre du Club
![]() Inscription : décembre 2011 Messages : 60 ![]() |
bonsoir,
j'ai fait une fonction PL/SQL, une pour le prix et une pour le nom du cuisinier, qui retourne une valeur aléatoire mais pour la date je sais pas comment faire sachant que je ne sais pas manipuler les dates merci et à bientôt. |
|
|
00
|
|
|
#15 | ||
|
Expert Confirmé Sénior
![]() Inscription : juillet 2003 Messages : 3 440 ![]() |
la fonction + ou - sur une date permet d'ajouter ou enlever un nombre (avec décimales) de jour
Code :
__________________
More Code : More Bugs. Less Code : Less Bugs |
||
|
|
00
|
|
|
#16 |
|
Futur Membre du Club
![]() Inscription : décembre 2011 Messages : 60 ![]() |
merci McM pour ta réponse.
je vais utiliser ta solution et je posterai la fonction qui retourne une date aléatoire. à bientôt. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com