Access Max-1
Le
albert

Bonjjour
Avec ACCESS il est facille de trouver la dernière date dans une requête
regroupée en utilisant MAX.
[joinDATE],Null) AS Nouveaux, Max(TBLcotisation.DateCotisation) AS
MaxDeDateCotisation,
Y a-t'il une façon de trouver l'avant dernière date ??
Merci de vous intéresser à mon problème.
--
albertri-at-videotron.ca.invalid
Avec ACCESS il est facille de trouver la dernière date dans une requête
regroupée en utilisant MAX.
[joinDATE],Null) AS Nouveaux, Max(TBLcotisation.DateCotisation) AS
MaxDeDateCotisation,
Y a-t'il une façon de trouver l'avant dernière date ??
Merci de vous intéresser à mon problème.
--
albertri-at-videotron.ca.invalid
[joinDATE],Null) AS Nouveaux, Max(TBLcotisation.DateCotisation) AS
MaxDeDateCotisation,
where TBLCotisation.DateCotisation < (select
max(TBLCotisation.DateCotisation) from ... where ...)
db
"db" news:57cc61dd$0$7125$
Je ne saisi pas très bien ce qu'il faut faire dans la requête
J'ai déjà dans une colonne j'ai la plus récente date de cotisation du
membre avec MAX
Dans une autre colonne, j'ai aussi besoin de connaître la date de son
avant-dernière cotisation, si elle existe.
(Faire l'équivalent de Petite-Valeur de Excel)
Merci
--
albertri-at-videotron.ca.invalid
Voir requête simplifiée à la fin.
"albert" news:nqhrjo$2s0$
Voici la requête qui donne la dernière date (La plus récente)
J'ai besoin de trouver la date de la cotisation précédente si elle existe
pour ce membre.
SELECT CapitaliserNom([lastname]) & ", " & CapitaliserPrénom([firstname]) AS
NomComplet, Max(TBLcotisation.DateCotisation) AS MaxDeDateCotisation
FROM TBLmbcc RIGHT JOIN TBLcotisation ON TBLmbcc.Numéro =
TBLcotisation.Numéro
GROUP BY TBLmbcc.[ACTIF], TBLmbcc.Numéro, CapitaliserNom([lastname]) & ", "
& CapitaliserPrénom([firstname])
HAVING (((TBLmbcc.[ACTIF])=Yes))
ORDER BY Max(TBLcotisation.DateCotisation) DESC;
Merci de m'aider
--
albertri-at-videotron.ca.invalid
Bonjour,
A mon avis, il faut faire trois requêtes :
R1 : select TBLmcc.numero,max(TblCotisation.DateCotisation) as
MaxDeDateCotisation
FROM TBLmbcc RIGHT JOIN TBLcotisation ON TBLmbcc.Numéro TBLcotisation.Numéro
where ACTIF=Yes
group by TBLmcc.Numéro
R2 : select tbl1.numéro,max(TbC1.DateCotisation) as SousMaxDeDateCotisation
FROM TBLmbcc tbl1 RIGHT JOIN TBLcotisation tbc1 ON tbl1.Numéro tbc1.Numéro
where ACTIF=Yes and tbc1.DateCotisation<(select Max(tbc2.Datecotisation)
FROM TBLmbcc tbl2 RIGHT JOIN TBLcotisation tbc2 ON tbl2.Numéro tbc2.Numéro
where actif=Yes and tbl2.numéro=tbl1.numéro)
group by tbl1.numero
R3 : select SELECT CapitaliserNom([lastname]) & ", " &
CapitaliserPrénom([firstname]) AS NomComplet,MaxDeDateCotisation,
SousMaxDeDateCotisation
from TBLMcc right join r1 on r1.numéro=TBLMcc.Numéro
right Join R2 on r2.numéro=TBLMcc.Numéro
order by maxdedatecotisation desc
Pas testé, mais c'est l'idée : R1 est la requête qui renvoie le n° de
membre avec sa date max, R2 renvoie le n° de membre avec la date
précédent la date max, R3 affiche le tout.
db
Tel quel ça ne fonctionne pas, il y a des erreurs de syntaxe.
Je vais travailler dessus et si je réussi je vous fais savoir.
Merci
Albert
"db" news:57cd1e4c$0$7968$
Voilà ça fonctionne avec seulement deux requêtes, voir à la fin.
Voilà il manquait un accent à numéro et autres petits problèmes.
Voici les deux requêtes qui donnent le résutat attendu.
_R1
SELECT TBLmbcc.[ACTIF], TBLcotisation.Numéro,
Max(TBLcotisation.DateCotisation) AS MaxDeDateCotisation
FROM TBLmbcc RIGHT JOIN TBLcotisation ON TBLmbcc.Numéro =
TBLcotisation.Numéro
GROUP BY TBLmbcc.[ACTIF], TBLcotisation.Numéro
HAVING (((TBLmbcc.[ACTIF])=Yes));
_R2
SELECT tbl1.numéro, CapitaliserNom([lastname]) & ", " &
CapitaliserPrénom([firstname]) AS NomComplet, Max(tbc1.DateCotisation) AS
SousMaxDeDateCotisation
FROM TBLmbcc AS tbl1 RIGHT JOIN TBLcotisation AS tbc1 ON tbl1.Numéro =
tbc1.Numéro
WHERE (((tbl1.[ACTIF])=Yes) AND ((tbc1.DateCotisation)<(select
Max(tbc2.Datecotisation)
FROM TBLmbcc tbl2 RIGHT JOIN TBLcotisation tbc2 ON tbl2.Numéro = tbc2.Numéro
where actif=Yes and tbl2.numéro=tbl1.numéro)))
GROUP BY tbl1.numéro, CapitaliserNom([lastname]) & ", " &
CapitaliserPrénom([firstname])
ORDER BY Max(tbc1.DateCotisation) DESC;
Bon, je ne sais pas où ou comment vous avez appris, mais vos réponses
fonctionnent,
et je crois pas les trouver dans le manuel du débutant.
Il me reste beaucoup de chemin à faire...
Merci
Albert
OU....
select top 1 matable.champs1, matable.champs2, etc.... from matable order b y matable.champdate desc;
Mais nous avons un petit raffinement à ajouter, Voir à la fin.
Parmi ceux qui s'abonnent cette année nous voulons la liste de ceux qui nous
avaient quitté 1 an ou plus et qui reviennent.
Donc seulement ceux qui se sont abonnés depuis 2016-03-01 et dont la date
de la cotisation précédente est inférieure 2014-12-31.
(cette annéée la période de réinscription intensive et du 23 août au 30
septembre)
J'ai modifié la requête R1 en ajoutant le MAX > 16-03-01
SELECT TBLmbcc.[ACTIF], TBLcotisation.Numéro,
Max(TBLcotisation.DateCotisation) AS MaxDeDateCotisation
FROM TBLmbcc RIGHT JOIN TBLcotisation ON TBLmbcc.Numéro =
TBLcotisation.Numéro
GROUP BY TBLmbcc.[ACTIF], TBLcotisation.Numéro
HAVING (((TBLmbcc.[ACTIF])=Yes) AND
((Max(TBLcotisation.DateCotisation))>=#3/1/2016#))
ORDER BY Max(TBLcotisation.DateCotisation) DESC;
Mais je n'ai pu ajuster la requete R2 pour seuement les inscrits de 2016
Merci si vous pouvez résoudre
--
albertri-at-videotron.ca.invalid
...
Pas sûr d'avoir compris, mais peut-être ça :
_R2
SELECT tbl1.numéro, CapitaliserNom([lastname]) & ", " &
CapitaliserPrénom([firstname]) AS NomComplet, Max(tbc1.DateCotisation)
AS SousMaxDeDateCotisation
FROM TBLmbcc AS tbl1 RIGHT JOIN TBLcotisation AS tbc1 ON tbl1.Numéro tbc1.Numéro
WHERE (((tbl1.[ACTIF])=Yes) AND ((tbc1.DateCotisation)<(select
Max(tbc2.Datecotisation)
FROM TBLmbcc tbl2 RIGHT JOIN TBLcotisation tbc2 ON tbl2.Numéro tbc2.Numéro
where actif=Yes and tbl2.numéro=tbl1.numéro
and DateCotisation > #3/1/2016#)))
GROUP BY tbl1.numéro, CapitaliserNom([lastname]) & ", " &
CapitaliserPrénom([firstname])
ORDER BY Max(tbc1.DateCotisation) DESC;
db
C'est exactement ce que nous recherchions, faire la liste de ceux qui nous
avaient quittés et qui nous reviennent après quelques années loin de nous.
Voir la liste, les noms qui nous intéressent sont en bleu.
http://www.cjoint.com/c/FIht4YIhpF4
Un grand merci
Albert
"db" news:57d051d0$0$7984$