J’ai crée une base de donnée permettant de gérer un grand nombre de
documents. Chaque document peut posséder un ou plusieurs indices de révision
noté de A à Z.
Deux tables sont liée dans cette base : la première (DOCUMENT) intègre le
titre du document ainsi que sont numéro d’ordre, La seconde (SF INDICES)
contient les indices et apparaît en tant que sous-formulaire dans le
formulaire DOCUMENT lors de la saisie des différents indices de révisions.
Une date de révision est associée à chacun des indices
L’intérêt de cette base est de pouvoir listé l’intégralité des documents
avec tout les indices, mais aussi d’obtenir une liste avec seulement le
dernier indice et ce pour chaque document.
La date la plus élevée indique obligatoirement l’indice de révision le plus
élevé (c’est celui-là qu’on veut afficher). Une requête simple comme (SELECT
MAX ([DATEREVISION]) FROM ([RSF Indices])) ne renvoie que la valeur maximum
de la date de révision et ce pour un seul document.
Qui pourrait m’indiquer la bonne requête a utiliser pour obtenir le résultat
voulu ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Raymond [mvp]
Bonjour.
essaie de faire une requête regroupement: SELECT DOCUMENT.Numéro, Max(INDICES.Madate) AS MaxDeMadate FROM DOCUMENT INNER JOIN INDICES ON DOCUMENT.Numéro = INDICES.Numéro GROUP BY DOCUMENT.Numéro;
-- @+ Raymond Access MVP http://access.seneque.free.fr/ http://access.vba.free.fr/ http://access2003.free.fr/ http://users.skynet.be/mpfa/ pour débuter sur le forum
"curt" a écrit dans le message de news:
J'ai crée une base de donnée permettant de gérer un grand nombre de documents. Chaque document peut posséder un ou plusieurs indices de révision noté de A à Z. Deux tables sont liée dans cette base : la première (DOCUMENT) intègre le titre du document ainsi que sont numéro d'ordre, La seconde (SF INDICES) contient les indices et apparaît en tant que sous-formulaire dans le formulaire DOCUMENT lors de la saisie des différents indices de révisions. Une date de révision est associée à chacun des indices L'intérêt de cette base est de pouvoir listé l'intégralité des documents avec tout les indices, mais aussi d'obtenir une liste avec seulement le dernier indice et ce pour chaque document. La date la plus élevée indique obligatoirement l'indice de révision le plus élevé (c'est celui-là qu'on veut afficher). Une requête simple comme (SELECT MAX ([DATEREVISION]) FROM ([RSF Indices])) ne renvoie que la valeur maximum de la date de révision et ce pour un seul document. Qui pourrait m'indiquer la bonne requête a utiliser pour obtenir le résultat voulu ?
D'avance merci.
Bonjour.
essaie de faire une requête regroupement:
SELECT DOCUMENT.Numéro, Max(INDICES.Madate) AS MaxDeMadate
FROM DOCUMENT INNER JOIN INDICES ON DOCUMENT.Numéro = INDICES.Numéro
GROUP BY DOCUMENT.Numéro;
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum
"curt" <master.ck@wanadoo.fr> a écrit dans le message de news:
83BCE42E-A110-49A5-B0F5-5A404608C899@microsoft.com...
J'ai crée une base de donnée permettant de gérer un grand nombre de
documents. Chaque document peut posséder un ou plusieurs indices de
révision
noté de A à Z.
Deux tables sont liée dans cette base : la première (DOCUMENT) intègre le
titre du document ainsi que sont numéro d'ordre, La seconde (SF INDICES)
contient les indices et apparaît en tant que sous-formulaire dans le
formulaire DOCUMENT lors de la saisie des différents indices de révisions.
Une date de révision est associée à chacun des indices
L'intérêt de cette base est de pouvoir listé l'intégralité des documents
avec tout les indices, mais aussi d'obtenir une liste avec seulement le
dernier indice et ce pour chaque document.
La date la plus élevée indique obligatoirement l'indice de révision le
plus
élevé (c'est celui-là qu'on veut afficher). Une requête simple comme
(SELECT
MAX ([DATEREVISION]) FROM ([RSF Indices])) ne renvoie que la valeur
maximum
de la date de révision et ce pour un seul document.
Qui pourrait m'indiquer la bonne requête a utiliser pour obtenir le
résultat
voulu ?
essaie de faire une requête regroupement: SELECT DOCUMENT.Numéro, Max(INDICES.Madate) AS MaxDeMadate FROM DOCUMENT INNER JOIN INDICES ON DOCUMENT.Numéro = INDICES.Numéro GROUP BY DOCUMENT.Numéro;
-- @+ Raymond Access MVP http://access.seneque.free.fr/ http://access.vba.free.fr/ http://access2003.free.fr/ http://users.skynet.be/mpfa/ pour débuter sur le forum
"curt" a écrit dans le message de news:
J'ai crée une base de donnée permettant de gérer un grand nombre de documents. Chaque document peut posséder un ou plusieurs indices de révision noté de A à Z. Deux tables sont liée dans cette base : la première (DOCUMENT) intègre le titre du document ainsi que sont numéro d'ordre, La seconde (SF INDICES) contient les indices et apparaît en tant que sous-formulaire dans le formulaire DOCUMENT lors de la saisie des différents indices de révisions. Une date de révision est associée à chacun des indices L'intérêt de cette base est de pouvoir listé l'intégralité des documents avec tout les indices, mais aussi d'obtenir une liste avec seulement le dernier indice et ce pour chaque document. La date la plus élevée indique obligatoirement l'indice de révision le plus élevé (c'est celui-là qu'on veut afficher). Une requête simple comme (SELECT MAX ([DATEREVISION]) FROM ([RSF Indices])) ne renvoie que la valeur maximum de la date de révision et ce pour un seul document. Qui pourrait m'indiquer la bonne requête a utiliser pour obtenir le résultat voulu ?
D'avance merci.
curt
Merci Raymond pour ta réponse.... ça fonctionne mais j'ai été incomplet dans ma première demande. La base possède d'autres champs (statut - date de statut - n° envoi client - date envoi client,etc...) En conclusion, je n'ai pas la seule ligne comportant le dernier indice de révision (toujours celui dont la date est max), pour CHAQUE document, mais l'intégralité des enregistrements... donc c'est pas bon... Pour être précis, il faut extraire de la table RSF Indices UNIQUEMENT les renseignements contenu sur la ligne où la date est max. En espérant que tu a la réponse..
Merci Raymond pour ta réponse.... ça fonctionne mais j'ai été incomplet dans
ma première demande.
La base possède d'autres champs (statut - date de statut - n° envoi client -
date envoi client,etc...)
En conclusion, je n'ai pas la seule ligne comportant le dernier indice de
révision (toujours celui dont la date est max), pour CHAQUE document, mais
l'intégralité des enregistrements... donc c'est pas bon...
Pour être précis, il faut extraire de la table RSF Indices UNIQUEMENT les
renseignements contenu sur la ligne où la date est max.
En espérant que tu a la réponse..
Merci Raymond pour ta réponse.... ça fonctionne mais j'ai été incomplet dans ma première demande. La base possède d'autres champs (statut - date de statut - n° envoi client - date envoi client,etc...) En conclusion, je n'ai pas la seule ligne comportant le dernier indice de révision (toujours celui dont la date est max), pour CHAQUE document, mais l'intégralité des enregistrements... donc c'est pas bon... Pour être précis, il faut extraire de la table RSF Indices UNIQUEMENT les renseignements contenu sur la ligne où la date est max. En espérant que tu a la réponse..
Raymond [mvp]
On va décomposer en requêtes enregistrées et si tu le veux on pourra plus tard faire une seule requête avec sous requête, mais plus tard.
faire une requête de regroupement comme la précédente. SELECT DOCUMENT.Numéro, Max(INDICES.Madate) AS MaxDeMadate FROM DOCUMENT INNER JOIN INDICES ON DOCUMENT.Numéro = INDICES.Numéro GROUP BY DOCUMENT.Numéro; Tu la nommes Requête3 par exemple;
tu fais une requête sélection normale sur la table et la requête requête3 mises en relation. SELECT DOCUMENT.* FROM DOCUMENT INNER JOIN Requête3 ON DOCUMENT.Numéro = Requête3.Numéro WHERE DOCUMENT.Madate = [Requête3]![MaxDeMadate]; tu la nommes requête4. tu exécutes la requête4. il est bien évident qu'il faut que tu rajoutes les tables et les champs suplémentaires que tu dois rapatrier dans la requête4. -- @+ Raymond Access MVP http://access.seneque.free.fr/ http://access.vba.free.fr/ http://access2003.free.fr/ http://users.skynet.be/mpfa/ pour débuter sur le forum
"curt" a écrit dans le message de news:
Merci Raymond pour ta réponse.... ça fonctionne mais j'ai été incomplet dans ma première demande. La base possède d'autres champs (statut - date de statut - n° envoi client - date envoi client,etc...) En conclusion, je n'ai pas la seule ligne comportant le dernier indice de révision (toujours celui dont la date est max), pour CHAQUE document, mais l'intégralité des enregistrements... donc c'est pas bon... Pour être précis, il faut extraire de la table RSF Indices UNIQUEMENT les renseignements contenu sur la ligne où la date est max. En espérant que tu a la réponse..
On va décomposer en requêtes enregistrées et si tu le veux on pourra plus
tard faire une seule requête avec sous requête, mais plus tard.
faire une requête de regroupement comme la précédente.
SELECT DOCUMENT.Numéro, Max(INDICES.Madate) AS MaxDeMadate
FROM DOCUMENT INNER JOIN INDICES ON DOCUMENT.Numéro = INDICES.Numéro
GROUP BY DOCUMENT.Numéro;
Tu la nommes Requête3 par exemple;
tu fais une requête sélection normale sur la table et la requête requête3
mises en relation.
SELECT DOCUMENT.*
FROM DOCUMENT INNER JOIN Requête3 ON DOCUMENT.Numéro = Requête3.Numéro
WHERE DOCUMENT.Madate = [Requête3]![MaxDeMadate];
tu la nommes requête4.
tu exécutes la requête4.
il est bien évident qu'il faut que tu rajoutes les tables et les champs
suplémentaires que tu dois rapatrier dans la requête4.
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum
"curt" <master.ck@wanadoo.fr> a écrit dans le message de news:
67F0C794-825B-4C28-BC65-8F928C047E5E@microsoft.com...
Merci Raymond pour ta réponse.... ça fonctionne mais j'ai été incomplet
dans
ma première demande.
La base possède d'autres champs (statut - date de statut - n° envoi
client -
date envoi client,etc...)
En conclusion, je n'ai pas la seule ligne comportant le dernier indice de
révision (toujours celui dont la date est max), pour CHAQUE document, mais
l'intégralité des enregistrements... donc c'est pas bon...
Pour être précis, il faut extraire de la table RSF Indices UNIQUEMENT les
renseignements contenu sur la ligne où la date est max.
En espérant que tu a la réponse..
On va décomposer en requêtes enregistrées et si tu le veux on pourra plus tard faire une seule requête avec sous requête, mais plus tard.
faire une requête de regroupement comme la précédente. SELECT DOCUMENT.Numéro, Max(INDICES.Madate) AS MaxDeMadate FROM DOCUMENT INNER JOIN INDICES ON DOCUMENT.Numéro = INDICES.Numéro GROUP BY DOCUMENT.Numéro; Tu la nommes Requête3 par exemple;
tu fais une requête sélection normale sur la table et la requête requête3 mises en relation. SELECT DOCUMENT.* FROM DOCUMENT INNER JOIN Requête3 ON DOCUMENT.Numéro = Requête3.Numéro WHERE DOCUMENT.Madate = [Requête3]![MaxDeMadate]; tu la nommes requête4. tu exécutes la requête4. il est bien évident qu'il faut que tu rajoutes les tables et les champs suplémentaires que tu dois rapatrier dans la requête4. -- @+ Raymond Access MVP http://access.seneque.free.fr/ http://access.vba.free.fr/ http://access2003.free.fr/ http://users.skynet.be/mpfa/ pour débuter sur le forum
"curt" a écrit dans le message de news:
Merci Raymond pour ta réponse.... ça fonctionne mais j'ai été incomplet dans ma première demande. La base possède d'autres champs (statut - date de statut - n° envoi client - date envoi client,etc...) En conclusion, je n'ai pas la seule ligne comportant le dernier indice de révision (toujours celui dont la date est max), pour CHAQUE document, mais l'intégralité des enregistrements... donc c'est pas bon... Pour être précis, il faut extraire de la table RSF Indices UNIQUEMENT les renseignements contenu sur la ligne où la date est max. En espérant que tu a la réponse..
curt
Merci encore une fois - reste l'interrogation suivante : A quel endroit dans la requête dois-je ajouter les tables & champs supplémentaires ?
On va décomposer en requêtes enregistrées et si tu le veux on pourra plus tard faire une seule requête avec sous requête, mais plus tard.
faire une requête de regroupement comme la précédente. SELECT DOCUMENT.Numéro, Max(INDICES.Madate) AS MaxDeMadate FROM DOCUMENT INNER JOIN INDICES ON DOCUMENT.Numéro = INDICES.Numéro GROUP BY DOCUMENT.Numéro; Tu la nommes Requête3 par exemple;
tu fais une requête sélection normale sur la table et la requête requête3 mises en relation. SELECT DOCUMENT.* FROM DOCUMENT INNER JOIN Requête3 ON DOCUMENT.Numéro = Requête3.Numéro WHERE DOCUMENT.Madate = [Requête3]![MaxDeMadate]; tu la nommes requête4. tu exécutes la requête4. il est bien évident qu'il faut que tu rajoutes les tables et les champs suplémentaires que tu dois rapatrier dans la requête4. -- @+ Raymond Access MVP http://access.seneque.free.fr/ http://access.vba.free.fr/ http://access2003.free.fr/ http://users.skynet.be/mpfa/ pour débuter sur le forum
"curt" a écrit dans le message de news:
Merci Raymond pour ta réponse.... ça fonctionne mais j'ai été incomplet dans ma première demande. La base possède d'autres champs (statut - date de statut - n° envoi client - date envoi client,etc...) En conclusion, je n'ai pas la seule ligne comportant le dernier indice de révision (toujours celui dont la date est max), pour CHAQUE document, mais l'intégralité des enregistrements... donc c'est pas bon... Pour être précis, il faut extraire de la table RSF Indices UNIQUEMENT les renseignements contenu sur la ligne où la date est max. En espérant que tu a la réponse..
Merci encore une fois - reste l'interrogation suivante : A quel endroit dans
la requête dois-je ajouter les tables & champs supplémentaires ?
On va décomposer en requêtes enregistrées et si tu le veux on pourra plus
tard faire une seule requête avec sous requête, mais plus tard.
faire une requête de regroupement comme la précédente.
SELECT DOCUMENT.Numéro, Max(INDICES.Madate) AS MaxDeMadate
FROM DOCUMENT INNER JOIN INDICES ON DOCUMENT.Numéro = INDICES.Numéro
GROUP BY DOCUMENT.Numéro;
Tu la nommes Requête3 par exemple;
tu fais une requête sélection normale sur la table et la requête requête3
mises en relation.
SELECT DOCUMENT.*
FROM DOCUMENT INNER JOIN Requête3 ON DOCUMENT.Numéro = Requête3.Numéro
WHERE DOCUMENT.Madate = [Requête3]![MaxDeMadate];
tu la nommes requête4.
tu exécutes la requête4.
il est bien évident qu'il faut que tu rajoutes les tables et les champs
suplémentaires que tu dois rapatrier dans la requête4.
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum
"curt" <master.ck@wanadoo.fr> a écrit dans le message de news:
67F0C794-825B-4C28-BC65-8F928C047E5E@microsoft.com...
Merci Raymond pour ta réponse.... ça fonctionne mais j'ai été incomplet
dans
ma première demande.
La base possède d'autres champs (statut - date de statut - n° envoi
client -
date envoi client,etc...)
En conclusion, je n'ai pas la seule ligne comportant le dernier indice de
révision (toujours celui dont la date est max), pour CHAQUE document, mais
l'intégralité des enregistrements... donc c'est pas bon...
Pour être précis, il faut extraire de la table RSF Indices UNIQUEMENT les
renseignements contenu sur la ligne où la date est max.
En espérant que tu a la réponse..
Merci encore une fois - reste l'interrogation suivante : A quel endroit dans la requête dois-je ajouter les tables & champs supplémentaires ?
On va décomposer en requêtes enregistrées et si tu le veux on pourra plus tard faire une seule requête avec sous requête, mais plus tard.
faire une requête de regroupement comme la précédente. SELECT DOCUMENT.Numéro, Max(INDICES.Madate) AS MaxDeMadate FROM DOCUMENT INNER JOIN INDICES ON DOCUMENT.Numéro = INDICES.Numéro GROUP BY DOCUMENT.Numéro; Tu la nommes Requête3 par exemple;
tu fais une requête sélection normale sur la table et la requête requête3 mises en relation. SELECT DOCUMENT.* FROM DOCUMENT INNER JOIN Requête3 ON DOCUMENT.Numéro = Requête3.Numéro WHERE DOCUMENT.Madate = [Requête3]![MaxDeMadate]; tu la nommes requête4. tu exécutes la requête4. il est bien évident qu'il faut que tu rajoutes les tables et les champs suplémentaires que tu dois rapatrier dans la requête4. -- @+ Raymond Access MVP http://access.seneque.free.fr/ http://access.vba.free.fr/ http://access2003.free.fr/ http://users.skynet.be/mpfa/ pour débuter sur le forum
"curt" a écrit dans le message de news:
Merci Raymond pour ta réponse.... ça fonctionne mais j'ai été incomplet dans ma première demande. La base possède d'autres champs (statut - date de statut - n° envoi client - date envoi client,etc...) En conclusion, je n'ai pas la seule ligne comportant le dernier indice de révision (toujours celui dont la date est max), pour CHAQUE document, mais l'intégralité des enregistrements... donc c'est pas bon... Pour être précis, il faut extraire de la table RSF Indices UNIQUEMENT les renseignements contenu sur la ligne où la date est max. En espérant que tu a la réponse..
Raymond [mvp]
Dans le requêteur access ( mode graphique) il est possible que tu ais besoin d'avoir éventuellement d'autres tables , il faut les rajouter. c'est possible que tous tes champs soient dans DOCUMENT, je ne sais pas. quoi qu'il en soit, si tu as les tables affichées , tu double-cliques sur les champs ou tu les fais glisser dans la fenêtre du bas.
-- @+ Raymond Access MVP http://access.seneque.free.fr/ http://access.vba.free.fr/ http://access2003.free.fr/ http://users.skynet.be/mpfa/ pour débuter sur le forum
"curt" a écrit dans le message de news:
Merci encore une fois - reste l'interrogation suivante : A quel endroit dans la requête dois-je ajouter les tables & champs supplémentaires ?
Dans le requêteur access ( mode graphique) il est possible que tu ais besoin
d'avoir éventuellement d'autres tables , il faut les rajouter. c'est
possible que tous tes champs soient dans DOCUMENT, je ne sais pas. quoi
qu'il en soit, si tu as les tables affichées , tu double-cliques sur les
champs ou tu les fais glisser dans la fenêtre du bas.
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum
"curt" <master.ck@wanadoo.fr> a écrit dans le message de news:
E422D916-DCE4-40F0-8CC2-48EA3477483F@microsoft.com...
Merci encore une fois - reste l'interrogation suivante : A quel endroit
dans
la requête dois-je ajouter les tables & champs supplémentaires ?
Dans le requêteur access ( mode graphique) il est possible que tu ais besoin d'avoir éventuellement d'autres tables , il faut les rajouter. c'est possible que tous tes champs soient dans DOCUMENT, je ne sais pas. quoi qu'il en soit, si tu as les tables affichées , tu double-cliques sur les champs ou tu les fais glisser dans la fenêtre du bas.
-- @+ Raymond Access MVP http://access.seneque.free.fr/ http://access.vba.free.fr/ http://access2003.free.fr/ http://users.skynet.be/mpfa/ pour débuter sur le forum
"curt" a écrit dans le message de news:
Merci encore une fois - reste l'interrogation suivante : A quel endroit dans la requête dois-je ajouter les tables & champs supplémentaires ?