-----Message d'origine-----
bonjour,
j'aimerai votre aide sur une requête sql. Elle a l'air
suis bloquée, je suis novice en sql, si quelqu'un
solution, ça serai gentil.
J'ai essayé plusieurs requêtes différentes mais aucune
escompté.
Voilà, je dois sélectionner seulement sur une table
Elle regroupe des données de matricule, service, date,
compteur2 que je veux afficher
-->Les données se présente de la façon suivante :
[matricule] [date] [service]
8562 12/03/04 1
8562 13/03/04 1
8562 14/03/04 1
8562 15/03/04 1
0328 11/03/04 2
0328 12/03/04 2
0328 13/03/04 2
0328 14/03/04 2
1200 11/03/04 1
1200 12/04/04 1
1200 13/04/04 1
Le matricule est une clé primaire, service une clé
Je voudrais sélectionner seulement les matricules, date,
et compteur2 les plus récents c'est à dire les lignes 4,
Comment procéder? j'ai essayé de faire un 'select
service, compteur 1, compteur 2 from compteur' mais ça
renvoie tous les enregistrements. Par contre un 'select
matricule,max(date), service from compteur' me renvoie
comme voulu mais lorsqu'on rajoute les compteurs rien ne
Comment faire un 'distinct' sur quelques champs? Merci
.
-----Message d'origine-----
bonjour,
j'aimerai votre aide sur une requête sql. Elle a l'air
suis bloquée, je suis novice en sql, si quelqu'un
solution, ça serai gentil.
J'ai essayé plusieurs requêtes différentes mais aucune
escompté.
Voilà, je dois sélectionner seulement sur une table
Elle regroupe des données de matricule, service, date,
compteur2 que je veux afficher
-->Les données se présente de la façon suivante :
[matricule] [date] [service]
8562 12/03/04 1
8562 13/03/04 1
8562 14/03/04 1
8562 15/03/04 1
0328 11/03/04 2
0328 12/03/04 2
0328 13/03/04 2
0328 14/03/04 2
1200 11/03/04 1
1200 12/04/04 1
1200 13/04/04 1
Le matricule est une clé primaire, service une clé
Je voudrais sélectionner seulement les matricules, date,
et compteur2 les plus récents c'est à dire les lignes 4,
Comment procéder? j'ai essayé de faire un 'select
service, compteur 1, compteur 2 from compteur' mais ça
renvoie tous les enregistrements. Par contre un 'select
matricule,max(date), service from compteur' me renvoie
comme voulu mais lorsqu'on rajoute les compteurs rien ne
Comment faire un 'distinct' sur quelques champs? Merci
.
-----Message d'origine-----
bonjour,
j'aimerai votre aide sur une requête sql. Elle a l'air
suis bloquée, je suis novice en sql, si quelqu'un
solution, ça serai gentil.
J'ai essayé plusieurs requêtes différentes mais aucune
escompté.
Voilà, je dois sélectionner seulement sur une table
Elle regroupe des données de matricule, service, date,
compteur2 que je veux afficher
-->Les données se présente de la façon suivante :
[matricule] [date] [service]
8562 12/03/04 1
8562 13/03/04 1
8562 14/03/04 1
8562 15/03/04 1
0328 11/03/04 2
0328 12/03/04 2
0328 13/03/04 2
0328 14/03/04 2
1200 11/03/04 1
1200 12/04/04 1
1200 13/04/04 1
Le matricule est une clé primaire, service une clé
Je voudrais sélectionner seulement les matricules, date,
et compteur2 les plus récents c'est à dire les lignes 4,
Comment procéder? j'ai essayé de faire un 'select
service, compteur 1, compteur 2 from compteur' mais ça
renvoie tous les enregistrements. Par contre un 'select
matricule,max(date), service from compteur' me renvoie
comme voulu mais lorsqu'on rajoute les compteurs rien ne
Comment faire un 'distinct' sur quelques champs? Merci
.
-----Message d'origine-----
bonjour,
j'aimerai votre aide sur une requête sql. Elle a l'air
suis bloquée, je suis novice en sql, si quelqu'un
solution, ça serai gentil.
J'ai essayé plusieurs requêtes différentes mais aucune
escompté.
Voilà, je dois sélectionner seulement sur une table
Elle regroupe des données de matricule, service, date,
compteur2 que je veux afficher
-->Les données se présente de la façon suivante :
[matricule] [date] [service]
8562 12/03/04 1
8562 13/03/04 1
8562 14/03/04 1
8562 15/03/04 1
0328 11/03/04 2
0328 12/03/04 2
0328 13/03/04 2
0328 14/03/04 2
1200 11/03/04 1
1200 12/04/04 1
1200 13/04/04 1
Le matricule est une clé primaire, service une clé
Je voudrais sélectionner seulement les matricules, date,
et compteur2 les plus récents c'est à dire les lignes 4,
Comment procéder? j'ai essayé de faire un 'select
service, compteur 1, compteur 2 from compteur' mais ça
renvoie tous les enregistrements. Par contre un 'select
matricule,max(date), service from compteur' me renvoie
comme voulu mais lorsqu'on rajoute les compteurs rien ne
Comment faire un 'distinct' sur quelques champs? Merci
.
-----Message d'origine-----
bonjour,
j'aimerai votre aide sur une requête sql. Elle a l'air
suis bloquée, je suis novice en sql, si quelqu'un
solution, ça serai gentil.
J'ai essayé plusieurs requêtes différentes mais aucune
escompté.
Voilà, je dois sélectionner seulement sur une table
Elle regroupe des données de matricule, service, date,
compteur2 que je veux afficher
-->Les données se présente de la façon suivante :
[matricule] [date] [service]
8562 12/03/04 1
8562 13/03/04 1
8562 14/03/04 1
8562 15/03/04 1
0328 11/03/04 2
0328 12/03/04 2
0328 13/03/04 2
0328 14/03/04 2
1200 11/03/04 1
1200 12/04/04 1
1200 13/04/04 1
Le matricule est une clé primaire, service une clé
Je voudrais sélectionner seulement les matricules, date,
et compteur2 les plus récents c'est à dire les lignes 4,
Comment procéder? j'ai essayé de faire un 'select
service, compteur 1, compteur 2 from compteur' mais ça
renvoie tous les enregistrements. Par contre un 'select
matricule,max(date), service from compteur' me renvoie
comme voulu mais lorsqu'on rajoute les compteurs rien ne
Comment faire un 'distinct' sur quelques champs? Merci
.
-----Message d'origine-----
bonjour,
j'aimerai votre aide sur une requête sql. Elle a l'air
suis bloquée, je suis novice en sql, si quelqu'un
solution, ça serai gentil.
J'ai essayé plusieurs requêtes différentes mais aucune
escompté.
Voilà, je dois sélectionner seulement sur une table
Elle regroupe des données de matricule, service, date,
compteur2 que je veux afficher
-->Les données se présente de la façon suivante :
[matricule] [date] [service]
8562 12/03/04 1
8562 13/03/04 1
8562 14/03/04 1
8562 15/03/04 1
0328 11/03/04 2
0328 12/03/04 2
0328 13/03/04 2
0328 14/03/04 2
1200 11/03/04 1
1200 12/04/04 1
1200 13/04/04 1
Le matricule est une clé primaire, service une clé
Je voudrais sélectionner seulement les matricules, date,
et compteur2 les plus récents c'est à dire les lignes 4,
Comment procéder? j'ai essayé de faire un 'select
service, compteur 1, compteur 2 from compteur' mais ça
renvoie tous les enregistrements. Par contre un 'select
matricule,max(date), service from compteur' me renvoie
comme voulu mais lorsqu'on rajoute les compteurs rien ne
Comment faire un 'distinct' sur quelques champs? Merci
.
-----Message d'origine-----
excusez moi, mais j'ai dû mal m'exprimer car la requête
est assez incompréhensible du fait que je ne selectionne
La table compteur contients les champs suivant :
compteur 1, compteur2, service.
"Tom" a écrit dans
news:1858f01c41b09$25947b40$
select [matricule],[date],[service],[compteur1],
[compteur2]
from COMPTEUR
where [date] =
(
select MAX([date])
from COMPTEUR COMPTEUR2
where COMPTEUR2.[matricule] = TaTable.
[matricule]
and COMPTEUR2.[service] = TaTable.
[service]
)-----Message d'origine-----
bonjour,
j'aimerai votre aide sur une requête sql. Elle a l'air
toute simple, mais jesuis bloquée, je suis novice en sql, si quelqu'un
pouvais m'apporter lasolution, ça serai gentil.
J'ai essayé plusieurs requêtes différentes mais aucune
ne donne le résultatescompté.
Voilà, je dois sélectionner seulement sur une table
appelée COMPTEUR
Elle regroupe des données de matricule, service, date,
compteur 1 etcompteur2 que je veux afficher
-->Les données se présente de la façon suivante :
[matricule] [date] [service]
[compteur1] [compteur2]8562 12/03/04 1
5621 26638562 13/03/04 1
56263 64858562 14/03/04 1
56318 4668562 15/03/04 1
56335 5410328 11/03/04 2
5632 553390328 12/03/04 2
3315 38520328 13/03/04 2
555 47850328 14/03/04 2
4556 5566321200 11/03/04 1
53 65521200 12/04/04 1
45 55681200 13/04/04 1
53636 8584
Le matricule est une clé primaire, service une clé
étrangère.Je voudrais sélectionner seulement les matricules, date,
service, compteur 1et compteur2 les plus récents c'est à dire les lignes 4,
8 et 11.
Comment procéder? j'ai essayé de faire un 'select
distinct matricule, date,service, compteur 1, compteur 2 from compteur' mais ça
fonctionne pas, çarenvoie tous les enregistrements. Par contre un 'select
distinctmatricule,max(date), service from compteur' me renvoie
les dernières lignescomme voulu mais lorsqu'on rajoute les compteurs rien ne
va plus.
Comment faire un 'distinct' sur quelques champs? Merci
beaucoup.
.
.
-----Message d'origine-----
excusez moi, mais j'ai dû mal m'exprimer car la requête
est assez incompréhensible du fait que je ne selectionne
La table compteur contients les champs suivant :
compteur 1, compteur2, service.
"Tom" <anonymous@discussions.microsoft.com> a écrit dans
news:1858f01c41b09$25947b40$a401280a@phx.gbl...
select [matricule],[date],[service],[compteur1],
[compteur2]
from COMPTEUR
where [date] =
(
select MAX([date])
from COMPTEUR COMPTEUR2
where COMPTEUR2.[matricule] = TaTable.
[matricule]
and COMPTEUR2.[service] = TaTable.
[service]
)
-----Message d'origine-----
bonjour,
j'aimerai votre aide sur une requête sql. Elle a l'air
toute simple, mais je
suis bloquée, je suis novice en sql, si quelqu'un
pouvais m'apporter la
solution, ça serai gentil.
J'ai essayé plusieurs requêtes différentes mais aucune
ne donne le résultat
escompté.
Voilà, je dois sélectionner seulement sur une table
appelée COMPTEUR
Elle regroupe des données de matricule, service, date,
compteur 1 et
compteur2 que je veux afficher
-->Les données se présente de la façon suivante :
[matricule] [date] [service]
[compteur1] [compteur2]
8562 12/03/04 1
5621 2663
8562 13/03/04 1
56263 6485
8562 14/03/04 1
56318 466
8562 15/03/04 1
56335 541
0328 11/03/04 2
5632 55339
0328 12/03/04 2
3315 3852
0328 13/03/04 2
555 4785
0328 14/03/04 2
4556 556632
1200 11/03/04 1
53 6552
1200 12/04/04 1
45 5568
1200 13/04/04 1
53636 8584
Le matricule est une clé primaire, service une clé
étrangère.
Je voudrais sélectionner seulement les matricules, date,
service, compteur 1
et compteur2 les plus récents c'est à dire les lignes 4,
8 et 11.
Comment procéder? j'ai essayé de faire un 'select
distinct matricule, date,
service, compteur 1, compteur 2 from compteur' mais ça
fonctionne pas, ça
renvoie tous les enregistrements. Par contre un 'select
distinct
matricule,max(date), service from compteur' me renvoie
les dernières lignes
comme voulu mais lorsqu'on rajoute les compteurs rien ne
va plus.
Comment faire un 'distinct' sur quelques champs? Merci
beaucoup.
.
.
-----Message d'origine-----
excusez moi, mais j'ai dû mal m'exprimer car la requête
est assez incompréhensible du fait que je ne selectionne
La table compteur contients les champs suivant :
compteur 1, compteur2, service.
"Tom" a écrit dans
news:1858f01c41b09$25947b40$
select [matricule],[date],[service],[compteur1],
[compteur2]
from COMPTEUR
where [date] =
(
select MAX([date])
from COMPTEUR COMPTEUR2
where COMPTEUR2.[matricule] = TaTable.
[matricule]
and COMPTEUR2.[service] = TaTable.
[service]
)-----Message d'origine-----
bonjour,
j'aimerai votre aide sur une requête sql. Elle a l'air
toute simple, mais jesuis bloquée, je suis novice en sql, si quelqu'un
pouvais m'apporter lasolution, ça serai gentil.
J'ai essayé plusieurs requêtes différentes mais aucune
ne donne le résultatescompté.
Voilà, je dois sélectionner seulement sur une table
appelée COMPTEUR
Elle regroupe des données de matricule, service, date,
compteur 1 etcompteur2 que je veux afficher
-->Les données se présente de la façon suivante :
[matricule] [date] [service]
[compteur1] [compteur2]8562 12/03/04 1
5621 26638562 13/03/04 1
56263 64858562 14/03/04 1
56318 4668562 15/03/04 1
56335 5410328 11/03/04 2
5632 553390328 12/03/04 2
3315 38520328 13/03/04 2
555 47850328 14/03/04 2
4556 5566321200 11/03/04 1
53 65521200 12/04/04 1
45 55681200 13/04/04 1
53636 8584
Le matricule est une clé primaire, service une clé
étrangère.Je voudrais sélectionner seulement les matricules, date,
service, compteur 1et compteur2 les plus récents c'est à dire les lignes 4,
8 et 11.
Comment procéder? j'ai essayé de faire un 'select
distinct matricule, date,service, compteur 1, compteur 2 from compteur' mais ça
fonctionne pas, çarenvoie tous les enregistrements. Par contre un 'select
distinctmatricule,max(date), service from compteur' me renvoie
les dernières lignescomme voulu mais lorsqu'on rajoute les compteurs rien ne
va plus.
Comment faire un 'distinct' sur quelques champs? Merci
beaucoup.
.
.
-----Message d'origine-----
excusez moi, mais j'ai dû mal m'exprimer car la requête
est assez incompréhensible du fait que je ne selectionne
La table compteur contients les champs suivant :
compteur 1, compteur2, service.
"Tom" a écrit dans
news:1858f01c41b09$25947b40$
select [matricule],[date],[service],[compteur1],
[compteur2]
from COMPTEUR
where [date] >(
select MAX([date])
from COMPTEUR COMPTEUR2
where COMPTEUR2.[matricule] = TaTable.
[matricule]
and COMPTEUR2.[service] = TaTable.
[service]
)-----Message d'origine-----
bonjour,
j'aimerai votre aide sur une requête sql. Elle a l'air
toute simple, mais jesuis bloquée, je suis novice en sql, si quelqu'un
pouvais m'apporter lasolution, ça serai gentil.
J'ai essayé plusieurs requêtes différentes mais aucune
ne donne le résultatescompté.
Voilà, je dois sélectionner seulement sur une table
appelée COMPTEUR
Elle regroupe des données de matricule, service, date,
compteur 1 etcompteur2 que je veux afficher
-->Les données se présente de la façon suivante :
[matricule] [date] [service]
[compteur1] [compteur2]8562 12/03/04 1
5621 26638562 13/03/04 1
56263 64858562 14/03/04 1
56318 4668562 15/03/04 1
56335 5410328 11/03/04 2
5632 553390328 12/03/04 2
3315 38520328 13/03/04 2
555 47850328 14/03/04 2
4556 5566321200 11/03/04 1
53 65521200 12/04/04 1
45 55681200 13/04/04 1
53636 8584
Le matricule est une clé primaire, service une clé
étrangère.Je voudrais sélectionner seulement les matricules, date,
service, compteur 1et compteur2 les plus récents c'est à dire les lignes 4,
8 et 11.
Comment procéder? j'ai essayé de faire un 'select
distinct matricule, date,service, compteur 1, compteur 2 from compteur' mais ça
fonctionne pas, çarenvoie tous les enregistrements. Par contre un 'select
distinctmatricule,max(date), service from compteur' me renvoie
les dernières lignescomme voulu mais lorsqu'on rajoute les compteurs rien ne
va plus.
Comment faire un 'distinct' sur quelques champs? Merci
beaucoup.
.
.
-----Message d'origine-----
excusez moi, mais j'ai dû mal m'exprimer car la requête
est assez incompréhensible du fait que je ne selectionne
La table compteur contients les champs suivant :
compteur 1, compteur2, service.
"Tom" <anonymous@discussions.microsoft.com> a écrit dans
news:1858f01c41b09$25947b40$a401280a@phx.gbl...
select [matricule],[date],[service],[compteur1],
[compteur2]
from COMPTEUR
where [date] >(
select MAX([date])
from COMPTEUR COMPTEUR2
where COMPTEUR2.[matricule] = TaTable.
[matricule]
and COMPTEUR2.[service] = TaTable.
[service]
)
-----Message d'origine-----
bonjour,
j'aimerai votre aide sur une requête sql. Elle a l'air
toute simple, mais je
suis bloquée, je suis novice en sql, si quelqu'un
pouvais m'apporter la
solution, ça serai gentil.
J'ai essayé plusieurs requêtes différentes mais aucune
ne donne le résultat
escompté.
Voilà, je dois sélectionner seulement sur une table
appelée COMPTEUR
Elle regroupe des données de matricule, service, date,
compteur 1 et
compteur2 que je veux afficher
-->Les données se présente de la façon suivante :
[matricule] [date] [service]
[compteur1] [compteur2]
8562 12/03/04 1
5621 2663
8562 13/03/04 1
56263 6485
8562 14/03/04 1
56318 466
8562 15/03/04 1
56335 541
0328 11/03/04 2
5632 55339
0328 12/03/04 2
3315 3852
0328 13/03/04 2
555 4785
0328 14/03/04 2
4556 556632
1200 11/03/04 1
53 6552
1200 12/04/04 1
45 5568
1200 13/04/04 1
53636 8584
Le matricule est une clé primaire, service une clé
étrangère.
Je voudrais sélectionner seulement les matricules, date,
service, compteur 1
et compteur2 les plus récents c'est à dire les lignes 4,
8 et 11.
Comment procéder? j'ai essayé de faire un 'select
distinct matricule, date,
service, compteur 1, compteur 2 from compteur' mais ça
fonctionne pas, ça
renvoie tous les enregistrements. Par contre un 'select
distinct
matricule,max(date), service from compteur' me renvoie
les dernières lignes
comme voulu mais lorsqu'on rajoute les compteurs rien ne
va plus.
Comment faire un 'distinct' sur quelques champs? Merci
beaucoup.
.
.
-----Message d'origine-----
excusez moi, mais j'ai dû mal m'exprimer car la requête
est assez incompréhensible du fait que je ne selectionne
La table compteur contients les champs suivant :
compteur 1, compteur2, service.
"Tom" a écrit dans
news:1858f01c41b09$25947b40$
select [matricule],[date],[service],[compteur1],
[compteur2]
from COMPTEUR
where [date] >(
select MAX([date])
from COMPTEUR COMPTEUR2
where COMPTEUR2.[matricule] = TaTable.
[matricule]
and COMPTEUR2.[service] = TaTable.
[service]
)-----Message d'origine-----
bonjour,
j'aimerai votre aide sur une requête sql. Elle a l'air
toute simple, mais jesuis bloquée, je suis novice en sql, si quelqu'un
pouvais m'apporter lasolution, ça serai gentil.
J'ai essayé plusieurs requêtes différentes mais aucune
ne donne le résultatescompté.
Voilà, je dois sélectionner seulement sur une table
appelée COMPTEUR
Elle regroupe des données de matricule, service, date,
compteur 1 etcompteur2 que je veux afficher
-->Les données se présente de la façon suivante :
[matricule] [date] [service]
[compteur1] [compteur2]8562 12/03/04 1
5621 26638562 13/03/04 1
56263 64858562 14/03/04 1
56318 4668562 15/03/04 1
56335 5410328 11/03/04 2
5632 553390328 12/03/04 2
3315 38520328 13/03/04 2
555 47850328 14/03/04 2
4556 5566321200 11/03/04 1
53 65521200 12/04/04 1
45 55681200 13/04/04 1
53636 8584
Le matricule est une clé primaire, service une clé
étrangère.Je voudrais sélectionner seulement les matricules, date,
service, compteur 1et compteur2 les plus récents c'est à dire les lignes 4,
8 et 11.
Comment procéder? j'ai essayé de faire un 'select
distinct matricule, date,service, compteur 1, compteur 2 from compteur' mais ça
fonctionne pas, çarenvoie tous les enregistrements. Par contre un 'select
distinctmatricule,max(date), service from compteur' me renvoie
les dernières lignescomme voulu mais lorsqu'on rajoute les compteurs rien ne
va plus.
Comment faire un 'distinct' sur quelques champs? Merci
beaucoup.
.
.
Salut,
Une autre façon qui a le seul avantage d'être entièrement
représentable dans l'éditeur graphique:
SELECT a.matricule, a.date, a.compteur1, a.compteur2
FROM compteur As a INNER JOIN compteur As b
ON a.matricule = b.matricule
GROUP BY a.matricule, a.date, a.compteur1, a.compteur2
HAVING a.date=MAX(b.date)
Espérant être utile,
Vanderghast, Access MVP
Pour info, pour ceux qui "pestent" contre l'aggrégat LAST de Jet: ce
dernier permet d'accélérer le processus, non pas parce qu'il réfère à
l'enregistrement le plus récent, ce n'est pas du tout sa signification,
signifie "du dernier enregistrement, acceptable par le groupe, tel que vu
par l'actuel plan d'exécution", mais bien parce qu'il signifie, par
corroloraire à sa définition, "qui provient du même enregistrement":
SELECT a.matricule, a.date, LAST(a.compteur1), LAST(a.compteur2)
FROM compteur As a INNER JOIN compteur As b
ON a.matricule = b.matricule
GROUP BY a.matricule, a.date
HAVING a.date=MAX(b.date)
ce qui nous laisse avec un GROUP BY plus restreint. Évidemment, si on fait
une hypothèse qu'il n'y a pas de doublons (matricule, date), alors on
remplacer, dans ce cas, LAST par MIN, MAX, ou SUM... ils opèrent sur un
même enregistrement, le seul du groupe, dans ce cas, et conservent un
BY réduit:
SELECT a.matricule, a.date, SUM(a.compteur1), SUM(a.compteur2)
FROM compteur As a INNER JOIN compteur As b
ON a.matricule = b.matricule
GROUP BY a.matricule, a.date
HAVING a.date=MAX(b.date)
Voilà. Tout cela pour prendre la défense de LAST... le mal aimé :-)
"Tom" wrote in message
news:1436601c41bad$11e1cf40$
J'avais laissé le nom d'une table de test ...
Et comme ça ?
select [matricule],[date],[service],[compteur1],
[compteur2]
from COMPTEUR
where [date] > (
select MAX([date])
from COMPTEUR COMPTEUR2
where COMPTEUR2.[matricule] = COMPTEUR.[matricule]
and COMPTEUR2.[service] = COMPTEUR.[service]
)
>-----Message d'origine-----
>excusez moi, mais j'ai dû mal m'exprimer car la requête
que Tom me propose
>est assez incompréhensible du fait que je ne selectionne
que sur une table
>
>La table compteur contients les champs suivant :
matricule, date, service,
>compteur 1, compteur2, service.
>
>
>"Tom" a écrit dans
le message de
>news:1858f01c41b09$25947b40$
>select [matricule],[date],[service],[compteur1],
>[compteur2]
>from COMPTEUR
>where [date] > >(
>select MAX([date])
>from COMPTEUR COMPTEUR2
>where COMPTEUR2.[matricule] = TaTable.
>[matricule]
>and COMPTEUR2.[service] = TaTable.
>[service]
>)
>
>>-----Message d'origine-----
>>bonjour,
>>
>>j'aimerai votre aide sur une requête sql. Elle a l'air
>toute simple, mais je
>>suis bloquée, je suis novice en sql, si quelqu'un
>pouvais m'apporter la
>>solution, ça serai gentil.
>>J'ai essayé plusieurs requêtes différentes mais aucune
>ne donne le résultat
>>escompté.
>>
>>Voilà, je dois sélectionner seulement sur une table
>appelée COMPTEUR
>>
>>Elle regroupe des données de matricule, service, date,
>compteur 1 et
>>compteur2 que je veux afficher
>>
>>-->Les données se présente de la façon suivante :
>>
>>[matricule] [date] [service]
>[compteur1] [compteur2]
>>8562 12/03/04 1
>5621 2663
>>8562 13/03/04 1
>56263 6485
>>8562 14/03/04 1
>56318 466
>>8562 15/03/04 1
>56335 541
>>0328 11/03/04 2
>5632 55339
>>0328 12/03/04 2
>3315 3852
>>0328 13/03/04 2
>555 4785
>>0328 14/03/04 2
>4556 556632
>>1200 11/03/04 1
>53 6552
>>1200 12/04/04 1
>45 5568
>>1200 13/04/04 1
>53636 8584
>>
>>Le matricule est une clé primaire, service une clé
>étrangère.
>>Je voudrais sélectionner seulement les matricules, date,
>service, compteur 1
>>et compteur2 les plus récents c'est à dire les lignes 4,
>8 et 11.
>>
>>Comment procéder? j'ai essayé de faire un 'select
>distinct matricule, date,
>>service, compteur 1, compteur 2 from compteur' mais ça
>fonctionne pas, ça
>>renvoie tous les enregistrements. Par contre un 'select
>distinct
>>matricule,max(date), service from compteur' me renvoie
>les dernières lignes
>>comme voulu mais lorsqu'on rajoute les compteurs rien ne
>va plus.
>>
>>Comment faire un 'distinct' sur quelques champs? Merci
>beaucoup.
>>
>>
>>.
>>
>
>
>.
>
Salut,
Une autre façon qui a le seul avantage d'être entièrement
représentable dans l'éditeur graphique:
SELECT a.matricule, a.date, a.compteur1, a.compteur2
FROM compteur As a INNER JOIN compteur As b
ON a.matricule = b.matricule
GROUP BY a.matricule, a.date, a.compteur1, a.compteur2
HAVING a.date=MAX(b.date)
Espérant être utile,
Vanderghast, Access MVP
Pour info, pour ceux qui "pestent" contre l'aggrégat LAST de Jet: ce
dernier permet d'accélérer le processus, non pas parce qu'il réfère à
l'enregistrement le plus récent, ce n'est pas du tout sa signification,
signifie "du dernier enregistrement, acceptable par le groupe, tel que vu
par l'actuel plan d'exécution", mais bien parce qu'il signifie, par
corroloraire à sa définition, "qui provient du même enregistrement":
SELECT a.matricule, a.date, LAST(a.compteur1), LAST(a.compteur2)
FROM compteur As a INNER JOIN compteur As b
ON a.matricule = b.matricule
GROUP BY a.matricule, a.date
HAVING a.date=MAX(b.date)
ce qui nous laisse avec un GROUP BY plus restreint. Évidemment, si on fait
une hypothèse qu'il n'y a pas de doublons (matricule, date), alors on
remplacer, dans ce cas, LAST par MIN, MAX, ou SUM... ils opèrent sur un
même enregistrement, le seul du groupe, dans ce cas, et conservent un
BY réduit:
SELECT a.matricule, a.date, SUM(a.compteur1), SUM(a.compteur2)
FROM compteur As a INNER JOIN compteur As b
ON a.matricule = b.matricule
GROUP BY a.matricule, a.date
HAVING a.date=MAX(b.date)
Voilà. Tout cela pour prendre la défense de LAST... le mal aimé :-)
"Tom" <anonymous@discussions.microsoft.com> wrote in message
news:1436601c41bad$11e1cf40$a001280a@phx.gbl...
J'avais laissé le nom d'une table de test ...
Et comme ça ?
select [matricule],[date],[service],[compteur1],
[compteur2]
from COMPTEUR
where [date] > (
select MAX([date])
from COMPTEUR COMPTEUR2
where COMPTEUR2.[matricule] = COMPTEUR.[matricule]
and COMPTEUR2.[service] = COMPTEUR.[service]
)
>-----Message d'origine-----
>excusez moi, mais j'ai dû mal m'exprimer car la requête
que Tom me propose
>est assez incompréhensible du fait que je ne selectionne
que sur une table
>
>La table compteur contients les champs suivant :
matricule, date, service,
>compteur 1, compteur2, service.
>
>
>"Tom" <anonymous@discussions.microsoft.com> a écrit dans
le message de
>news:1858f01c41b09$25947b40$a401280a@phx.gbl...
>select [matricule],[date],[service],[compteur1],
>[compteur2]
>from COMPTEUR
>where [date] > >(
>select MAX([date])
>from COMPTEUR COMPTEUR2
>where COMPTEUR2.[matricule] = TaTable.
>[matricule]
>and COMPTEUR2.[service] = TaTable.
>[service]
>)
>
>>-----Message d'origine-----
>>bonjour,
>>
>>j'aimerai votre aide sur une requête sql. Elle a l'air
>toute simple, mais je
>>suis bloquée, je suis novice en sql, si quelqu'un
>pouvais m'apporter la
>>solution, ça serai gentil.
>>J'ai essayé plusieurs requêtes différentes mais aucune
>ne donne le résultat
>>escompté.
>>
>>Voilà, je dois sélectionner seulement sur une table
>appelée COMPTEUR
>>
>>Elle regroupe des données de matricule, service, date,
>compteur 1 et
>>compteur2 que je veux afficher
>>
>>-->Les données se présente de la façon suivante :
>>
>>[matricule] [date] [service]
>[compteur1] [compteur2]
>>8562 12/03/04 1
>5621 2663
>>8562 13/03/04 1
>56263 6485
>>8562 14/03/04 1
>56318 466
>>8562 15/03/04 1
>56335 541
>>0328 11/03/04 2
>5632 55339
>>0328 12/03/04 2
>3315 3852
>>0328 13/03/04 2
>555 4785
>>0328 14/03/04 2
>4556 556632
>>1200 11/03/04 1
>53 6552
>>1200 12/04/04 1
>45 5568
>>1200 13/04/04 1
>53636 8584
>>
>>Le matricule est une clé primaire, service une clé
>étrangère.
>>Je voudrais sélectionner seulement les matricules, date,
>service, compteur 1
>>et compteur2 les plus récents c'est à dire les lignes 4,
>8 et 11.
>>
>>Comment procéder? j'ai essayé de faire un 'select
>distinct matricule, date,
>>service, compteur 1, compteur 2 from compteur' mais ça
>fonctionne pas, ça
>>renvoie tous les enregistrements. Par contre un 'select
>distinct
>>matricule,max(date), service from compteur' me renvoie
>les dernières lignes
>>comme voulu mais lorsqu'on rajoute les compteurs rien ne
>va plus.
>>
>>Comment faire un 'distinct' sur quelques champs? Merci
>beaucoup.
>>
>>
>>.
>>
>
>
>.
>
Salut,
Une autre façon qui a le seul avantage d'être entièrement
représentable dans l'éditeur graphique:
SELECT a.matricule, a.date, a.compteur1, a.compteur2
FROM compteur As a INNER JOIN compteur As b
ON a.matricule = b.matricule
GROUP BY a.matricule, a.date, a.compteur1, a.compteur2
HAVING a.date=MAX(b.date)
Espérant être utile,
Vanderghast, Access MVP
Pour info, pour ceux qui "pestent" contre l'aggrégat LAST de Jet: ce
dernier permet d'accélérer le processus, non pas parce qu'il réfère à
l'enregistrement le plus récent, ce n'est pas du tout sa signification,
signifie "du dernier enregistrement, acceptable par le groupe, tel que vu
par l'actuel plan d'exécution", mais bien parce qu'il signifie, par
corroloraire à sa définition, "qui provient du même enregistrement":
SELECT a.matricule, a.date, LAST(a.compteur1), LAST(a.compteur2)
FROM compteur As a INNER JOIN compteur As b
ON a.matricule = b.matricule
GROUP BY a.matricule, a.date
HAVING a.date=MAX(b.date)
ce qui nous laisse avec un GROUP BY plus restreint. Évidemment, si on fait
une hypothèse qu'il n'y a pas de doublons (matricule, date), alors on
remplacer, dans ce cas, LAST par MIN, MAX, ou SUM... ils opèrent sur un
même enregistrement, le seul du groupe, dans ce cas, et conservent un
BY réduit:
SELECT a.matricule, a.date, SUM(a.compteur1), SUM(a.compteur2)
FROM compteur As a INNER JOIN compteur As b
ON a.matricule = b.matricule
GROUP BY a.matricule, a.date
HAVING a.date=MAX(b.date)
Voilà. Tout cela pour prendre la défense de LAST... le mal aimé :-)
"Tom" wrote in message
news:1436601c41bad$11e1cf40$
J'avais laissé le nom d'une table de test ...
Et comme ça ?
select [matricule],[date],[service],[compteur1],
[compteur2]
from COMPTEUR
where [date] > (
select MAX([date])
from COMPTEUR COMPTEUR2
where COMPTEUR2.[matricule] = COMPTEUR.[matricule]
and COMPTEUR2.[service] = COMPTEUR.[service]
)
>-----Message d'origine-----
>excusez moi, mais j'ai dû mal m'exprimer car la requête
que Tom me propose
>est assez incompréhensible du fait que je ne selectionne
que sur une table
>
>La table compteur contients les champs suivant :
matricule, date, service,
>compteur 1, compteur2, service.
>
>
>"Tom" a écrit dans
le message de
>news:1858f01c41b09$25947b40$
>select [matricule],[date],[service],[compteur1],
>[compteur2]
>from COMPTEUR
>where [date] > >(
>select MAX([date])
>from COMPTEUR COMPTEUR2
>where COMPTEUR2.[matricule] = TaTable.
>[matricule]
>and COMPTEUR2.[service] = TaTable.
>[service]
>)
>
>>-----Message d'origine-----
>>bonjour,
>>
>>j'aimerai votre aide sur une requête sql. Elle a l'air
>toute simple, mais je
>>suis bloquée, je suis novice en sql, si quelqu'un
>pouvais m'apporter la
>>solution, ça serai gentil.
>>J'ai essayé plusieurs requêtes différentes mais aucune
>ne donne le résultat
>>escompté.
>>
>>Voilà, je dois sélectionner seulement sur une table
>appelée COMPTEUR
>>
>>Elle regroupe des données de matricule, service, date,
>compteur 1 et
>>compteur2 que je veux afficher
>>
>>-->Les données se présente de la façon suivante :
>>
>>[matricule] [date] [service]
>[compteur1] [compteur2]
>>8562 12/03/04 1
>5621 2663
>>8562 13/03/04 1
>56263 6485
>>8562 14/03/04 1
>56318 466
>>8562 15/03/04 1
>56335 541
>>0328 11/03/04 2
>5632 55339
>>0328 12/03/04 2
>3315 3852
>>0328 13/03/04 2
>555 4785
>>0328 14/03/04 2
>4556 556632
>>1200 11/03/04 1
>53 6552
>>1200 12/04/04 1
>45 5568
>>1200 13/04/04 1
>53636 8584
>>
>>Le matricule est une clé primaire, service une clé
>étrangère.
>>Je voudrais sélectionner seulement les matricules, date,
>service, compteur 1
>>et compteur2 les plus récents c'est à dire les lignes 4,
>8 et 11.
>>
>>Comment procéder? j'ai essayé de faire un 'select
>distinct matricule, date,
>>service, compteur 1, compteur 2 from compteur' mais ça
>fonctionne pas, ça
>>renvoie tous les enregistrements. Par contre un 'select
>distinct
>>matricule,max(date), service from compteur' me renvoie
>les dernières lignes
>>comme voulu mais lorsqu'on rajoute les compteurs rien ne
>va plus.
>>
>>Comment faire un 'distinct' sur quelques champs? Merci
>beaucoup.
>>
>>
>>.
>>
>
>
>.
>