Bonjour à tous et merci de votre temps et de votre aide.
J'ai besoin de trouver l'enr max d'une combinaison de champs.
Date maximum de début
Pour cette date maximum celui qui a le code maximum
Pour ce code maximum, celui qui a la clef séquentielle maximum (C'est elle que je cherche pour faire ma jointure qui va afficher mes données les plus récentes).
Ici un exemple de de données :
- Clef1 | 2017-01-01 | A | 100
- Clef1 | 2017-01-01 | B | 200
- Clef1 | 2017-01-15 | A | 300
- Clef1 | 2017-01-15 | B | 180
- Clef1 | 2017-01-15 | B | 195
- Clef1 | 2017-01-15 | B | 200
- Clef2 | 2017-01-01 | B | 100
- Clef2 | 2017-01-01 | B | 200
La réponse attendue est la 6ième pour Clef1 et la 8ième pour Clef2.
J'ai fait une requête de regroupement supposée me donner ce max et qui me retourne une erreur -1038 (Pas de message associé).
Cette requête utilise un champ [ClefMax] assez long (environ 270) obtenu par concaténation via une fonction VBA des 3 champs à maximiser.
- Si je demande les select simples, pas d'erreur.
- Si je demande un regroupement sur un des mes champs ID et [ClefMax], pas d'erreur.
- Si je demande le max de [ClefMax] ... erreur -1038 :-(.
L'idée était de faire le travail dans une seule requête, surtout que ma [ClefMax] est à un stade primaire et pourrait encore changer.
Je pense que j'ai frappé une limite cachée de Access (genre on ne peut pas obtenir le max d'un champ texte de plus de 255) mais avant de devoir créer ma cascade de requêtes j'aimerai avoir votre avis.
Et éventuellement des pistes pour NE PAS avoir à créer cette cascade sachant que le champ code peut contenir jusqu'à 255.
Peut-être avec une sous-requête triée ordre inverse et un Top 1 ?
Je suis vraiment pourri avec les sous-requête donc si c'est la solution, un exemple serait le bienvenu.
A+
Partager