jordane45
Messages postés37718Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention22 septembre 2023
-
14 févr. 2014 à 18:46
jordane45
Messages postés37718Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention22 septembre 2023
-
19 févr. 2014 à 01:15
Bonjour,
Je vous sollicite sur la chose suivante :
Je dispose de deux tables :
Table1 : id_tbl1 | nom
Table2 : id_tbl2| Libelle | Type | id_tbl1
La Table2 peut contenir 1 à N enregistrements rattachés à la Table1
(appelons les des Items ) de même 'type' ou de 'type' différent.
Exemple :
Table1 :
1 | TEST
2 | FOO
3 | BAR
Table2:
1 | Excel | A |1
2 | Word | A |1
3 | Excel | A |2
4 | Eclipse | A |3
5 | Excel | A |3
6 | Excel | A |3
Je souhaites pouvoir lister Les éléments de ma Table1 qui, dans la Table2 contiennent Excel ET Word.
C'est à dire : TEST et BAR
L'utilisation du Table2.Libelle IN ('Word','Excel') dans le Where permet de ne faire qu'un OR et me sort tous les enregistrements qui ont pour valeur Excel OU word... mais pas ceux qui ONT au moins les deux uniquement.
yann_lo_san
Messages postés1137Date d'inscriptionlundi 17 novembre 2003StatutMembreDernière intervention23 janvier 201625 17 févr. 2014 à 21:33
Salut,
en SQL-Server on pourrait faire quelque chose comme ça :
Selectionne les lignes de t1 pour lesquelles il existe au moins 2 lignes dans t2 de type Word et Excel
SELECT t1.* FROM Table1 t1
WHERE exists(
SELECT count(0), t2.id_tbl1
FROM Table2 t2
WHERE t2.Libelle in ('Word','Excel')
and t2.id_tbl1 = t1.id_tbl1
GROUP BY t2.id_tbl1
HAVING(count(0) >= 2)
yann_lo_san
Messages postés1137Date d'inscriptionlundi 17 novembre 2003StatutMembreDernière intervention23 janvier 201625 17 févr. 2014 à 21:36
non pardon, il faut ajouter un critère d'unicité en plus,
count(distinct t2.Libelle)
SELECT t1.* FROM Table1 t1
WHERE exists(
SELECT count(distinct t2.Libelle), t2.id_tbl1
FROM Table2 t2
WHERE t2.Libelle in ('Word','Excel')
and t2.id_tbl1 = t1.id_tbl1
GROUP BY t2.id_tbl1
HAVING(count(distinct t2.Libelle) >= 2
jordane45
Messages postés37718Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention22 septembre 2023342 19 févr. 2014 à 01:15