URGENT ! :) REQUETE ( Select ) facile si vous travailler souvent avec select ..

Résolu
Nightcourrier Messages postés 118 Date d'inscription dimanche 12 octobre 2003 Statut Membre Dernière intervention 28 mars 2008 - 5 oct. 2004 à 19:33
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 - 7 oct. 2004 à 17:48
Bonjour à tous

Voci mon problème

J'ai 2 Table : T_Cellule et T_Membre

Voici ma première table

T_Cellule
lngNoCellule
lngNoMembre
strPret

2ieme Table

T_Membre
lngNoMembre

Je dois trouver tous les membres que le champ strPret n'Est pas null dans la table t_cellule et ensuite classer mes membres en ordre alphabitiques.

Voici mon commencement de requete

"select * from T_cellule where strPre is not null"
bon cela fonctionne bien maintenant comment je fais pour lui dire:
Le résultats de cette requete classe les en ordre alphabétiques ..

Merci de votre aide.

Nightcourrier :)

13 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
5 oct. 2004 à 20:54
Salut Nightcourrier
Je te propose :
select MM.strNom, MM.strPrenom [, ...]
From T_cellule CC, T_Membre MM
Where CC.strPret is not null
And CC.lngNoMembre = MM.lngNoMembre
Order by MM.strNom, MM.strPRenom


Vala
Jack
3
cboulas Messages postés 2641 Date d'inscription mercredi 2 juin 2004 Statut Membre Dernière intervention 8 janvier 2014 16
5 oct. 2004 à 20:56
Ayé j'ai trouver, en supposant que RS1 est le recordset de la 1ère base et RS2 celui de la 2nd, et DB la connection de la base.
On va afficher le résultat dans un fichier toto.txt

'Faisons le triage dans l'ordre
Set RS2 = db.OpenRecordset("select * from T_Membre ORDER BY strNom DESC, strPRenom", dbOpenDynaset)

'Recherche des strPre est Null
Set RS1 = db.OpenRecordset("select * from T_cellule where strPre is not null", dbOpenDynaset)

'Maintenant triage des infos pour conserver ce que l'on veux
open "toto.txt" for output as #1

do until rs1.eof
   do until RS1.fields("lngNoMembre")=RS2.fields("lngNoMembre")
    RS2.movenext
   loop
   print #1, "Nom : " & RS1.fields("strNom") & " / Prénom : " & RS1.fields("strPRenom")
   RS2.MoveFirst
   RS1.movenext
loop

close #1


Normalement ça doit marcher mais il peut y avoir des soucis alors teste pour moi STP

Copyright (c) 1996 Microsoft Corporation
Chris...
Web : Firstruner - eMail : [mailto:support@firstruner.com Support]
3
cboulas Messages postés 2641 Date d'inscription mercredi 2 juin 2004 Statut Membre Dernière intervention 8 janvier 2014 16
5 oct. 2004 à 19:44
Salut,

Ajoute à la fin de ta requette : "ORDER BY ... ASC"

exemple : "select * from T_cellule where strPre is not null order by T_Cellule ASC"

Chris...
Web : Firstruner - eMail : [mailto:support@firstruner.com Support]
0
Nightcourrier Messages postés 118 Date d'inscription dimanche 12 octobre 2003 Statut Membre Dernière intervention 28 mars 2008
5 oct. 2004 à 20:35
Salut cboulas,
je viens de me rentre compte que j'ai mal formuler ma question ...

Je recommence

J'ai 2 Table : T_Cellule et T_Membre

Voici ma première table

T_Cellule
lngNoCellule
lngNoMembre
strPret

2ieme Table

T_Membre
lngNoMembre
strNom
strPRenom

je veux avoir les cellules qui ont un pret ( donc strPret non vide [T_CELLULE ] ) et je veux les classer par Nom et prénom ( strNom et strrenom [ T_MEMBRE ]

Merci de ton aide :)

Nightcourrier :)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cboulas Messages postés 2641 Date d'inscription mercredi 2 juin 2004 Statut Membre Dernière intervention 8 janvier 2014 16
5 oct. 2004 à 20:38
A oui effectivement y'a pb il faut que je re-éxamine le truc, car je n'ai jamais fait de double classement d'un coup

Chris...
Web : Firstruner - eMail : [mailto:support@firstruner.com Support]
0
cboulas Messages postés 2641 Date d'inscription mercredi 2 juin 2004 Statut Membre Dernière intervention 8 janvier 2014 16
5 oct. 2004 à 20:59
Jack,

Effectivement j'avais pas pensé à lié les 2 bases ensemble dans le triage, terrible

Chris...
Web : Firstruner - eMail : [mailto:support@firstruner.com Support]
0
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 20
5 oct. 2004 à 21:16
Bizarre, vos trucs, j'aurais plutôt vu ça comme ça :

select * From T_cellule, T_Membre
Where T_cellule.lngNoMembre = T_Membre.lngNoMembre
AND not isnull(strPret)
Order by strNom, strPRenom


Et en plus, ça marche et je me sers souvent de ce genre de truc.

Cordialement, CanisLupus

Tous les glands ne deviennent pas des chênes mais tous les chênes ont été des glands
0
cboulas Messages postés 2641 Date d'inscription mercredi 2 juin 2004 Statut Membre Dernière intervention 8 janvier 2014 16
5 oct. 2004 à 21:23
Dis CanisLupus, StrPret n'éxiste que dans une des tables, cela ne gêne pas ?

Chris...
Web : Firstruner - eMail : [mailto:support@firstruner.com Support]
0
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 20
5 oct. 2004 à 21:36
Bien sûr que non puisqu'il y a une liaison par lngNoMembre entre les 2 tables.
Essaie, tu verras que ça ne gêne pas du tout. Je pratique le SQL depuis un bail et je t'en parle en connaissance de cause.
Le seul truc qui pourrait gêner c'est si un champ se retrouve dans les 2 tables comme lngNoMembre et dans ce cas, il faut dire dans quelle table on le prend. C'est pour ça que j'ai écrit T_cellule.lngNoMembre = T_Membre.lngNoMembre.

Si tu préfères, (et si tu connais ACCESS) la liaison par lngNoMembre entre les 2 tables est équivalente à INNER JOIN ....

Cordialement, CanisLupus

Tous les glands ne deviennent pas des chênes mais tous les chênes ont été des glands
0
Nightcourrier Messages postés 118 Date d'inscription dimanche 12 octobre 2003 Statut Membre Dernière intervention 28 mars 2008
5 oct. 2004 à 21:37
HEEEEeeeeee merci a tous le monde ca la très bien marcher ! :)

a+
Nightcourrier :)
0
cboulas Messages postés 2641 Date d'inscription mercredi 2 juin 2004 Statut Membre Dernière intervention 8 janvier 2014 16
5 oct. 2004 à 21:47
Thank's CanisLupus

Chris...
Web : Firstruner - eMail : [mailto:support@firstruner.com Support]
0
cs_Benouille Messages postés 215 Date d'inscription jeudi 24 octobre 2002 Statut Membre Dernière intervention 7 septembre 2007
7 oct. 2004 à 00:54
ouais d'ailleurs un inner join est plus puissant qu'une clause dans le where parceque plutot que de charger les tables en produit cartésien pour faire son tri il n'en charge qu'une et passe par l'index de l'autre

d'ou l'interet aussi de bien indexer sa base, comme ça il ne parcourt que l'index.

cboulas, un bon conseil: ne fait pas tes tris en vb, c'est lourd, c'est lent, c'est imbittable a reprendre et c'est bidouille a mort.

De manière générale moi je ne mets JAMAIS de sql en vb. tout le travail sur les données doivent être fait par le serveur de base de données (en plus ça tombe bien, il est la pour ça)

Benouille la grenouille :approve)
0
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 20
7 oct. 2004 à 17:48
OK avec Benouille,
Quand j'ai interros complexes, je crée la requête avec l'assistant d'ACCESS quitte à retoucher quelques bricoles à la mano et de VB, je me sers de QueryDef.

Cordialement, CanisLupus

Tous les glands ne deviennent pas des chênes mais tous les chênes ont été des glands
0
Rejoignez-nous