SQL: EJB QL, test collection dans Collection
Résolu/Fermé
Geraral
Messages postés
7
Date d'inscription
dimanche 1 février 2009
Statut
Membre
Dernière intervention
9 janvier 2011
-
29 nov. 2009 à 12:40
Geraral Messages postés 7 Date d'inscription dimanche 1 février 2009 Statut Membre Dernière intervention 9 janvier 2011 - 29 nov. 2009 à 14:50
Geraral Messages postés 7 Date d'inscription dimanche 1 février 2009 Statut Membre Dernière intervention 9 janvier 2011 - 29 nov. 2009 à 14:50
A voir également:
- SQL: EJB QL, test collection dans Collection
- Logiciel sql - Télécharger - Bases de données
- Requete sql pix - Forum PHP
- Ora-00933: la commande sql ne se termine pas correctement ✓ - Forum Oracle
- Additions et multiplication dans des requêtes SQL ✓ - Forum MySQL
- Sql replace plusieurs valeurs - Forum Programmation
1 réponse
Geraral
Messages postés
7
Date d'inscription
dimanche 1 février 2009
Statut
Membre
Dernière intervention
9 janvier 2011
1
29 nov. 2009 à 14:50
29 nov. 2009 à 14:50
je viens de trouver une astuce pour faire marcher ma requête, si ça peut servir à d'autres:
en fait avec la requête:
SELECT distinct c FROM Candidature c, IN (c.critereCollection) AS tpc where tpc.tpcId = SOME (SELECT t.tpcId FROM TypeCritere t WHERE t.tpcId = 1 OR t.tpcId = 10 OR t.tpcId = 2 OR t.tpcId = 21 )
je récupére un paquet de ligne, bonne mais aussi mauvaise, par contre, il suffit de checker le nombre de résultats avec un groupb by et un having count, en sachant (par le code java) combien d'éléments on a recherché:
SELECT distinct c FROM Candidature c, IN (c.critereCollection) AS tpc where tpc.tpcId = SOME (SELECT t.tpcId FROM TypeCritere t WHERE t.tpcId = 1 OR t.tpcId = 10 OR t.tpcId = 2 OR t.tpcId = 21 ) GROUP BY c HAVING COUNT(c) = 4
en fait avec la requête:
SELECT distinct c FROM Candidature c, IN (c.critereCollection) AS tpc where tpc.tpcId = SOME (SELECT t.tpcId FROM TypeCritere t WHERE t.tpcId = 1 OR t.tpcId = 10 OR t.tpcId = 2 OR t.tpcId = 21 )
je récupére un paquet de ligne, bonne mais aussi mauvaise, par contre, il suffit de checker le nombre de résultats avec un groupb by et un having count, en sachant (par le code java) combien d'éléments on a recherché:
SELECT distinct c FROM Candidature c, IN (c.critereCollection) AS tpc where tpc.tpcId = SOME (SELECT t.tpcId FROM TypeCritere t WHERE t.tpcId = 1 OR t.tpcId = 10 OR t.tpcId = 2 OR t.tpcId = 21 ) GROUP BY c HAVING COUNT(c) = 4