Garder les n premiers resulats d'une requete

jonath62 -  
 jonath62 -
yo tutti,

voila, je travaille avec ACCESS et j'aimerai recolter pour chaque requete les n premieres lignes de resultats uniquement.

Le top du top, ce serait d'avoir les n premier resultats pour chaque clé primaire dans les resultats. je m'explique:

voici mes tables
table 1: fournisseur / produit
table 2: produit / quantité

je voudrai les n produits les plus vendus par fournisseurs.
soit qqchose du genre, si n = 3:
resultat:
fournisseur1 / produit7 / quantité=56
fournisseur1 / produit5 / quantité=48
fournisseur1 / produit13/ quantité=22
fournisseur2 / produit1 / quantité=101
fournisseur2 / produit5 / quantité=25
fournisseur2 / produit11/ quantité=19

kk'un peut-il m'aider svp, ce serait grave sympa parce que je lutte comme un porc avec des table de 500 000 lignes...

merci les mecs

5 réponses

francois
 
heu je vois pas le rapport entre le nombre de données et la complexité de la tache ...bon...

tu peux faire genre :

select ... from ...... where quantité > .... ; > vers une vue ou une table virtuelle
select * from tablevirtuelle where index < nlignes;

ta table virtuelle bien sur doit obligatoirement avoir un index autoincremental.

je connais pas assez access mais sur tous les SGBD que je connais il y a la possibilité de creer une colone de donnée qui s'incremente elle meme

exemple
index commentaire valeur
1         1ere ligne        0

si tu ajoute une ligne tu as:
insert into table values('2eme','1');
select * from table ;
index commentaire valeur
1         1ere ligne        0
2          2eme               1


et donc avec cet index tu peux limiter tes resultat à n lignes
(index <= n)
1
blux Messages postés 19333 Date d'inscription   Statut Modérateur Dernière intervention   3 367
 
Salut,

ACCESS possède un prédicat nommé TOP :

SELECT TOP 15 FROM TAB1 ORDER BY 1;

SELECT TOP 10% FROM TAB2 ORDER BY 1;

L'aide d'ACCESS sera plus complète que moi ! :-)

A+ Blux
 "Les cons, ça ose tout.
C'est même à ça qu'on les reconnait"
0
Utilisateur anonyme
 
SELECT TOP 3
Table1.fournisseur, Table1.produit,Table2.quantite
FROM Table1, Table2
WHERE Table1.produit=Table2.produit
ORDER By Table2.quantite DESC;


;-)
HackTrack
0
francois
 
si en plus il est sous forme de predicat ....que du bonheur...
0

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

Posez votre question
jonath62
 
YAHOOOOOOOOOOOOOOOO!

Merci les gars vous imaginez pas le temps que je vais gagner
J'ai pas encore essayé vos trucs mais ca sent bon en tout cas.

je vous tiens au courant (sisi, vous en mourrez d'envie)

TAK TAK (comme on dit ici au danemark)
0