Selection de 10 champs au hazard

cs_math85 Messages postés 58 Date d'inscription lundi 7 janvier 2002 Statut Membre Dernière intervention 26 janvier 2005 - 6 mai 2002 à 10:47
syndrael Messages postés 2378 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 29 décembre 2012 - 14 mai 2002 à 20:36
:question) Est il possible de selectionner dans une table access 10 champs au hazard sans doublons??

merci

[mailto:mathieut@libertysurf.fr mail]
:big)

5 réponses

syndrael Messages postés 2378 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 29 décembre 2012 20
6 mai 2002 à 16:41
A vrai dire, tout dépend du nombre de lignes que tu récupères (important ou non)
<cfquery ... name="myQuery">
select Id,Champ1...
from Toto
</cfquery>
<cfset lId = ValueList(myQuery.Id)>
<cfset lIdLen = ListLen(lId)>
<cfset Idx = 0>
<cfset Nb = 10>
<cfloop condition="(Idx LT Nb) OR lIdLen GT 0">
<cfset Pipo = RandRange(1,lIdLen)>
<cfoutput>#myQuery.Champ1[Pipo]#</cfoutput>
<cfset lId = ListDeleteAt(lId,Pipo)>
<cfset lIdLen = lIdLen - 1>
<cfset Idx = Idx + 1>
</cfloop>
Mais c'est une solution de tete, je te conseille si tu as le temps de passer tout ça sous CFScript !!

S.
0
Rastafa Messages postés 49 Date d'inscription vendredi 29 mars 2002 Statut Membre Dernière intervention 14 septembre 2004
7 mai 2002 à 04:00
Tu peux aussi le faire en SQL...
<CFQUERY name="TrouverClient" datasource="Cie">
SELECT TOP 10 noClient, nomClient
FROM [Clients]
ORDER BY Rnd(noClient);
</CFQUERY>
<CFDUMP var="#TrouverClient#">

(J'ai présumé que tu voulais afficher 10 enregistrements au hazard et non 10 champs )

------------------
Rastafa
0
syndrael Messages postés 2378 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 29 décembre 2012 20
8 mai 2002 à 14:46
100% d'accord avec toi. En full sql on peut faire plein de choses, mais tout dépend du SGBD et de la norme SQL. De plus, le Rnd peut te sortir le meme, d'ou probleme...
S.
0
syndrael Messages postés 2378 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 29 décembre 2012 20
14 mai 2002 à 20:26
Grrrr !! J'aimais bien cette soluce avec le Rnd, mais manque de chance Rnd n'est po reconnu sous SQL Server. Kelk'un connait son équivalent sous SQL Server ??
Pfff, je vais devoir sortir ma soluce...
S.
0

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

Posez votre question
syndrael Messages postés 2378 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 29 décembre 2012 20
14 mai 2002 à 20:36
J'ai trouvé sous SQL Server

SELECT Top 10 *
FROM Toto
ORDER BY NEWID()
Voila !!
S.tout.content...
0
Rejoignez-nous