|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 | ||||
|
Futur Membre du Club
![]() Inscription : décembre 2010 Messages : 125 ![]() |
Bonjour,
j'ai un 1er code qui me permet de prendre 2 lignes aléatoires dans une table avec une condition de type Code :
Code :
- les 2 premières satisfaisant ma première condition, et - les 2 dernières, la deuxième condition. ? (ces résultats seront ensuites exportés vers un fichier Excel) Merci d'avance. |
||||
|
|
00
|
|
|
#2 | ||
|
Membre Expert
![]() |
Code :
|
||
|
|
00
|
|
|
#3 |
|
Futur Membre du Club
![]() Inscription : décembre 2010 Messages : 125 ![]() |
Je reviens vers vous après avoir tester.
Merci pour l'idée. |
|
|
00
|
|
|
#4 |
|
Futur Membre du Club
![]() Inscription : décembre 2010 Messages : 125 ![]() |
Merci, ca fonctionne nickel.
Par contre, j'aimerai aller un peu plus loin. Est-il possible que la requête fasse un check sur la deuxieme table (résultats de la deuxième table), et si celle-ci est vide, qu'il me prenne alors 4 lignes aléatoires de ma première table, au lieu de 2. Car mon tableau final DOIT contenir 4 lignes ! Donc: soit 2 A et 2 B (dans le meilleur des cas) soit 3 A et 1 B (sinon) soit 4 A et 0 B (au pire). J'espère avoir été assez clair ;-) |
|
|
00
|
|
|
#5 |
|
Membre Expert
![]() |
Vous partez donc du principe que seul la requête 2 peux ne pas renvoyer deux enregistrements?
La première requête renverra toujours 2,3,4 enregistrements? |
|
|
00
|
|
|
#6 | ||
|
Membre Expert
![]() |
Code :
NB: Je n'accepte pas les bisous :-) |
||
|
|
00
|
|
|
#7 |
|
Futur Membre du Club
![]() Inscription : décembre 2010 Messages : 125 ![]() |
Je peux mettre mettre les conditions susceptibles de donner le plus de résultats en amont, effectivement, mais rien ne garantit que la première condition comporte 4 résultats. Je dois avoir au max 4 lignes, et le plus de lignes possibles.
Je réponds donc OUI à 80%. Merci pour votre aide. |
|
|
00
|
|
|
#8 | |
|
Futur Membre du Club
![]() Inscription : décembre 2010 Messages : 125 ![]() |
Citation:
|
|
|
|
00
|
|
|
#9 | ||
|
Membre Expert
![]() ![]() Inscription : janvier 2010 Messages : 1 084 ![]() |
Je ne suis pas sûr de bien saisir...
Vous voulez 4 lignes, si l'une ou l'autre des conditions n'est pas vérifiée pour 2 lignes au moins, alors "completer" avec les résultats de l'autre condition ? Est-ce que ceci vous donne ce que vous voulez : Code SQL :
|
||
|
|
00
|
|
|
#10 | |
|
Membre Expert
![]() |
Citation:
|
|
|
|
00
|
|
|
#11 | |
|
Membre Expert
![]() ![]() Inscription : janvier 2010 Messages : 1 084 ![]() |
Citation:
Vous faites le TOP 4 sur le résultat de la première requête (UN TOP 2), puis un UNION avec un autre top 4 La première partie vous renvoie donc 2 lignes maximum, auxquelles vous ajoutez 4 lignes... cela fait bien 6 lignes Pour cette requête, vous devez donc faire le TOP 4 sur le résultat de l'union |
|
|
|
00
|
|
|
#12 | |
|
Membre Expert
![]() |
Citation:
|
|
|
|
00
|
|
|
#13 |
|
Futur Membre du Club
![]() Inscription : décembre 2010 Messages : 125 ![]() |
Après un premier test, ca semble correspondre à mon besoin.
Je vais essayer de faire ca avec 3 conditions maintenant.. Je reviendrai plus tard avec mes remarques, si besoin. Merci encore. |
|
|
00
|
|
|
#14 |
|
Membre Expert
![]() |
Quelle solution?
|
|
|
00
|
|
|
#15 | |
|
Futur Membre du Club
![]() Inscription : décembre 2010 Messages : 125 ![]() |
Citation:
Idéalement, 2 lignes qui satisfait la première condition et 2 lignes satisfaisant la deuxième condition. Mais il se peut que l'une des deux conditions ne soit pas respectée (la premiere ou la deuxième). Donc pour être sur d'avoir mes 4 lignes, je veux compenser l'un par l'autre. Ainsi, si possible : 2 A et 2 B 3 A et 1 B (si seulement 1 B dispo) 4 A et 0 B (si aucun B dispo) 1 A et 3 B (si seulement 1 A dispo) 0 A et 4 B (si aucun A dispo) 1 A et 1 B (si seulement 1 A et 1 B dispo) 2 A et 0 B (si seulement 2 1 dispo et aucun B dispo) Voyez vous plus clair ?? Désolé si je me suis mal exprimé.. La solution de aieeeeeeee semble correspondre (jusqu'a présent) |
|
|
|
00
|
|
|
#16 |
|
Membre Expert
![]() |
Très bien je pensais que nbr da A<2 était impossible...
Je ne vois pas en quoi la proposition de Aieeeeeeeeeeee( j'ai oublié un e non? Aieeeeee une explication? |
|
|
00
|
|
|
#17 |
|
Futur Membre du Club
![]() Inscription : décembre 2010 Messages : 125 ![]() |
Mon problème se complique avec ceci.
puisque mes deux requêtes sont en fait : CONDITION 1 : COLONNE_1 IN ('A', 'C', 'E') CONDITION 2 : COLONNE_1 IN ('B', 'D', 'F') Donc ici, j'aimerai 2 lignes satisfaisant la condition 1 ET 2 lignes satisfaisant la condition 2 |
|
|
00
|
|
|
#18 |
|
Membre Expert
![]() |
Cherchez un peu par vous même...
Nous vous avons montré les propositions pour une condition donnée... adaptez la conditions en fonction de vos besoin... |
|
|
00
|
|
|
#19 | |||
|
Futur Membre du Club
![]() Inscription : décembre 2010 Messages : 125 ![]() |
Citation:
Oui, d'ailleurs, je n'hésite jamais a chipoter avant de répondre ici. Mais avec le code de aieeeuuuuu, que j'ai modifié avec mes conditions, j'ai ceci : Code :
Je devrais pouvoir avoir un résultat comme suit : A <-- 1ERE CONDITION A <-- 1ERE CONDITION D <-- 2EME CONDITION F <-- 2EME CONDITION Autre exemple pratique (hypothèse, pas de B, D et F) A <-- 1ERE CONDITION A <-- 1ERE CONDITION A <-- 1ERE CONDITION C <-- 1ERE CONDITION et non pas systématiquement moitié/moitié (comme le fait la requête d'aieeeuuuuu) A <-- 1ERE CONDITION A <-- 1ERE CONDITION C <-- 1ERE CONDITION C <-- 1ERE CONDITION Merci de vous pencher sur mon problème..
|
|||
|
|
00
|
|
|
#20 | |||
|
Membre Expert
![]() ![]() Inscription : janvier 2010 Messages : 1 084 ![]() |
Citation:
elle permet d'avoir un nombre équilibré (par rapport à la valeur de la colonne_1) tant que faire ce peut : Code SQL :
La "première" ligne pour COLONNE_1 = 'A' aura RN = 1 La "deuxième" ligne pour COLONNE_1 = 'A' aura RN = 2 La "première" ligne pour COLONNE_1 = 'B' aura RN = 1 également A la fin, en classant sur RN, on aura en "premier" les "premières" ligne pour chaque valeur de COLONNE_1 |
|||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com