Requête comparaison 2 résultats en tables

Fermé
Philippe - 25 mai 2011 à 09:21
 Philippe - 14 juin 2011 à 18:30
Bonjourà tous je voudrais réaliser une comparaison des résultats dans un champ de la table 1 par rapport à un autre champ de la table2 est-ce possible si oui comment l'exécuter.


Car je souhaite récupérer les nom des personnes ayant répondu à un formulaire et de la comparer a un groupe dans la table personnes afin de sortir les personnes n'ayant pas répondu.
A voir également:

8 réponses

Oui enfaite je souhaite récupérer l'id dans un premier temps de la personne qui n'as pas répondu a à un formulaire précis. Mais je n'arrive pas à l'executer.


Je fais donc une requete du type : Select distinct pers_id FROM table1 where form_id = 16

J'ai donc 2 résultat : 9 et 12

Apres dans une table j'ai créer un groupe ou sont enregistré les personnes donc dans une table il ya 2 champs le pers_id et le group_id et je veux donc faire la comparaison si il y a un pers_id 8 alors cette personne n'a pas répondu au formulaire 16.

Est-ce que vous comprenez ce que j'essaye de vous expliquer
2
sudoer Messages postés 113 Date d'inscription lundi 9 mai 2011 Statut Membre Dernière intervention 11 juin 2011 14
25 mai 2011 à 18:50
Je pense que c'est ça : select pers_id from table2 where pers_id not in (select pers_id from table1 where form_id = 16)
1
sudoer Messages postés 113 Date d'inscription lundi 9 mai 2011 Statut Membre Dernière intervention 11 juin 2011 14
25 mai 2011 à 10:43
Bonjour, si j'ai bien compris ce que tu veux faire, il faut utiliser une sous-requête qui comparera les noms, tu peux regarder ceci : https://sqlpro.developpez.com/cours/sqlaz/sousrequetes/ .

ps: c'est le mot clé "not in" qui te servira à faire le lien entre la sous-requête est la requête principale.
0
En effet c'est cette requete mais le soucis ne s'arrête pas là j'ai un problème enfaite c'est que dans la table1 et la table2 on dispose de l'identifiant de la pers et non son prénom ou nom. Donc le but étant d'afficher le nom et le prénom qui se trouve dans une table3 et pour ça je ne sais pas du tout comment procéder.
Car si j'ai plusieurs personne qui non pas répondu alors la 1ère requête retournera 2 voir plus de résultats donc il faudra afficher 2 ou plusieurs nom et prénom.

pers_id est dans les 3 tables

Sais tu comment procéder ?
0

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

Posez votre question
sudoer Messages postés 113 Date d'inscription lundi 9 mai 2011 Statut Membre Dernière intervention 11 juin 2011 14
26 mai 2011 à 21:34
Si ceci ne marche pas, poste un schéma de la base : select nom, prenom from table3 where pers_id not in (select pers_id from table1 where form_id = 16)
0
Table groupe : 2champs : pers_id group_id
Table pers : plusieurs champs dont : pers_id ; pers_name ; pers_surname
Table formulaire : plusieurs champs dont : pers_id ; form_id ;


Le but étant de récupérer les noms des personnes qui n'ont pas répondu à 1 formulaire par rapport à 1 groupe.

Qui n'as pas répondu à ce formulaire du group 2 ?

Voila j'espère que tu as compris
0
sudoer Messages postés 113 Date d'inscription lundi 9 mai 2011 Statut Membre Dernière intervention 11 juin 2011 14
31 mai 2011 à 10:49
Alors en plus de la sous-requête, il faut faire une jointure :
select  pers_name, pers_surname from pers inner join groupe on groupe.pers_id = pers.pers_id where group_id like 'id du groupe' and pers.pers_id not in (select pers_id from formulaire where dorm_id = 'id du formulaire')
0
bonjour je suis parvenue à réussir la requête par contre j'ai un autre soucis je voudrais réaliser ceci : Récupérer le pourcentage uniquement ou les réponses d'une questions sont très satisfaisant ou satisfaisante puis additionner les deux.
C'est à dire question 1 : comment avez vous trouvez la journée : très bien , bien , nul ou très nul. si très bien a été répondu 3x et bien 4x par rapport à 15 réponses(3tres bien , 4bien , 5nul et 3très nul). alors il faudra afficher question : 1 ==> 46,6% .

Le soucis c'est que je n'arrive à ressortir les réponses par rapport aux réponses très bien ou bien.

Select champ_reponse from table where form_id = 10 like 'très bien ou bien'
0