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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
db
Le #26408875
Le 04/09/2016 à 19:35, albert a écrit :
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.


[joinDATE],Null) AS Nouveaux, Max(TBLcotisation.DateCotisation) AS
MaxDeDateCotisation,
where TBLCotisation.DateCotisation < (select
max(TBLCotisation.DateCotisation) from ... where ...)
db
albert
Le #26408879
Bonjour
"db" news:57cc61dd$0$7125$
Le 04/09/2016 à 19:35, albert a écrit :
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.

[joinDATE],Null) AS Nouveaux, Max(TBLcotisation.DateCotisation) AS
MaxDeDateCotisation,
where TBLCotisation.DateCotisation < (select
max(TBLCotisation.DateCotisation) from ... where ...)
db

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
albert
Le #26408891
Bonsoir/ Bonjour
Voir requête simplifiée à la fin.
"albert" news:nqhrjo$2s0$
Bonjour
"db" news:57cc61dd$0$7125$
Le 04/09/2016 à 19:35, albert a écrit :
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.

[joinDATE],Null) AS Nouveaux, Max(TBLcotisation.DateCotisation) AS
MaxDeDateCotisation,
where TBLCotisation.DateCotisation < (select
max(TBLCotisation.DateCotisation) from ... where ...)
db

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

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
db
Le #26408894
Le 05/09/2016 à 01:37, albert a écrit :
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;


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
albert
Le #26408904
Bonjour 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$
Le 05/09/2016 à 01:37, albert a écrit :
Bonjour,
A mon avis, il faut faire trois requêtes :
R1 : select TBLmcc.numero,max(TblCotisation.DateCotisation) as
R2 : select tbl1.numéro,max(TbC1.DateCotisation) as
SousMaxDeDateCotisation
R3 : select SELECT CapitaliserNom([lastname]) & ", " &
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
albert
Le #26408919
Bonjour
Voilà ça fonctionne avec seulement deux requêtes, voir à la fin.
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


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
microsoft.access
Le #26408941
Le dimanche 4 septembre 2016 19:35:07 UTC+2, albert a écrit :
Bonjjour
Avec ACCESS il est facille de trouver la dernière date dans une req uê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

OU....
select top 1 matable.champs1, matable.champs2, etc.... from matable order b y matable.champdate desc;
albert
Le #26408996
"albert" news:nqkb7m$1sgo$
Bonjour
Voilà ça fonctionne avec seulement deux requêtes,

Mais nous avons un petit raffinement à ajouter, Voir à la fin.
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;

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
db
Le #26409074
Le 06/09/2016 à 22:45, albert a écrit :
"albert" news:nqkb7m$1sgo$
Bonjour


...
Mais je n'ai pu ajuster la requete R2 pour seuement les inscrits de 2016
Merci si vous pouvez résoudre


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
albert
Le #26409095
Bonsoir et Merci
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$
Le 06/09/2016 à 22:45, albert a écrit :
"albert" news:nqkb7m$1sgo$
Bonjour



...
Mais je n'ai pu ajuster la requete R2 pour seuement les inscrits de 2016
Merci si vous pouvez résoudre

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
Publicité
Poster une réponse
Anonyme