OVH Cloud OVH Cloud

sélectionner des enregistrements par requêtes

7 réponses
Avatar
Oliv113
Alors voila

Dans une base "Points" je veux sortir en requête les meilleurs
enregistrements de points par ID ?

J'ai pensé dans un premier temps à créer une table temporaire en numérotant
les champs de 1 à x trié dans l'ordre décroissant des points mais hic je n'y
arrive pas et
peut etre qu'il y a plus simple

merci d'avance

7 réponses

Avatar
Hervé DUCARNE
Bonjour,

Tu veux dire quoi par "Dans une base "Points" je veux sortir en requête les
meilleurs
enregistrements de points par ID ?"

C'est une table point ?
C'est quoi id ? La clé primaire ?
Les meilleurs, c'est un nombre (les 10 premiers par exemple) ou tu veux
faire un tri décroissant de ta table ?
Si c'est le cas, tu crées une requête basé sur ta table, et tu fais un tri
décroissant sur le champ point.

@+



"Oliv113" a écrit dans le message de
news:
Alors voila

Dans une base "Points" je veux sortir en requête les meilleurs
enregistrements de points par ID ?

J'ai pensé dans un premier temps à créer une table temporaire en
numérotant

les champs de 1 à x trié dans l'ordre décroissant des points mais hic je
n'y

arrive pas et
peut etre qu'il y a plus simple

merci d'avance


Avatar
Jessy Sempere [MVP]
Bonjour

C'est pas très clair tout ça ????
Si tu veux trouver pour un enregistrement, quel est la valeur la
plus élevée entre tous les champs de ce même enregistrement,
tu trouveras une piste ici :
http://access.jessy.free.fr/index.html?Menu=3&Page=VariableMax

@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Oliv113" a écrit dans le message de
news:
Alors voila

Dans une base "Points" je veux sortir en requête les meilleurs
enregistrements de points par ID ?

J'ai pensé dans un premier temps à créer une table temporaire en
numérotant

les champs de 1 à x trié dans l'ordre décroissant des points mais hic je
n'y

arrive pas et
peut etre qu'il y a plus simple

merci d'avance


Avatar
Oliv113
en fait j'ai une table ou je stoke des points gagnés par des ID d'une table
Joueurs. Pour faire un classement je dois faire le total des 10 meilleurs
performances (le plus de points) sur l'ensemble des points gagnés par un ID.

en résumé

j'ai 15 enregistrements pour le même ID avec à chaque fois des points et je
veux les 10 meilleurs sur les 15...

merci d'avance





Alors voila

Dans une base "Points" je veux sortir en requête les meilleurs
enregistrements de points par ID ?

J'ai pensé dans un premier temps à créer une table temporaire en numérotant
les champs de 1 à x trié dans l'ordre décroissant des points mais hic je n'y
arrive pas et
peut etre qu'il y a plus simple

merci d'avance


Avatar
Hervé DUCARNE
Re,

Regardes du côté du côté de SELECT TOP.

Ca donnerait un truc dans le genre :

SELECT TOP 10 POINT, ID FROM TATABLE...

@+

"Oliv113" a écrit dans le message de
news:
en fait j'ai une table ou je stoke des points gagnés par des ID d'une
table

Joueurs. Pour faire un classement je dois faire le total des 10 meilleurs
performances (le plus de points) sur l'ensemble des points gagnés par un
ID.


en résumé

j'ai 15 enregistrements pour le même ID avec à chaque fois des points et
je

veux les 10 meilleurs sur les 15...

merci d'avance





Alors voila

Dans une base "Points" je veux sortir en requête les meilleurs
enregistrements de points par ID ?

J'ai pensé dans un premier temps à créer une table temporaire en
numérotant


les champs de 1 à x trié dans l'ordre décroissant des points mais hic je
n'y


arrive pas et
peut etre qu'il y a plus simple

merci d'avance




Avatar
3stone
Salut,

"Oliv113"
| Dans une base "Points" je veux sortir en requête les meilleurs
| enregistrements de points par ID ?
|
| J'ai pensé dans un premier temps à créer une table temporaire en numérotant
| les champs de 1 à x trié dans l'ordre décroissant des points mais hic je n'y
| arrive pas et
| peut etre qu'il y a plus simple


Quelque chose comme :

SELECT *
FROM MaTable As a
WHERE a.ID IN (SELECT TOP 3 b.ID
FROM MaTable As b
WHERE b.ID=a.ID
ORDER BY b.Points DESC)



Le TOP 3 à un défaut...
Si le troisième et le quatrième sont à égalité, il te les donne tous les deux
et donc au final... quatre ;-)


--
A+
Pierre (3stone) Access MVP
Perso: http://users.skynet.be/accesshome/
Conseils MPFA: http://users.skynet.be/mpfa/
Avatar
Oliv113
SELECT POINT.ID, POINT.POINT
FROM POINT
WHERE (((POINT.POINT) In (SELECT TOP 10 POINT1.POINT FROM POINT As POINT1
WHERE POINT1.ID=POINT.ID
ORDER BY POINT1.POINT DESC)))
ORDER BY POINT.ID, POINT.POINT DESC;


OUHHHHHHHHHH C MIEUX COMME CA MERCI 3stone mais effectivement avec egalité
je me retrouve avec 11 enregistrements ......


Salut,

"Oliv113"
| Dans une base "Points" je veux sortir en requête les meilleurs
| enregistrements de points par ID ?
|
| J'ai pensé dans un premier temps à créer une table temporaire en numérotant
| les champs de 1 à x trié dans l'ordre décroissant des points mais hic je n'y
| arrive pas et
| peut etre qu'il y a plus simple


Quelque chose comme :

SELECT *
FROM MaTable As a
WHERE a.ID IN (SELECT TOP 3 b.ID
FROM MaTable As b
WHERE b.ID=a.ID
ORDER BY b.Points DESC)



Le TOP 3 à un défaut...
Si le troisième et le quatrième sont à égalité, il te les donne tous les deux
et donc au final... quatre ;-)


--
A+
Pierre (3stone) Access MVP
Perso: http://users.skynet.be/accesshome/
Conseils MPFA: http://users.skynet.be/mpfa/






Avatar
Oliv113
SELECT test.ID, Sum(test.POINT) AS SommeDePOINT, Count(test.POINT) AS
CompteDePOINT, Min(test.POINT) AS MinDePOINT,
IIf([ComptedePOINT]>10,((-([ComptedePOINT]-10)*[MindePOINT])+[SommedePOINT])/10,[SommedePOINT]/10) AS TOTAL
FROM test
GROUP BY test.ID;

AVEC UNE SECONDE REQUETE LE TOUR EST JOUE


SELECT POINT.ID, POINT.POINT
FROM POINT
WHERE (((POINT.POINT) In (SELECT TOP 10 POINT1.POINT FROM POINT As POINT1
WHERE POINT1.ID=POINT.ID
ORDER BY POINT1.POINT DESC)))
ORDER BY POINT.ID, POINT.POINT DESC;


OUHHHHHHHHHH C MIEUX COMME CA MERCI 3stone mais effectivement avec egalité
je me retrouve avec 11 enregistrements ......


Salut,

"Oliv113"
| Dans une base "Points" je veux sortir en requête les meilleurs
| enregistrements de points par ID ?
|
| J'ai pensé dans un premier temps à créer une table temporaire en numérotant
| les champs de 1 à x trié dans l'ordre décroissant des points mais hic je n'y
| arrive pas et
| peut etre qu'il y a plus simple


Quelque chose comme :

SELECT *
FROM MaTable As a
WHERE a.ID IN (SELECT TOP 3 b.ID
FROM MaTable As b
WHERE b.ID=a.ID
ORDER BY b.Points DESC)



Le TOP 3 à un défaut...
Si le troisième et le quatrième sont à égalité, il te les donne tous les deux
et donc au final... quatre ;-)


--
A+
Pierre (3stone) Access MVP
Perso: http://users.skynet.be/accesshome/
Conseils MPFA: http://users.skynet.be/mpfa/