trie en sql sur jointure

trie en sql sur jointure - SQL/NoSQL - Programmation

Marsh Posté le 31-03-2004 à 10:26:46    

Bonjour,
 
Voilà j'ai un probleme avec une requete sql :
 
Je dois trier une table sur des enregidtrmeent d'une autre table : jointure. Ok mais j'ai uen relation de 1--> plusieurs donc je me retrouve avec une jointure qui dedbouble des enregistrements de ma 1er table... Le dinstinct ne fontionne des lors plus puisque la ligne créer par jointure est unique (car plusieur enregistrement dans la seconde tables...)
 
J'ai essayer plussieurs methodes... Rien ne passent. Le plus simple je penses serait quelque choses comme ca :  
 
SELECT DISTINCT * FROM                
Biblio/Tab1 A left outer join Biblio/Tab2 B on A.noprof =
B.noprof and A.codtsu = B.codtsu and A.coupcd = B.coupst WHERE  
A.zzlib3 <> ' ' and A.zzlib4 <> ' ' ORDER BY colonne
 
avec un ajout là : on A.noprof = B.noprof and A.codtsu = B.codtsu and A.coupcd = B.coupst AND Min(B.etage). Mais cette syntaxe n'est pas correcte en faite je veux trié sur le champ colonne mais il peut y avoir plusieur colonne pour 1 enregistrement de la Tab1 et je voudrais selection l'enregistrement de la Tab2 qui à le champ etage le plus petit
 
Toute aide sera prise comme parole divinne... Je me galere :-/
Merci

Reply

Marsh Posté le 31-03-2004 à 10:26:46   

Reply

Marsh Posté le 31-03-2004 à 11:43:19    

SELECT DISTINCT A.*, B.colonne FROM                  
Biblio/Tab1 A left outer join Biblio/Tab2 B on A.noprof =  
B.noprof and A.codtsu = B.codtsu and A.coupcd = B.coupst WHERE    
A.zzlib3 <> ' ' and A.zzlib4 <> ' ' ORDER BY colonne

Reply

Marsh Posté le 31-03-2004 à 13:11:43    

merci de ta reponse mais non, ce n'est pas ca. Avec cette formule j'ai toujours ma relation de 1 vers plusieurs car je doi trié sur la colonne mais comme pour 1 noprof il y a plusieurs colonne je dois prendre la colonne de l'enregistrement ou etage est le plus petit

Reply

Marsh Posté le 31-03-2004 à 14:12:51    

est-ce que l'étage est unique ?
Peut-il y avoir plusieurs étages qui correspondent au minimum pour un enregitrement de A ?

Reply

Marsh Posté le 31-03-2004 à 15:01:32    

Sans reprendre tes tables (J'ai pas regardé toutes tes jointures) :

Code :
  1. SELECT min(B.etage), A.nom, B.colonne
  2. FROM A,B
  3. WHERE A.x=B.x -- Ici tu mets la jointure entre les 2 tables et tes autres filtres
  4. GROUP BY A.nom, B.colonne
  5. ORDER BY B.colonne


 
C'est ça que tu voulais ?

Reply

Marsh Posté le 31-03-2004 à 15:24:10    

Non il peut y avoir plussieur etage, en faite c'est pour trié le champ noprof de facons a voir les profils affiché dans l'ordre croissant des colonnes ou il se trouvent... Mais le meme prof peut etre à plusieur endroits. je doit prendre le casier avec l'etage le plus baset trié les profile sur l'ordre des colonne des casier de leur etage le plus bas :S donc le min (B.etage) devrait en faite se situer dans la jointure... merci de votre soutient

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed