Fonction DMax

2 réponses
Avatar
Xavier Dominguez
Bonjour tout le monde,

J'ai la table suivante:



Table: tbl_Global

Id CountryId CountryName CountryDate
_____________________________________________________
1 1 United Kingdom 13.03.2014
2 1 United Kingdom 02.03.2011
3 1 United Kingdom 03.04.2010
4 2 France 01.02.2012
5 2 France 03.03.2014
6 2 France 09.09.2010
7 2 France 08.04.2008
8 3 Swizterland 09.08.2009
9 4 Belgium 15.12.2013
10 4 Belgium 11.08.2011
11 5 Spain 23.08.2011
12 5 Spain 25.04.2014




J'ai un souci avec la fonction DMax.

Je souhaiterai une requete avec un seul enregistrement par pays renvoyant la date la plus recente.

Ma fonction dans sql_Global: Result: DMax("CountryDate","tbl_Global","CountryId")




Query: sql_Global

Id CountryId CountryName CountryDate
_____________________________________________________
1 1 United Kingdom 13.03.2014
5 2 France 03.03.2014
8 3 Swizterland 09.08.2009
9 4 Belgium 15.12.2013
12 5 Spain 25.04.2014




et le resultat est le suivant:




Id CountryId CountryName CountryDate
_____________________________________________________
1 1 United Kingdom 25.04.2014
2 1 United Kingdom 25.04.2014
3 1 United Kingdom 25.04.2014
4 2 France 25.04.2014
5 2 France 25.04.2014
6 2 France 25.04.2014
7 2 France 25.04.2014
8 3 Swizterland 25.04.2014
9 4 Belgium 25.04.2014
10 4 Belgium 25.04.2014
11 5 Spain 25.04.2014
12 5 Spain 25.04.2014



Merci pour votre aide.
Salutations.
Domivax

2 réponses

Avatar
db
Le 12/08/2014 10:48, Xavier Dominguez a écrit :
Bonjour tout le monde,

J'ai la table suivante:



Table: tbl_Global

Id CountryId CountryName CountryDate
_____________________________________________________
1 1 United Kingdom 13.03.2014
2 1 United Kingdom 02.03.2011
3 1 United Kingdom 03.04.2010
4 2 France 01.02.2012
5 2 France 03.03.2014
6 2 France 09.09.2010
7 2 France 08.04.2008
8 3 Swizterland 09.08.2009
9 4 Belgium 15.12.2013
10 4 Belgium 11.08.2011
11 5 Spain 23.08.2011
12 5 Spain 25.04.2014




J'ai un souci avec la fonction DMax.

Je souhaiterai une requete avec un seul enregistrement par pays renvoyant la date la plus recente.

Ma fonction dans sql_Global: Result: DMax("CountryDate","tbl_Global","CountryId")




Query: sql_Global

Id CountryId CountryName CountryDate
_____________________________________________________
1 1 United Kingdom 13.03.2014
5 2 France 03.03.2014
8 3 Swizterland 09.08.2009
9 4 Belgium 15.12.2013
12 5 Spain 25.04.2014




et le resultat est le suivant:




Id CountryId CountryName CountryDate
_____________________________________________________
1 1 United Kingdom 25.04.2014
2 1 United Kingdom 25.04.2014
3 1 United Kingdom 25.04.2014
4 2 France 25.04.2014
5 2 France 25.04.2014
6 2 France 25.04.2014
7 2 France 25.04.2014
8 3 Swizterland 25.04.2014
9 4 Belgium 25.04.2014
10 4 Belgium 25.04.2014
11 5 Spain 25.04.2014
12 5 Spain 25.04.2014



Merci pour votre aide.
Salutations.
Domivax






Bonjour,

JE n'ai pas bien compris ce que vous avez déjà fait et ce que vous
cherchez à faire, mais s'il s'agit juste de renvoyer le pays et la date
max, cette requête devrait suffire :

SELECT CountryName, max(CountryDate)
FROM tbl_Global
GROUP BY CountryName

db
Avatar
Gloops
Xavier Dominguez a écrit le 12/08/2014 10:48 :
Table: tbl_Global

Id CountryId CountryName CountryDate
_____________________________________________________
1 1 United Kingdom 13.03.2014
2 1 United Kingdom 02.03.2011
3 1 United Kingdom 03.04.2010



Bonjour,

db a déjà répondu, à part ça, normalement les noms de pays devr aient se
trouver dans une autre table, pour respecter le principe de
non-duplication des données. Tel quel c'est pour corriger le nom d'un
pays que ça va représenter un surcroît de travail et surtout une ba isse
notable de la fiabilité.

Ce qui apparaît ci-dessus devrait être le résultat d'une requête.

Maintenant que j'ai commencé à jouer les rabat-joie, autant que je
continue : pour structurer proprement une base il y a une méthode trè s
bien qui s'appelle Merise.

Pour résumer :
1/ on passe deux semaines avec le client à lui poser des questions que
la méthode Merise permet de faire ressortir
2/ on passe quelques mois à développer la base selon les réponses d u
client, et pendant tout ce temps-là le client ne voit rien
3/ on entend le client dire "ah oui, c'est bien ça que je voulais". ç a
sous-entend qu'il est rassuré.


Une fois qu'on sait faire ça on peut s'intéresser à des méthodes agiles
qui permettent au client d'avoir un retour avant la fin du
développement. Le but n'est pas de se passer d'être capable de fourni r
un travail fiable, mais de permettre au client d'intégrer dans le
processus une évolution des besoins.