je voudrais que grace à un miracle SQL (j'y ai séché tout l'après midi) que
ma requete sorte les personnes dont :
- la competence 1 à un niveau 4 et que la competence 2 a un niveau 3
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Via
Bonjour Jérôme.
Pour moi ça doit donner un truc du genre : SELECT empl_nom, competences, niveau FROM Nom_Table WHERE (competences = 1 AND niveau = 4) OR (competences = 2 AND niveau = 3); Normalemenent ça marche !
je voudrais que grace à un miracle SQL (j'y ai séché tout l'après midi)
que
ma requete sorte les personnes dont : - la competence 1 à un niveau 4 et que la competence 2 a un niveau 3
résultat:
empl_nom competences niveau DURAND 1 4 DURAND 2 3
Merci d'avance
Bonjour Jérôme.
Pour moi ça doit donner un truc du genre :
SELECT empl_nom, competences, niveau FROM Nom_Table WHERE (competences = 1
AND niveau = 4) OR (competences = 2 AND niveau = 3);
Normalemenent ça marche !
Via :)
"jeorme" <jerome.boutin@filtrauto.com> a écrit dans le message de
news:%2337fisSLEHA.624@TK2MSFTNGP11.phx.gbl...
Pour moi ça doit donner un truc du genre : SELECT empl_nom, competences, niveau FROM Nom_Table WHERE (competences = 1 AND niveau = 4) OR (competences = 2 AND niveau = 3); Normalemenent ça marche !
je voudrais que grace à un miracle SQL (j'y ai séché tout l'après midi)
que
ma requete sorte les personnes dont : - la competence 1 à un niveau 4 et que la competence 2 a un niveau 3
résultat:
empl_nom competences niveau DURAND 1 4 DURAND 2 3
Merci d'avance
jeorme
merci mais désolé car dans ce cas DUPOND apparaît quand même !! "Via" a écrit dans le message de news:
Bonjour Jérôme.
Pour moi ça doit donner un truc du genre : SELECT empl_nom, competences, niveau FROM Nom_Table WHERE (competences = 1 AND niveau = 4) OR (competences = 2 AND niveau = 3); Normalemenent ça marche !
Via :)
"jeorme" a écrit dans le message de news:% > Bonjour à tous, > > petite colle en SQL > > j'ai une table sous cette forme: > > empl_nom competences niveau > DUPOND 1 4 > DUPOND 1 2 > DURAND 1 4 > DURAND 2 3 > DURAND 3 2 > > je voudrais que grace à un miracle SQL (j'y ai séché tout l'après midi) que > ma requete sorte les personnes dont : > - la competence 1 à un niveau 4 et que la competence 2 a un niveau 3 > > résultat: > > empl_nom competences niveau > DURAND 1 4 > DURAND 2 3 > > > > Merci d'avance > > > > > >
merci mais désolé car dans ce cas DUPOND apparaît quand même !!
"Via" <chew.baka@caramail.com> a écrit dans le message de news:
u4Mu9vSLEHA.1392@TK2MSFTNGP09.phx.gbl...
Bonjour Jérôme.
Pour moi ça doit donner un truc du genre :
SELECT empl_nom, competences, niveau FROM Nom_Table WHERE (competences = 1
AND niveau = 4) OR (competences = 2 AND niveau = 3);
Normalemenent ça marche !
Via :)
"jeorme" <jerome.boutin@filtrauto.com> a écrit dans le message de
news:%2337fisSLEHA.624@TK2MSFTNGP11.phx.gbl...
> Bonjour à tous,
>
> petite colle en SQL
>
> j'ai une table sous cette forme:
>
> empl_nom competences niveau
> DUPOND 1 4
> DUPOND 1 2
> DURAND 1 4
> DURAND 2 3
> DURAND 3 2
>
> je voudrais que grace à un miracle SQL (j'y ai séché tout l'après midi)
que
> ma requete sorte les personnes dont :
> - la competence 1 à un niveau 4 et que la competence 2 a un niveau 3
>
> résultat:
>
> empl_nom competences niveau
> DURAND 1 4
> DURAND 2 3
>
>
>
> Merci d'avance
>
>
>
>
>
>
merci mais désolé car dans ce cas DUPOND apparaît quand même !! "Via" a écrit dans le message de news:
Bonjour Jérôme.
Pour moi ça doit donner un truc du genre : SELECT empl_nom, competences, niveau FROM Nom_Table WHERE (competences = 1 AND niveau = 4) OR (competences = 2 AND niveau = 3); Normalemenent ça marche !
Via :)
"jeorme" a écrit dans le message de news:% > Bonjour à tous, > > petite colle en SQL > > j'ai une table sous cette forme: > > empl_nom competences niveau > DUPOND 1 4 > DUPOND 1 2 > DURAND 1 4 > DURAND 2 3 > DURAND 3 2 > > je voudrais que grace à un miracle SQL (j'y ai séché tout l'après midi) que > ma requete sorte les personnes dont : > - la competence 1 à un niveau 4 et que la competence 2 a un niveau 3 > > résultat: > > empl_nom competences niveau > DURAND 1 4 > DURAND 2 3 > > > > Merci d'avance > > > > > >
jeorme
merci mais dans ce cas DUPOND apparaît également a écrit dans le message de news: c6of0n$dcj$
Bonjour,
... where (competences = 1 AND niveau = 4) OR (competences = 2 AND niveau
> 3)
c'est pas sa que tu veux ? où j'ai mal compris.
- Gilles -
"jeorme" a écrit dans le message de news: # > Bonjour à tous, > > petite colle en SQL > > j'ai une table sous cette forme: > > empl_nom competences niveau > DUPOND 1 4 > DUPOND 1 2 > DURAND 1 4 > DURAND 2 3 > DURAND 3 2 > > je voudrais que grace à un miracle SQL (j'y ai séché tout l'après midi) que > ma requete sorte les personnes dont : > - la competence 1 à un niveau 4 et que la competence 2 a un niveau 3 > > résultat: > > empl_nom competences niveau > DURAND 1 4 > DURAND 2 3 > > > > Merci d'avance > > > > > >
merci mais dans ce cas DUPOND apparaît également
<systemis@wanadoo.fr> a écrit dans le message de news:
c6of0n$dcj$1@news-reader3.wanadoo.fr...
Bonjour,
... where (competences = 1 AND niveau = 4) OR (competences = 2 AND niveau
> 3)
c'est pas sa que tu veux ?
où j'ai mal compris.
- Gilles -
"jeorme" <jerome.boutin@filtrauto.com> a écrit dans le message de news:
#37fisSLEHA.624@TK2MSFTNGP11.phx.gbl...
> Bonjour à tous,
>
> petite colle en SQL
>
> j'ai une table sous cette forme:
>
> empl_nom competences niveau
> DUPOND 1 4
> DUPOND 1 2
> DURAND 1 4
> DURAND 2 3
> DURAND 3 2
>
> je voudrais que grace à un miracle SQL (j'y ai séché tout l'après midi)
que
> ma requete sorte les personnes dont :
> - la competence 1 à un niveau 4 et que la competence 2 a un niveau 3
>
> résultat:
>
> empl_nom competences niveau
> DURAND 1 4
> DURAND 2 3
>
>
>
> Merci d'avance
>
>
>
>
>
>
merci mais dans ce cas DUPOND apparaît également a écrit dans le message de news: c6of0n$dcj$
Bonjour,
... where (competences = 1 AND niveau = 4) OR (competences = 2 AND niveau
> 3)
c'est pas sa que tu veux ? où j'ai mal compris.
- Gilles -
"jeorme" a écrit dans le message de news: # > Bonjour à tous, > > petite colle en SQL > > j'ai une table sous cette forme: > > empl_nom competences niveau > DUPOND 1 4 > DUPOND 1 2 > DURAND 1 4 > DURAND 2 3 > DURAND 3 2 > > je voudrais que grace à un miracle SQL (j'y ai séché tout l'après midi) que > ma requete sorte les personnes dont : > - la competence 1 à un niveau 4 et que la competence 2 a un niveau 3 > > résultat: > > empl_nom competences niveau > DURAND 1 4 > DURAND 2 3 > > > > Merci d'avance > > > > > >
Patrice
Ah ok, c'est en même temps.
Il y a plusieurs façons. Je ferais quelque chose comme :
-- Toutes les personnes SELECT * FROM Personnes - Récupérer la compétence 1 de la personne JOIN Compétences AS Compétence1 ON Compétence1.Personne_fk=Personne_pk AND Compétence1.Compétence=1 -- Récupérer la compétence 2 de la personne JOIN Compétences AS Compérence2 ON Compétence2.Personne_fk=Personne_pk AND Compétence2.Compétence=4 -- Niveau 4 pour la compétence 1 et niveau 3 pour la compétence 3 WHERE Compétence1.Niveau=4 AND Compétence2.Niveau=3
Ou encore
SELECT * FROM Personnes WHERE EXISTS(SELECT 1 FROM Compétence WHERE Personne_fk=Personne_pk AND Compétence=1 AND Niveau=4) AND EXISTS(SELECT 1 FROM Compétence WHERE Personne_fk=Personne_pk Compétence=2 AND Niveau=3)
Pour ton résultat final, le texte laisse penser que tu veux les personnes mais comme exemple tu mets une ligne par personne par compétence trouvé. Il faut adapter si besoin
Patrice
"jeorme" a écrit dans le message de news:
merci mais désolé car dans ce cas DUPOND apparaît quand même !! "Via" a écrit dans le message de news:
> Bonjour Jérôme. > > Pour moi ça doit donner un truc du genre : > SELECT empl_nom, competences, niveau FROM Nom_Table WHERE (competences 1 > AND niveau = 4) OR (competences = 2 AND niveau = 3); > Normalemenent ça marche ! > > Via :) > > "jeorme" a écrit dans le message de > news:% > > Bonjour à tous, > > > > petite colle en SQL > > > > j'ai une table sous cette forme: > > > > empl_nom competences niveau > > DUPOND 1 4 > > DUPOND 1 2 > > DURAND 1 4 > > DURAND 2 3 > > DURAND 3 2 > > > > je voudrais que grace à un miracle SQL (j'y ai séché tout l'après
midi)
> que > > ma requete sorte les personnes dont : > > - la competence 1 à un niveau 4 et que la competence 2 a un niveau 3 > > > > résultat: > > > > empl_nom competences niveau > > DURAND 1 4 > > DURAND 2 3 > > > > > > > > Merci d'avance > > > > > > > > > > > > > >
Ah ok, c'est en même temps.
Il y a plusieurs façons. Je ferais quelque chose comme :
-- Toutes les personnes
SELECT * FROM Personnes
- Récupérer la compétence 1 de la personne
JOIN Compétences AS Compétence1 ON Compétence1.Personne_fk=Personne_pk AND
Compétence1.Compétence=1
-- Récupérer la compétence 2 de la personne
JOIN Compétences AS Compérence2 ON Compétence2.Personne_fk=Personne_pk AND
Compétence2.Compétence=4
-- Niveau 4 pour la compétence 1 et niveau 3 pour la compétence 3
WHERE Compétence1.Niveau=4 AND Compétence2.Niveau=3
Ou encore
SELECT * FROM Personnes WHERE
EXISTS(SELECT 1 FROM Compétence WHERE Personne_fk=Personne_pk AND
Compétence=1 AND Niveau=4)
AND EXISTS(SELECT 1 FROM Compétence WHERE Personne_fk=Personne_pk
Compétence=2 AND Niveau=3)
Pour ton résultat final, le texte laisse penser que tu veux les personnes
mais comme exemple tu mets une ligne par personne par compétence trouvé. Il
faut adapter si besoin
Patrice
"jeorme" <jerome.boutin@filtrauto.com> a écrit dans le message de
news:einuAATLEHA.3012@tk2msftngp13.phx.gbl...
merci mais désolé car dans ce cas DUPOND apparaît quand même !!
"Via" <chew.baka@caramail.com> a écrit dans le message de news:
u4Mu9vSLEHA.1392@TK2MSFTNGP09.phx.gbl...
> Bonjour Jérôme.
>
> Pour moi ça doit donner un truc du genre :
> SELECT empl_nom, competences, niveau FROM Nom_Table WHERE (competences 1
> AND niveau = 4) OR (competences = 2 AND niveau = 3);
> Normalemenent ça marche !
>
> Via :)
>
> "jeorme" <jerome.boutin@filtrauto.com> a écrit dans le message de
> news:%2337fisSLEHA.624@TK2MSFTNGP11.phx.gbl...
> > Bonjour à tous,
> >
> > petite colle en SQL
> >
> > j'ai une table sous cette forme:
> >
> > empl_nom competences niveau
> > DUPOND 1 4
> > DUPOND 1 2
> > DURAND 1 4
> > DURAND 2 3
> > DURAND 3 2
> >
> > je voudrais que grace à un miracle SQL (j'y ai séché tout l'après
midi)
> que
> > ma requete sorte les personnes dont :
> > - la competence 1 à un niveau 4 et que la competence 2 a un niveau 3
> >
> > résultat:
> >
> > empl_nom competences niveau
> > DURAND 1 4
> > DURAND 2 3
> >
> >
> >
> > Merci d'avance
> >
> >
> >
> >
> >
> >
>
>
Il y a plusieurs façons. Je ferais quelque chose comme :
-- Toutes les personnes SELECT * FROM Personnes - Récupérer la compétence 1 de la personne JOIN Compétences AS Compétence1 ON Compétence1.Personne_fk=Personne_pk AND Compétence1.Compétence=1 -- Récupérer la compétence 2 de la personne JOIN Compétences AS Compérence2 ON Compétence2.Personne_fk=Personne_pk AND Compétence2.Compétence=4 -- Niveau 4 pour la compétence 1 et niveau 3 pour la compétence 3 WHERE Compétence1.Niveau=4 AND Compétence2.Niveau=3
Ou encore
SELECT * FROM Personnes WHERE EXISTS(SELECT 1 FROM Compétence WHERE Personne_fk=Personne_pk AND Compétence=1 AND Niveau=4) AND EXISTS(SELECT 1 FROM Compétence WHERE Personne_fk=Personne_pk Compétence=2 AND Niveau=3)
Pour ton résultat final, le texte laisse penser que tu veux les personnes mais comme exemple tu mets une ligne par personne par compétence trouvé. Il faut adapter si besoin
Patrice
"jeorme" a écrit dans le message de news:
merci mais désolé car dans ce cas DUPOND apparaît quand même !! "Via" a écrit dans le message de news:
> Bonjour Jérôme. > > Pour moi ça doit donner un truc du genre : > SELECT empl_nom, competences, niveau FROM Nom_Table WHERE (competences 1 > AND niveau = 4) OR (competences = 2 AND niveau = 3); > Normalemenent ça marche ! > > Via :) > > "jeorme" a écrit dans le message de > news:% > > Bonjour à tous, > > > > petite colle en SQL > > > > j'ai une table sous cette forme: > > > > empl_nom competences niveau > > DUPOND 1 4 > > DUPOND 1 2 > > DURAND 1 4 > > DURAND 2 3 > > DURAND 3 2 > > > > je voudrais que grace à un miracle SQL (j'y ai séché tout l'après
midi)
> que > > ma requete sorte les personnes dont : > > - la competence 1 à un niveau 4 et que la competence 2 a un niveau 3 > > > > résultat: > > > > empl_nom competences niveau > > DURAND 1 4 > > DURAND 2 3 > > > > > > > > Merci d'avance > > > > > > > > > > > > > >
Steve Kass
select distinct empl_nom from T T1 where not exists ( select * from ( select 1 c, 4 n union all select 2, 3 ) C where not exists ( select * from T T2 where T2.empl_nom = T1.empl_nom and C.c = T2.competences and C.n = T2.niveau ) )
Autre solution:
select empl_nom from T where ( (competences = 1 and niveau = 4) or (competences = 2 and niveau = 3) ) group by empl_nom having count(*) = 2
Ici, si une des paires (competences, niveau) peut se trouver 2 fois ou plus dans la table, essayez having count(distinct competences*1000 + niveau) = 2
je voudrais que grace à un miracle SQL (j'y ai séché tout l'après midi) que ma requete sorte les personnes dont : - la competence 1 à un niveau 4 et que la competence 2 a un niveau 3
résultat:
empl_nom competences niveau DURAND 1 4 DURAND 2 3
Merci d'avance
select distinct empl_nom from T T1
where not exists (
select * from (
select 1 c, 4 n
union all
select 2, 3
) C
where not exists (
select * from T T2
where T2.empl_nom = T1.empl_nom
and C.c = T2.competences
and C.n = T2.niveau
)
)
Autre solution:
select empl_nom from T
where (
(competences = 1 and niveau = 4)
or (competences = 2 and niveau = 3)
) group by empl_nom
having count(*) = 2
Ici, si une des paires (competences, niveau) peut se trouver 2 fois ou
plus dans la table, essayez
having count(distinct competences*1000 + niveau) = 2
je voudrais que grace à un miracle SQL (j'y ai séché tout l'après midi) que
ma requete sorte les personnes dont :
- la competence 1 à un niveau 4 et que la competence 2 a un niveau 3
select distinct empl_nom from T T1 where not exists ( select * from ( select 1 c, 4 n union all select 2, 3 ) C where not exists ( select * from T T2 where T2.empl_nom = T1.empl_nom and C.c = T2.competences and C.n = T2.niveau ) )
Autre solution:
select empl_nom from T where ( (competences = 1 and niveau = 4) or (competences = 2 and niveau = 3) ) group by empl_nom having count(*) = 2
Ici, si une des paires (competences, niveau) peut se trouver 2 fois ou plus dans la table, essayez having count(distinct competences*1000 + niveau) = 2
je voudrais que grace à un miracle SQL (j'y ai séché tout l'après midi) que ma requete sorte les personnes dont : - la competence 1 à un niveau 4 et que la competence 2 a un niveau 3
résultat:
empl_nom competences niveau DURAND 1 4 DURAND 2 3
Merci d'avance
alex
Salut, Voici une solution : -------------- SELECT * FROM (SELECT * FROM TABLE WHERE ((Comp = 1) AND (Niv = 4)) OR ((Comp = 2) AND (Niv = 3))) WHERE (Nom IN (SELECT Nom FROM TABLE WHERE ((Comp = 1) AND (Niv = 4)))) AND (Nom IN (SELECT Nom FROM TABLE WHERE (Comp = 2) AND (Niv = 3))) ----------- @+ Bonne soirée
je voudrais que grace à un miracle SQL (j'y ai séché tout l'après midi)
que
ma requete sorte les personnes dont : - la competence 1 à un niveau 4 et que la competence 2 a un niveau 3
résultat:
empl_nom competences niveau DURAND 1 4 DURAND 2 3
Merci d'avance
Salut,
Voici une solution :
--------------
SELECT *
FROM (SELECT *
FROM TABLE
WHERE ((Comp = 1) AND (Niv = 4)) OR
((Comp = 2) AND (Niv = 3)))
WHERE (Nom IN
(SELECT Nom
FROM TABLE
WHERE ((Comp = 1) AND (Niv = 4)))) AND (Nom
IN
(SELECT Nom
FROM TABLE
WHERE (Comp = 2) AND (Niv = 3)))
-----------
@+
Bonne soirée
"jeorme" <jerome.boutin@filtrauto.com> a écrit dans le message de
news:%2337fisSLEHA.624@TK2MSFTNGP11.phx.gbl...
Salut, Voici une solution : -------------- SELECT * FROM (SELECT * FROM TABLE WHERE ((Comp = 1) AND (Niv = 4)) OR ((Comp = 2) AND (Niv = 3))) WHERE (Nom IN (SELECT Nom FROM TABLE WHERE ((Comp = 1) AND (Niv = 4)))) AND (Nom IN (SELECT Nom FROM TABLE WHERE (Comp = 2) AND (Niv = 3))) ----------- @+ Bonne soirée
je voudrais que grace à un miracle SQL (j'y ai séché tout l'après midi) que ma requete sorte les personnes dont : - la competence 1 à un niveau 4 et que la competence 2 a un niveau 3
résultat:
empl_nom competences niveau DURAND 1 4 DURAND 2 3
Merci d'avance
Peut-être ça : (SELECT * FROM empl_nom WHERE competences=1 AND niveau=4) UNION (SELECT * FROM empl_nom WHERE competences=2 AND niveau=3)
je voudrais que grace à un miracle SQL (j'y ai séché tout l'après midi) que
ma requete sorte les personnes dont :
- la competence 1 à un niveau 4 et que la competence 2 a un niveau 3
résultat:
empl_nom competences niveau
DURAND 1 4
DURAND 2 3
Merci d'avance
Peut-être ça :
(SELECT * FROM empl_nom WHERE competences=1 AND niveau=4) UNION (SELECT
* FROM empl_nom WHERE competences=2 AND niveau=3)
je voudrais que grace à un miracle SQL (j'y ai séché tout l'après midi) que ma requete sorte les personnes dont : - la competence 1 à un niveau 4 et que la competence 2 a un niveau 3
résultat:
empl_nom competences niveau DURAND 1 4 DURAND 2 3
Merci d'avance
Peut-être ça : (SELECT * FROM empl_nom WHERE competences=1 AND niveau=4) UNION (SELECT * FROM empl_nom WHERE competences=2 AND niveau=3)
Bertrand David
Rebreyend Cyril
Bonjour,
Soit je n'ai pas bien compris la question, soit la reponse est ci-dessous:
SELECT * FROM [nom_de_la_table] WHERE (competences = 1 AND niveau=4) OR (competences = 2 AND niveau=3)
Cordialement, Cyril Rebreyend
"bertrand david" a écrit dans le message de news:40a865b0$0$31383$
jeorme wrote: > Bonjour à tous, > > petite colle en SQL > > j'ai une table sous cette forme: > > empl_nom competences niveau > DUPOND 1 4 > DUPOND 1 2 > DURAND 1 4 > DURAND 2 3 > DURAND 3 2 > > je voudrais que grace à un miracle SQL (j'y ai séché tout l'après midi)
que
> ma requete sorte les personnes dont : > - la competence 1 à un niveau 4 et que la competence 2 a un niveau 3 > > résultat: > > empl_nom competences niveau > DURAND 1 4 > DURAND 2 3 > > > > Merci d'avance > > > > > >
Peut-être ça : (SELECT * FROM empl_nom WHERE competences=1 AND niveau=4) UNION (SELECT * FROM empl_nom WHERE competences=2 AND niveau=3)
Bertrand David
Bonjour,
Soit je n'ai pas bien compris la question, soit la reponse est ci-dessous:
SELECT * FROM [nom_de_la_table]
WHERE (competences = 1 AND niveau=4) OR (competences = 2 AND niveau=3)
Cordialement,
Cyril Rebreyend
"bertrand david" <bertranddavid@free.fr> a écrit dans le message de
news:40a865b0$0$31383$626a14ce@news.free.fr...
jeorme wrote:
> Bonjour à tous,
>
> petite colle en SQL
>
> j'ai une table sous cette forme:
>
> empl_nom competences niveau
> DUPOND 1 4
> DUPOND 1 2
> DURAND 1 4
> DURAND 2 3
> DURAND 3 2
>
> je voudrais que grace à un miracle SQL (j'y ai séché tout l'après midi)
que
> ma requete sorte les personnes dont :
> - la competence 1 à un niveau 4 et que la competence 2 a un niveau 3
>
> résultat:
>
> empl_nom competences niveau
> DURAND 1 4
> DURAND 2 3
>
>
>
> Merci d'avance
>
>
>
>
>
>
Peut-être ça :
(SELECT * FROM empl_nom WHERE competences=1 AND niveau=4) UNION (SELECT
* FROM empl_nom WHERE competences=2 AND niveau=3)
Soit je n'ai pas bien compris la question, soit la reponse est ci-dessous:
SELECT * FROM [nom_de_la_table] WHERE (competences = 1 AND niveau=4) OR (competences = 2 AND niveau=3)
Cordialement, Cyril Rebreyend
"bertrand david" a écrit dans le message de news:40a865b0$0$31383$
jeorme wrote: > Bonjour à tous, > > petite colle en SQL > > j'ai une table sous cette forme: > > empl_nom competences niveau > DUPOND 1 4 > DUPOND 1 2 > DURAND 1 4 > DURAND 2 3 > DURAND 3 2 > > je voudrais que grace à un miracle SQL (j'y ai séché tout l'après midi)
que
> ma requete sorte les personnes dont : > - la competence 1 à un niveau 4 et que la competence 2 a un niveau 3 > > résultat: > > empl_nom competences niveau > DURAND 1 4 > DURAND 2 3 > > > > Merci d'avance > > > > > >
Peut-être ça : (SELECT * FROM empl_nom WHERE competences=1 AND niveau=4) UNION (SELECT * FROM empl_nom WHERE competences=2 AND niveau=3)