|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Candidat au titre de Membre du Club
![]() Inscription : janvier 2006 Messages : 39 ![]() |
Bonjour,
Je dois faire une requête simple sur une même table, et je n'arrive pas à conclure! Je souhaite en gros la requête combinée ci-dessous mais qui ne marche pas Code sql :
ColonneC, ColonneD, ColonneX, ColonneAN, ColonneAO, ColonneAP AP - 2121 - 50052899- 30- INCINSP4 - 2 AP - 2121 - 50052899- 70 - CRAFT - 1 AP - 2121 - 50052899- 20 - QQQQ - 0 AP - 2121 - 50052899- 10 - PRO - 3 MI - 2191 - 10052899- 70 - CRAFT - 0 MI - 2191 - 10052899- 30- INCINSP4 - 0 MI - 2191 - 10052899- 20 - CRAFT - 3 MI - 2191 - 10052899- 10 - CRAFT - 1 A l'arrivée je souhaite la plus petite valeur de la colonne P avec comme prérequis un sort DESC sur la colonne AN pour le cas ou 2 valeurs min identique sur la colonne AP. Et je dois éliminer de la recherche les lignes dont ColonneAp =2. Soit en gras les lignes résultat après le tri : AP - 2121 - 50052899- 70 - CRAFT - 1 AP - 2121 - 50052899- 30- INCINSP4 - 2 AP - 2121 - 50052899- 20 - QQQQ - 0 AP - 2121 - 50052899- 10 - PRO - 3 MI - 2191 - 10052899- 70 - CRAFT - 0 MI - 2191 - 10052899- 30- INCINSP4 - 0 MI - 2191 - 10052899- 20 - CRAFT - 3 MI - 2191 - 10052899- 10 - CRAFT - 1 Merci d'avance de votre support. |
||
|
|
00
|
|
|
#2 | ||
|
Expert Confirmé Sénior
![]() ![]() Fabien Enseignant Inscription : janvier 2009 Messages : 2 411 ![]() |
bonsoir,
essayons une solution par jointure pour voir: Code sql :
|
||
|
00
|
|
|
#3 |
|
Candidat au titre de Membre du Club
![]() Inscription : janvier 2006 Messages : 39 ![]() |
Remerciements sincères pour votre aide.
Je vais tester votre solution jeudi sur un cas concret en l'adaptant à mon besoin (en congés demain). Votre solution fonctionne sur un cas d'école, c'est déjà une bonne chose car je n'arrivais à rien. Par contre cela me renvoi l'ensemble des lignes avec un GROUP BY un peu particulier or je ne souhaite que la ligne résultat. Je vous tiens informé. Cordialement, |
|
|
00
|
|
|
#4 | ||
|
Expert Confirmé Sénior
![]() ![]() Fabien Enseignant Inscription : janvier 2009 Messages : 2 411 ![]() |
peut-être plutôt comme ça alors:
Code sql :
et sinon tant pis pour ce soir ![]() ![]() bonne nuit |
||
|
00
|
|
|
#5 |
|
Candidat au titre de Membre du Club
![]() Inscription : janvier 2006 Messages : 39 ![]() |
Votre solution est très proche, merci pour l'apprentissage de ce formalisme très clair.
Il y a un manque dans le cas particulier (voir mon exemple n°2) ou 2 lignes possèdent le même nombre min. Dans ce cas la requête doit éliminer la deuxième ligne. Le résultat avec votre deuxième requête solution: MI - 2191 - 10052899- 70 - CRAFT - 0 MI - 2191 - 10052899- 30- INCINSP4 - 0 En gros le min doit être exclusif avec le DESC (seule la première ligne doit être conservée). J'espère que je suis clair, je cherche aussi la soluce de mon côté |
|
|
00
|
|
|
#6 | ||
|
Expert Confirmé Sénior
![]() ![]() Fabien Enseignant Inscription : janvier 2009 Messages : 2 411 ![]() |
mmmmhh...
si j'appelle "R_miniAP" la requête de mon message précédent, on peut rajouter une couche du genre: Code sql :
technique avec TOP 1 que l'on aurait d'ailleurs pu retenir pour "R_miniAP" |
||
|
00
|
|
|
#7 |
|
Candidat au titre de Membre du Club
![]() Inscription : janvier 2006 Messages : 39 ![]() |
cela ne marche pas, boucle infinie, mon portable se transforme en radiateur
|
|
|
00
|
|
|
#8 |
|
Candidat au titre de Membre du Club
![]() Inscription : janvier 2006 Messages : 39 ![]() |
Bonjour,
Après plusieurs essais ce matin j'ai le même problème de plantage. Si je fais un ctrl+pause pendant la requête ACCESS semble pourtant me renvoyer les bonnes valeurs. Est-ce l'appel d'une autre requête dans une requête qui perturbe ACCESS 2007? le formalisme de ta solution f-leb? Est-il possible de faire qu'une seule requête? La solution est proche, en plus je me fais mettre la pression, il faut vraiment que j'arrive à conclure :-) Merci de votre aide. |
|
|
00
|
|
|
#9 |
|
Expert Confirmé Sénior
![]() ![]() Fabien Enseignant Inscription : janvier 2009 Messages : 2 411 ![]() |
bonjour,
est-ce que tu peux mettre un extrait de ta base en pièce-jointe ? |
|
00
|
|
|
#10 |
|
Candidat au titre de Membre du Club
![]() Inscription : janvier 2006 Messages : 39 ![]() |
Pour cette combinaison ColumnD + ColumnX dans la table
ColumnC ColumnD ColumnX ColumnAN ColumnAO ColumnAP DSAZNS ZAC061013-08 150012237 20 PR 2 DSAZNS ZAC061013-08 150012237 30 II 2 DSAZNS ZAC061013-08 150033470 10 SCI 2 DSAZNS ZAC061013-08 150033470 20 PR 2 DSAZNS ZAC061013-08 150033470 30 II 2 DSAZNS ZAC061013-08 150053127 10 SCI 0 DSAZNS ZAC061013-08 150053127 20 PR 0 DSAZNS ZAC061013-08 150053127 25 IllI 0 DSAZNS ZAC061013-08 150053127 30 II 0 DSAZNS ZAC061013-08 150053127 40 DOC 0 la requête R_miniAP filtre bien : ColumnC ColumnD ColumnX ColumnAN ColumnAO ColumnAP DSAZNS ZAC061013-08 150053127 40 DOC 0 DSAZNS ZAC061013-08 150053127 30 II 0 DSAZNS ZAC061013-08 150053127 25 IllI 0 DSAZNS ZAC061013-08 150053127 20 PR 0 DSAZNS ZAC061013-08 150053127 10 SCI 0 la requête RMain devrait retourner uniquement ColumnC ColumnD ColumnX ColumnAN ColumnAO ColumnAP DSAZNS ZAC061013-08 150053127 40 DOC 0 |
|
|
00
|
|
|
#11 | |
|
Expert Confirmé Sénior
![]() ![]() Fabien Enseignant Inscription : janvier 2009 Messages : 2 411 ![]() |
je ne sais pas comment tu as réglé ton plantage mais chez moi la requête R_main semble aussi tourné en boucle
Le fichier serait-il corrompu ?Citation:
|
|
|
00
|
|
|
#12 |
|
Candidat au titre de Membre du Club
![]() Inscription : janvier 2006 Messages : 39 ![]() |
Le fichier mis en pièce jointe sur le forum est réalisé from scratch. Par ailleurs la modification en numérique des colonnes AP et AN ne corrige pas le problème, grrrrr.
Quelqu'un a une idée? N'existe-t-il pas un autre formalisme de la requête R_MAIN? Elle semble faire planter le moteur ACCESS dès l'exécution? Je suis preneur de toute solution. |
|
|
00
|
|
|
#13 |
|
Expert Confirmé Sénior
![]() ![]() Fabien Enseignant Inscription : janvier 2009 Messages : 2 411 ![]() |
désolé, je ne comprends pas
d'autant plus que je viens de faire un essai sur une nouvelle base (voir pièce-jointe) qui semble fonctionner avec ces codes .Peut-être faudrait-il faire une réparation de ton fichier (il y a un tuto là-dessus je ne sais plus où). [EDIT] j'ai tenté une réparation en ligne de commande, marche pas non plus ![]() [/EDIT] |
|
00
|
|
|
#14 | |||
|
Expert Confirmé Sénior
![]() ![]() Fabien Enseignant Inscription : janvier 2009 Messages : 2 411 ![]() |
bon, alors en fait la requête avec TOP 1 est vraiment très très lente.
Citation:
Code sql :
qui est beaucoup plus rapide. |
|||
|
10
|
|
|
#15 |
|
Candidat au titre de Membre du Club
![]() Inscription : janvier 2006 Messages : 39 ![]() |
Bravo! celle-ci marche super bien avec les bonnes valeurs en retour.
Chapeau bas Monsieur Gaston. Je n'ai pas compris pourquoi l'autre requête combinée plantait. Je reproduit le même problème ailleurs avec une autre requête combinée (pareil même problème de perf malgré les compact and repair). Encore merci de votre support et du temps passé. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com