120 Requete SQL
kadden
Messages postés
249
Date d'inscription
Statut
Membre
Dernière intervention
-
blux Messages postés 27128 Date d'inscription Statut Modérateur Dernière intervention -
blux Messages postés 27128 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
Eléments de ma requête :
1) Table : MaTable1
2) Résultat à afficher : T1, T2
3) Conditions : c1, c2, c3, c4, c5
J'ai 5 conditions : c1, c2, c3, c4, c5
Besoin :
Je dois trouver T1, T2 selon toutes les conditions possibles (Toutes les permutations possibles) ce qui me fait 120 combinaisons possibles, y'a-t-il une meilleurs façon de faire que ça :
Eléments de ma requête :
1) Table : MaTable1
2) Résultat à afficher : T1, T2
3) Conditions : c1, c2, c3, c4, c5
J'ai 5 conditions : c1, c2, c3, c4, c5
Besoin :
Je dois trouver T1, T2 selon toutes les conditions possibles (Toutes les permutations possibles) ce qui me fait 120 combinaisons possibles, y'a-t-il une meilleurs façon de faire que ça :
Select T1, T2 From MaTable1 Where Macondition = c1
Select T1, T2 From MaTable1 Where Macondition = c2
Select T1, T2 From MaTable1 Where Macondition = c1, c2
Select T1, T2 From MaTable1 Where Macondition = c3
Select T1, T2 From MaTable1 Where Macondition = c1, c3
Select T1, T2 From MaTable1 Where Macondition = c1, c2, c3
A voir également:
- 120 Requete SQL
- Alcohol 120 - Télécharger - Émulation & Virtualisation
- Logiciel sql - Télécharger - Bases de données
- 120 gb en go ✓ - Forum Disque dur / SSD
- Sql (+) - Forum Programmation
- 120 m3 en m2 ✓ - Forum Loisirs / Divertissements
3 réponses
Salut,
ce n'est pas 120 requêtes que tu dois écrire, mais (si je ne me trompe pas) :
5 + 10 + 10 + 5 + 1 = 31...
ce n'est pas 120 requêtes que tu dois écrire, mais (si je ne me trompe pas) :
5 + 10 + 10 + 5 + 1 = 31...
Non c'est vraiment 120 combinaisons (5 factorielle) = 5 ! = 120 possibilité
mais je sais qu'il doit exister une manière de faire en une seule fois.
Merci pour votre aide.
mais je sais qu'il doit exister une manière de faire en une seule fois.
Merci pour votre aide.
5!, c'est si tu utilises les 5 conditions en même temps (et que l'ordre est important), or ici, tu en utilises 1, 2, 3, 4 ou 5 et l'ordre n'a pas d'importance...
Tu as donc la somme de 5 combinaisons (en algèbre combinatoire, celle avec le C n k) :
C 1-5 + C 2-5 + C 3-5 + C 4-5 + C 5-5...
Et à moins de disposer d'un SQL procédural (PL/SQL), je ne vois pas comment faire autrement que par création des 31 requêtes...
Tu as donc la somme de 5 combinaisons (en algèbre combinatoire, celle avec le C n k) :
C 1-5 + C 2-5 + C 3-5 + C 4-5 + C 5-5...
Et à moins de disposer d'un SQL procédural (PL/SQL), je ne vois pas comment faire autrement que par création des 31 requêtes...
Merci @blux :
Je pense que même avec le principe de combinaisons on tombe bien sur 89 combinaisons possibles (cf.image)
[URL=http://www.hostingpics.net/viewer.php?id=55539484t3.png][IMG]http://img15.hostingpics.net/pics/55539484t3.png[/IMG][/URL]
Mais apparemment on m'a parlé que si j'utilisais le CROSS JOIN je pourrai faciliter les choses et utiliser une seule requête.
Je ne connais pas très bien le CROSS JOIN, mais je ne sais pas ce que ça va améliorer ? je pense que j'aurai toujours la pénible tâche de modifier autant de fois ma requête que de combinaisons possibles :)
Je pense que même avec le principe de combinaisons on tombe bien sur 89 combinaisons possibles (cf.image)
[URL=http://www.hostingpics.net/viewer.php?id=55539484t3.png][IMG]http://img15.hostingpics.net/pics/55539484t3.png[/IMG][/URL]
Mais apparemment on m'a parlé que si j'utilisais le CROSS JOIN je pourrai faciliter les choses et utiliser une seule requête.
Je ne connais pas très bien le CROSS JOIN, mais je ne sais pas ce que ça va améliorer ? je pense que j'aurai toujours la pénible tâche de modifier autant de fois ma requête que de combinaisons possibles :)