FORUMS PROFESSIONNELS
WINDEV
,
WEBDEV
et
WINDEV Mobile
Accueil
|
Messages récents
|
Connexion
|
Déconnexion
|
Français
Accueil
→
WINDEV 2024
→
Requête
Requête
Débuté par tbu, 03 mar. 2006 14:46 - 5 réponses
Connectez-vous…
tbu
#1
Posté le 03 mars 2006 - 14:46
Mon fichier stockant des candidats est ainsi fait:
Candidat1: Allemand
Candidat1: Anglais
Candidat1: Russe
Candidat2: Anglais
Candidat3: Anglais
Candidat3: Italien
etc...
Comment rédiger une requête pour extraitre les candidats qui parlent Allemand ET anglais ET ... (ET ou OU d'ailleurs)
Le problème est qu'il y a une ligne par langue maîtrisée (je ne veux pas créer x colonnes langues partant du principe qu'un candidat pourrait maîtriser une infinité de langues)
Merci de votre réponse
Signaler
0
0
patrick.bouqueet
#2
Posté le 04 mars 2006 - 11:03
Si le candidat peut parler une infinité de langues il serait préférable de
n'avoir qu'une ligne par candidat dans le fichier Candidat, d'avoir un
fichier Langues listant toutes les langues et un fichier intermédiaire
LanguesCandidat.
Il serait alors facile d'écrire un requête sélectionnant tous les candidats
parlant une langue ou les langues d'une liste.
--
Cordialement.
Patrick Bouquet
Membre WINDASSO - Association des utilisateurs WxxDEV(c)
http://www.windasso.org
"Bubu" <tbu@mbi.fr> a écrit dans le message de news:
440820c7$1@news.pcsoft.fr...
Mon fichier stockant des candidats est ainsi fait:
Candidat1: Allemand
Candidat1: Anglais
Candidat1: Russe
Candidat2: Anglais
Candidat3: Anglais
Candidat3: Italien
etc...
Comment rédiger une requête pour extraitre les candidats qui parlent
Allemand ET anglais ET ... (ET ou OU d'ailleurs)
Le problème est qu'il y a une ligne par langue maîtrisée (je ne veux pas
créer x colonnes langues partant du principe qu'un candidat pourrait
maîtriser une infinité de langues)
Merci de votre réponse
Signaler
0
0
tbu
#3
Posté le 04 mars 2006 - 21:31
Mais c'est le cas: j'ai un fichier central "Candidat" un fichier "Langues" et un fichier de liaison 'Candidat_Langues" (idem pour les diplomes d'ailleurs).
C'est donc bien une requête sur un fichier de liaison que je voudrais réaliser.
Signaler
0
0
patrick.bouqueet
#4
Posté le 06 mars 2006 - 11:53
Bonjour,
Voici une façon de procéder.
Avec l'éditeur de requête, il suffit de sélectionner les rubriques Candidat
et Langue.
Ensuite il faut mettre :
une condition sur Langue : est dans la liste Param1
Activer la suppression des doublons.
A l'exécution de la requête il sufit de passer une chaîne contenant la ou
les langues recherchées en les séparant par des ";".
Vous obtiendrez la liste des candidats parlant au moins l'une des langues de
la liste.
Maintenant il faut faire une seconde requête sur la première requête.
Sélectionner les deux rubriques Candidat et Langue.
Faire un comptage sur la rubrique langue.
Vous obtiendrez la liste des candidats avec le nombre de langues parlées.
Si la liste contenait 3 langues, les candidats avec la somme=3 parlent les 3
langues.
Ceux dont la somme est 2 parlent 2 parmi les 3 langues...
--
Cordialement.
Patrick Bouquet
Membre WINDASSO - Association des utilisateurs WxxDEV(c)
http://www.windasso.org
"bubu" <tbu@mbi.fr> a écrit dans le message de news:
4409a914$1@news.pcsoft.fr...
Mais c'est le cas: j'ai un fichier central "Candidat" un fichier "Langues"
et un fichier de liaison 'Candidat_Langues" (idem pour les diplomes
d'ailleurs).
C'est donc bien une requête sur un fichier de liaison que je voudrais
réaliser.
Signaler
0
0
f.demilly
#5
Posté le 06 mars 2006 - 15:14
Bonjour,
En SQL, c'est assez facile, il suffit de faire une autojointure:
select t1.CodeCandidat from MaTable as t1,MaTable as t2 where t1.CodeCandidat = t2.CodeCandidat and t1.langue in ('ANGLAIS','ALLEMAND') and t2.langue in ('ANGLAIS','ALLEMAND') and t1.langue <> t2.langue
Avec le OU, c'est encore plus simple:
select CodeCandidat from MaTable where langue in ('ALLEMAND','ANGAIS')
Frédéric.
Signaler
0
0
f.demilly
#6
Posté le 06 mars 2006 - 16:42
Ou encore plus simple:
Select CodeCandidat,count(*) from MaTable where Langue in ('ALLEMAND','ANGLAIS') group by CodeCandidat having count(*) = 2
Frédéric.
Signaler
0
0
→ Revenir à WINDEV 2024
WINDEV 2024
WINDEV 2024
WEBDEV 2024
WEBDEV 2024
WINDEV Mobile 2024
WINDEV Mobile 2024
WINDEV (précédentes versions)
WINDEV (précédentes versions)
WEBDEV (précédentes versions)
WEBDEV (précédentes versions)
WINDEV Mobile (précédentes versions)
WINDEV Mobile (précédentes versions)
Etats & Requêtes
Etats & Requêtes
Hors-sujet
Hors-sujet
Outils
Outils
WINDEV 26
WINDEV 2024
WINDEV 2024
WINDEV 25
WEBDEV 2024
WEBDEV 2024
WINDEV Mobile 2024
WINDEV (précédentes versions)
Français
English
Español
Portuguesa
Fermer cette fenêtre
Type de recherche
Uniquement les sujets
Tous les messages
Période de recherche
Date indifférente
Moins d'une heure
Moins de 24 heures
Moins d'une semaine
Moins d'un mois
Moins d'un an
Annuler
Aperçu de votre message
Ajouter une image
Importer une image depuis une URL
Envoyer une image depuis un fichier de votre disque
Déposez ici un fichier ou cliquez sur "Parcourir..."
ou
Annuler
0%
WLangage
SQL
XML, HTML
JAVA, Javascript
Texte