|
| Iniciado por Ferbak, 11,dic. 2018 15:52 - 3 respuestas |
| |
| | | |
|
| |
Miembro registrado 50 mensajes |
|
| Publicado el 11,diciembre 2018 - 15:52 |
Bonjour à tous,
Je suis souvent confronté à un type de requête dont j'arrive à obtenir un résultat en "bricolant" un peu, mais je pense que je suis loin de faire ça de manière optimale. Du coup, mes requêtes sont souvent lentes.
Concrètement, j'ai trois tables.
Personnes - NN_Personnes_Prestations - Prestations --------------------------------------------------------------------- Id_Perso Id_Perso Id_Presta Id_Presta
Donc une ou plusieurs personnes peuvent participer à une ou plusieurs prestations.
Je voudrais pouvoir effectuer une requête qui me donnerait la liste des prestations à laquelle participe une personne, avec le nombre de personne qui y participe.
Aucun souci pour la requête de base sur les tables Personne et NN, avec param = Id_Perso
Pour obtenir la somme des participants à chaque prestations, j'ai une jointure Id_Presta et COUNT(NN_Personnes_prest.Id_Perso)qui fonctionne, sauf que je ne voudrais effectuer cette requête que pour les Id_Presta de ma première requête. Dans le cas contraire, j'ai bien mes infos, mais la seconde requête est effectuée sur toutes les prestations, pour ne me donner que les quelques sommes nécessaires.
En espérant avoir été clair, si vous pouviez m'éclairer sur la solution "propre" et idéal pour ce type de besoin, ça m'aiderait beaucoup.
Un grand merci d'avance,
FerbakMensaje modificado, 11,diciembre 2018 - 15:53 |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 11 mensajes |
|
| Publicado el 11,diciembre 2018 - 17:04 |
si j ai compris un truc du style select count (N.id_perso),P.id_presta from NN_Personnes_Prestations as N join PRESTA as P on P.id_presta= N.id_presta where P.id_presta in (select N2.id_presta from NN_Personnes_Prestations as N2 where N2.id_perso="TRUC")
non ? |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 50 mensajes |
|
| Publicado el 12,diciembre 2018 - 15:42 |
Bonjour Thorfenn,
Ça semble fonctionner. J'ai dû un peu chipoter pour "traduire" tout, mais ça fonctionne. Merci!
Par contre, impossible de faire une rétro analyse dans Windev. A tout hasard, il n'existe pas de méthode compatible avec l'éditeur de requête?
Merci,
Ferbak |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 50 mensajes |
|
| Publicado el 13,diciembre 2018 - 11:18 |
Bonjour,
Je me permets de venir rajouter un peu plus d'infos, surtout que la mise en forme de mon premier post s'est modifiée et n'était pas très claire.
Voici donc un exemple plus détaillé (et simplifié) :
Personnel Id_Perso 1 2 3
Prestation Id_Prest 1 2 3
NN_Perso_Prest FK_Perso - Fk_Prest 1-2 2-2 1-1 1-3 3-3 2-2
Paramètre : Perso = 1
Résultat : Prest - Nb_participants 2-3 1-1 3-2
Ceci est un exemple simplifié, il y a de nombreuses autres infos qui doivent figurer dans ma requête définitive, d'où le fait que ce serait parfait si je pouvais réaliser cette requête dans l'éditeur directement. Si ce n'est pas possible proprement, je me débrouillerai bien sur.
Merci d'avance,
Ferbak |
| |
| |
| | | |
|
| | | | |
| | |
|