|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : décembre 2010 Messages : 18 ![]() |
Bonsoir,
je me suis baladé sur de nombreux forums et je n'ai toujours pas trouvé de solution à mon problème étant débutant sur access. Voici donc mon problème, j'ai créé 2 tables, une Participant avec la date de naissance, le nom et la catégorie. La deuxième table est celle des catégories (1.2.3.4... en fonction de l'âge) Je voudrais donc par une requête mettre à jour la table participant, en mettant à jour sa colonne catégorie en fonction de l'âge des licenciés. J'ai donc pensé tout d'abord créer une colonne âge dans la table licencié. Dans un second y insérer l'âge des participants pour après faire une fonction si entre la table participant et catégorie. (si l'age est de .... la catégorie qui correspond est ...) J'ai trouvé comment calculer l'âge : Select(Year(Date()-datenaiss-1)-year(0)) as Age From Participant Mais après je n'arrive pas à l'insérer dans la colonne âge que j'ai créé plutôt. J'ai essayé avec les fonctions update et insert into sans résultat et je reste bloqué. Par avance merci de votre aide Valentin |
|
|
00
|
|
|
#2 |
![]() ![]() |
Bonjour,
Tu peux effectivement le faire avec un update et un select. La fonction case when permet de spécifier une valeur en fonction d'un critère L'exemple ci-dessous te met dans catégorie senior si son age est plus de 18, sinon junior s'il a entre 14 et 18ans et sinon minime. A toi de l'adapter à ton problème. Code :
update participant set categorie = (select case when(l.age>18) then 'senior' else case when(l.age>14) then 'junior' else 'minime' from licencie l)
__________________
Cordialement, Christophe Merci de ne pas oublier de mettre résolu quand le sujet l'est. Cela aide tous les DVPnautes dans leur recherche |
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : décembre 2010 Messages : 18 ![]() |
Merci beaucoup pour cette solution, je ne connaissais pas cette fonction case when.
Mais en fait je bloque à l'étape d'avant, c'est à dire que j'arrive par le biais d'une fonction select a afficher les ages calculés à partir des dates de naissance mais je n'arrive pas à ce qu'ils s'inscrivent dans la table participant dans une colonne age.... J'ai donc une table participant avec : nom, prénom, ville, adresse..., date de naissance et une autre table catégorie avec une dizaine de catégories en fonction de l'âge. |
|
|
00
|
|
|
#4 |
![]() ![]() |
Code :
update participant set age = (select "qui affiche l'age")
__________________
Cordialement, Christophe Merci de ne pas oublier de mettre résolu quand le sujet l'est. Cela aide tous les DVPnautes dans leur recherche |
|
|
00
|
|
|
#5 |
|
Invité de passage
![]() Inscription : décembre 2010 Messages : 18 ![]() |
Non j'ai déjà essayé ça :
UPDATE Participant SET Age = (Select (Year(Date()-Datenaiss-1)-year(0)) From Participant); Et cela me dit que l'opération doit utiliser une requête qui peut être mise à jour ... |
|
|
00
|
|
|
#6 | |
|
Expert Confirmé
![]() Inscription : juillet 2007 Messages : 2 174 ![]() |
Bonjour,
Je me permets de m'imisser dans ce fil... Citation:
La table "Participant" possède-t-elle une clé unique ?
__________________
Dis-nous et à bientôt, Richard. ---------------------------------------------------------------------------------------------- . et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
|
|
|
|
00
|
|
|
#7 |
|
Expert Confirmé
![]() Inscription : juillet 2007 Messages : 2 174 ![]() |
Sinon :
Code :
UPDATE Participant SET Participant.age = Year(Date()-Datenaiss-1)-Year(0)
__________________
Dis-nous et à bientôt, Richard. ---------------------------------------------------------------------------------------------- . et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
|
|
|
00
|
|
|
#8 |
|
Invité de passage
![]() Inscription : décembre 2010 Messages : 18 ![]() |
Merci cela fonctionne bien, sauf que j'ai l'impression que cela rajoute une année ...
Je m'explique une personne née le 01/12/1974 à selon la table 37 ans alors que normalement il devrai avoir 36 ans ! J'ai pourtant utilisé la formule proposée : UPDATE Participant SET Participant.age = Year(Date()-Datenaiss-1)-Year(0) Est-ce vraiment la bonne méthode pour calculer l'âge à partir d'une date de naissance ? |
|
|
00
|
|
|
#9 |
|
Expert Confirmé
![]() Inscription : juillet 2007 Messages : 2 174 ![]() |
me semble suffire.
Mais bon, nous avons répondu sur le fond... après, il faut tester...
__________________
Dis-nous et à bientôt, Richard. ---------------------------------------------------------------------------------------------- . et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
|
|
|
00
|
|
|
#10 |
|
Invité de passage
![]() Inscription : décembre 2010 Messages : 18 ![]() |
Merci beaucoup pour votre aide, j'ai enfin trouvé la solution !
|
|
|
00
|
|
|
#11 |
![]() ![]() |
Bonjour,
Pour le calcul de l'âge, tu peux regarder dans la FAQ http://access.developpez.com/faq/?page=dates#HowOld
__________________
Cordialement, Christophe Merci de ne pas oublier de mettre résolu quand le sujet l'est. Cela aide tous les DVPnautes dans leur recherche |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com