Maintenant, j'aimerais obtenir un tableau r=E9capitulant les =E9v=E9nements
les plus r=E9cents pour chaque client, comme ceci :
IDClient - DateCom - Commentaire
1 3.8.10 Rappel
2 7.8.10 Envoi mail
2 7.8.10 Envoi 2=E8me mail
J'y arrive tr=E8s bien en utilisant une premi=E8re requ=EAte d'agr=E9gation=
,
avec la fonction MAX (Afin de d=E9terminer les commentaires les plus
r=E9cents) :
SELECT T_Commentaire.IDClient, Max(T_Commentaire.DateCom) AS
MaxDeDateCom
FROM T_Commentaire
GROUP BY T_Commentaire.IDClient;
Et en faisant une deuxi=E8me requ=EAte par dessus cette premi=E8re requ=EAt=
e
que j'ai appel=E9 R_MaxCom (Afin d'avoir la liste des commentaires) :
SELECT R_MaxCom.IDClient, T_Commentaire.DateCom,
T_Commentaire.Commentaire
FROM R_MaxCom INNER JOIN T_Commentaire ON (R_MaxCom.IDClient =3D
T_Commentaire.IDClient) AND (R_MaxCom.MaxDeDateCommentaire =3D
T_Commentaire.DateCommentaire);
Alors =E7a fonctionne tr=E8s bien sauf que j'aimerais pouvoir mettre =E0
jour le champ commentaire de cette requ=EAte... Elle reste en lecture
seule... J'ai m=EAme mis la propri=E9t=E9 de la requ=EAte "Type RecordSet" =
=E0
"Feuille r=E9p.dyn.(MAJ globale)", mais =E7a ne marche pas non plus...
Maintenant, j'aimerais obtenir un tableau récapitulant les événements les plus récents pour chaque client, comme ceci :
IDClient - DateCom - Commentaire 1 3.8.10 Rappel 2 7.8.10 Envoi mail 2 7.8.10 Envoi 2ème mail
J'y arrive très bien en utilisant une première requête d'agrégation, avec la fonction MAX (Afin de déterminer les commentaires les plus récents) :
SELECT T_Commentaire.IDClient, Max(T_Commentaire.DateCom) AS MaxDeDateCom FROM T_Commentaire GROUP BY T_Commentaire.IDClient;
Et en faisant une deuxième requête par dessus cette première requête que j'ai appelé R_MaxCom (Afin d'avoir la liste des commentaires) :
SELECT R_MaxCom.IDClient, T_Commentaire.DateCom, T_Commentaire.Commentaire FROM R_MaxCom INNER JOIN T_Commentaire ON (R_MaxCom.IDClient > T_Commentaire.IDClient) AND (R_MaxCom.MaxDeDateCommentaire > T_Commentaire.DateCommentaire);
Alors ça fonctionne très bien sauf que j'aimerais pouvoir mettre à jour le champ commentaire de cette requête... Elle reste en lecture seule... J'ai même mis la propriété de la requête "Type RecordSet" à "Feuille rép.dyn.(MAJ globale)", mais ça ne marche pas non plus...
Qui à une idée ? Merci d'avance !!!
Essaye avec ceci :
SELECT T.IDClient, T.DateCom, T.Commentaire FROM T_Commentaire AS T WHERE T.DateCom In ( SELECT TOP 1 DateCom FROM T_Commentaire WHERE IDClient=T.IDClient ORDER BY DateCom DESC);
Bonjour,
Michel Michel a écrit :
[Access 2003 - FR, Win XP FR]
Bonjour !
Je me creuse la tête sur un problème tout bête.. J'ai une table
T_Commentaire :
Maintenant, j'aimerais obtenir un tableau récapitulant les événements
les plus récents pour chaque client, comme ceci :
IDClient - DateCom - Commentaire
1 3.8.10 Rappel
2 7.8.10 Envoi mail
2 7.8.10 Envoi 2ème mail
J'y arrive très bien en utilisant une première requête d'agrégation,
avec la fonction MAX (Afin de déterminer les commentaires les plus
récents) :
SELECT T_Commentaire.IDClient, Max(T_Commentaire.DateCom) AS
MaxDeDateCom
FROM T_Commentaire
GROUP BY T_Commentaire.IDClient;
Et en faisant une deuxième requête par dessus cette première requête
que j'ai appelé R_MaxCom (Afin d'avoir la liste des commentaires) :
SELECT R_MaxCom.IDClient, T_Commentaire.DateCom,
T_Commentaire.Commentaire
FROM R_MaxCom INNER JOIN T_Commentaire ON (R_MaxCom.IDClient > T_Commentaire.IDClient) AND (R_MaxCom.MaxDeDateCommentaire > T_Commentaire.DateCommentaire);
Alors ça fonctionne très bien sauf que j'aimerais pouvoir mettre à
jour le champ commentaire de cette requête... Elle reste en lecture
seule... J'ai même mis la propriété de la requête "Type RecordSet" à
"Feuille rép.dyn.(MAJ globale)", mais ça ne marche pas non plus...
Qui à une idée ? Merci d'avance !!!
Essaye avec ceci :
SELECT T.IDClient, T.DateCom, T.Commentaire
FROM T_Commentaire AS T
WHERE T.DateCom In (
SELECT TOP 1 DateCom FROM T_Commentaire WHERE IDClient=T.IDClient ORDER BY DateCom DESC);
Maintenant, j'aimerais obtenir un tableau récapitulant les événements les plus récents pour chaque client, comme ceci :
IDClient - DateCom - Commentaire 1 3.8.10 Rappel 2 7.8.10 Envoi mail 2 7.8.10 Envoi 2ème mail
J'y arrive très bien en utilisant une première requête d'agrégation, avec la fonction MAX (Afin de déterminer les commentaires les plus récents) :
SELECT T_Commentaire.IDClient, Max(T_Commentaire.DateCom) AS MaxDeDateCom FROM T_Commentaire GROUP BY T_Commentaire.IDClient;
Et en faisant une deuxième requête par dessus cette première requête que j'ai appelé R_MaxCom (Afin d'avoir la liste des commentaires) :
SELECT R_MaxCom.IDClient, T_Commentaire.DateCom, T_Commentaire.Commentaire FROM R_MaxCom INNER JOIN T_Commentaire ON (R_MaxCom.IDClient > T_Commentaire.IDClient) AND (R_MaxCom.MaxDeDateCommentaire > T_Commentaire.DateCommentaire);
Alors ça fonctionne très bien sauf que j'aimerais pouvoir mettre à jour le champ commentaire de cette requête... Elle reste en lecture seule... J'ai même mis la propriété de la requête "Type RecordSet" à "Feuille rép.dyn.(MAJ globale)", mais ça ne marche pas non plus...
Qui à une idée ? Merci d'avance !!!
Essaye avec ceci :
SELECT T.IDClient, T.DateCom, T.Commentaire FROM T_Commentaire AS T WHERE T.DateCom In ( SELECT TOP 1 DateCom FROM T_Commentaire WHERE IDClient=T.IDClient ORDER BY DateCom DESC);
Michel Michel
Essaye avec ceci : SELECT T.IDClient, T.DateCom, T.Commentaire FROM T_Commentaire AS T WHERE T.DateCom In ( SELECT TOP 1 DateCom FROM T_Commentaire WHERE IDClient=T.IDClient O RDER BY DateCom DESC);
Ca marche ! Ca maaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarche ! !!! Merci mille fois !!!!
Essaye avec ceci :
SELECT T.IDClient, T.DateCom, T.Commentaire
FROM T_Commentaire AS T
WHERE T.DateCom In (
SELECT TOP 1 DateCom FROM T_Commentaire WHERE IDClient=T.IDClient O RDER BY DateCom DESC);
Ca marche ! Ca
maaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarche ! !!!
Merci mille fois !!!!
Essaye avec ceci : SELECT T.IDClient, T.DateCom, T.Commentaire FROM T_Commentaire AS T WHERE T.DateCom In ( SELECT TOP 1 DateCom FROM T_Commentaire WHERE IDClient=T.IDClient O RDER BY DateCom DESC);
Ca marche ! Ca maaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarche ! !!! Merci mille fois !!!!
Michel__D
Bonjour,
Michel Michel a écrit :
Essaye avec ceci : SELECT T.IDClient, T.DateCom, T.Commentaire FROM T_Commentaire AS T WHERE T.DateCom In ( SELECT TOP 1 DateCom FROM T_Commentaire WHERE IDClient=T.IDClient ORDER BY DateCom DESC);
Ca marche ! Ca maaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarche !!!! Merci mille fois !!!!
Mouais, comme quoi même ce qui n'est pas indiqué est possible ...
Bonjour,
Michel Michel a écrit :
Essaye avec ceci :
SELECT T.IDClient, T.DateCom, T.Commentaire
FROM T_Commentaire AS T
WHERE T.DateCom In (
SELECT TOP 1 DateCom FROM T_Commentaire WHERE IDClient=T.IDClient ORDER BY DateCom DESC);
Ca marche ! Ca
maaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarche !!!!
Merci mille fois !!!!
Mouais, comme quoi même ce qui n'est pas indiqué est possible ...
Essaye avec ceci : SELECT T.IDClient, T.DateCom, T.Commentaire FROM T_Commentaire AS T WHERE T.DateCom In ( SELECT TOP 1 DateCom FROM T_Commentaire WHERE IDClient=T.IDClient ORDER BY DateCom DESC);
Ca marche ! Ca maaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarche !!!! Merci mille fois !!!!
Mouais, comme quoi même ce qui n'est pas indiqué est possible ...