Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1251 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [SQL] problème complexe de requête

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[SQL] problème complexe de requête

n°959364
frouge
Posté le 22-01-2005 à 18:21:29  profilanswer
 

Bonjour,
 
commençons par la table
 
-----------------------------------------------
id | isMaster | Master_id | Classe | Serie |
-----------------------------------------------
1 |___1___ |_________|______|
2 |___0___ |___1_____|___A__|
3 |___0___ |___1_____|___A__|
4 |___0___ |___3_____|______|___3
5 |___0___ |___3_____|______|___4
6 |___1___ |_________|______|
7 |___0___ |___6_____|___B__|
 
 
un id unique
un champ isMaster (0 pour non, 1 pour oui)
Master_id correspond à l'id du master
 
une hiérarchie (Master > Classe > Serie)
 
Voilà comment cela se passe:
Il s'agit de fonds financiers, un fond Master peut comporter ou pas plusieurs fond d'une certaine Classe
Un fond d'une certaine Classe peut comporter ou pas plusieurs fond d'une certaine Série
 
Le but de ma requête est, à partir de l'id d'un fond Master, de ramener toutes ses classes et leur séries rattachées
donc en fait, si isMaster = 1, il existe une ou plusieurs classes (dans le cas d'un fond Master) ou une ou plusieurs séries (dans le cas d'un fond de type Classe)
Mon problème est que je sais comment traduire un "si" en SQL.
Néanmoins si cela est impossible j'ai un programme derrière qui pourra m'aider à faire cela, mais j'aimerais savoir si une unique requête en SQL peut être réalisable
 
 
 
Je vous remercie !

mood
Publicité
Posté le 22-01-2005 à 18:21:29  profilanswer
 

n°959370
pains-aux-​raisins
Fatal error
Posté le 22-01-2005 à 18:28:58  profilanswer
 

si tu es sous Oracle, il y a la fonction DECODE.
Sinon, j'aurais déjà tendance à dire que ta table est mal golée... :heink:

n°959401
frouge
Posté le 22-01-2005 à 19:10:03  profilanswer
 

j'ai pensé à ça : que pensez-vous de ceci ?
 
chosen_id : id transmis à la requête
fond : nom de la table
 
 
SELECT * FROM fond
WHERE Master_id = chosen_id
UNION Master_id = chosen_id
UNION (Master_id = Masterd_id IN (SELECT * FROM fond WHERE Master_id = chosen_id))

n°959428
pains-aux-​raisins
Fatal error
Posté le 22-01-2005 à 20:03:15  profilanswer
 

Pb de syntaxe...

Code :
  1. select *   --- les classes
  2.   from fond
  3. where master_id = chosen_id
  4. union
  5. select *   --- les series
  6.   from fond
  7. where master_id in (select id
  8.                        from fond
  9.                       where master_id = chosen_id)


n°959432
frouge
Posté le 22-01-2005 à 20:16:12  profilanswer
 

exact je te remercie

n°960587
Arjuna
Aircraft Ident.: F-MBSD
Posté le 24-01-2005 à 12:12:05  profilanswer
 

Sous Oracle, il y a aussi et surtout le "connect by prior"

n°970934
pains-aux-​raisins
Fatal error
Posté le 03-02-2005 à 18:01:57  profilanswer
 

Arjuna a écrit :

Sous Oracle, il y a aussi et surtout le "connect by prior"


merci arjuna, cette syntaxe vient de me rendre un fier service :jap:


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [SQL] problème complexe de requête

 

Sujets relatifs
Exporter base SQL vers .txt[HTML/CSS] Problème entre Mozilla et IE
probleme GDB[Débutant] Problème de classe
SQL trier par date inverseprobleme de cookie
Problème de date[openGL] problème de conpilation
Garder le résultat d'une requete en mémoire avec PHPProblème avec STRTOK
Plus de sujets relatifs à : [SQL] problème complexe de requête


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR