SQL et limite de réponse

antomooz Messages postés 3 Statut Membre -  
antomooz Messages postés 3 Statut Membre -
Bonjour à toutes et à tous

Je me pose la question de la faisabilité de la requête suivante, si quelqu'un pouvait m'aider (au moins me dire si c'est faisable) :

une table de personnes( une ligne par personne) avec en particulier les colonnes pays et ville.

je voudrais faire une requête qui me sort pour chaque pays, deux villes (prises au hasard ou les deux premières peu importe) et pour chacune des villes, 5 personnes (càd 5 lignes), cela fait donc une réponse comprenant 5*2*nb de pays lignes

Voilà, avec comme précision que j'aimerai que ça marche aussi sous access (donc pas de fonction LIMIT, mais la fonction TOP existe tout de même)

D'avance merci,

Mooz
A voir également:

4 réponses

oberion Messages postés 1255 Statut Membre 249
 
Hello,

Pour un équivalent de LIMIT, il existe un algo très bien expliqué ici:
http://www.devparadise.com/technoweb/code/sql/a453.php

Cela doit fonctionner sous ACCESS et sous n'importe quel SGBD qui implemente la fonction TOP.
Il est évident que les performances ne sont pas identiques, il ne faudra pas oublier de bien placer tes index.
Bon courage.
0
antomooz Messages postés 3 Statut Membre
 
Merci pour ta réponse, mais malheureusement, cela ne répond pas à mon problème :

sortir pour chaque pays 10 lignes (5 par ville, deux villes quelconques)

Mooz
0
oberion Messages postés 1255 Statut Membre 249
 
Ok, j'avais lu un peu vite. En fait, c'est très faisable, cependant ton schema de base est un peu pourrie. Il y a une grosse redondance d'informations.
Fais une table ville, une table pays et à la place de ville et de pays dans la fiche personne met les id correspondant.
Ta requête sera nettement plus facile à composer.
0
antomooz Messages postés 3 Statut Membre
 
C'est pas faux mais peu importe que j'ai 3 tables ou une seule avec jointure sur un id_villet et id_pays, la question reste la même.
J'ai demandé à quelques amis "spécialistes" (enfin plus que moi) de SQL et personne n'a trouvé de réponse, en dehors de faire du script avec un langage autre (et utilisation d'un boucle).

Merci quand même de tes réponses.

Mooz
0