Bonjour à tous.
Je dois écrire une requête une peu particulière et je ne trouve pas de
solution.
Puis-je avoir votre aide ?
J'ai une table qui contient les poids de personnes mesurés de manière
répétée: j'y stocke, pour chaque mesure du poids, le nom de la personne,
le poids et la date de cette mesure du poids. Pour certaines personnes,
j'ai une ou des mesures du poids à des moments précis.
Je dois écrire une requête SQL qui me donne la liste des dernières mesures
de poids pour chaque personne.
Suis-je clair ?
Voici un exemple:
Sophie, 60 Kg le 10/6/2008
Elène, 50 Kg le 8/5/2008
Sophie, 62 Kg le 12/6/2008
Sophie 59 Kg le 1/6/2008
Résultat souhaité (pour chaque personne la dernière mesure du poids):
Sophie, 62 Kg le 12/6/2008
Elène, 50 Kg le 8/5/2008
Quelqu'un a-t-il une idée ?
Merci d'avance,
Alain.
Bonjour à tous.
Je dois écrire une requête une peu particulière et je ne trouve pas de
solution.
Puis-je avoir votre aide ?
J'ai une table qui contient les poids de personnes mesurés de manière
répétée: j'y stocke, pour chaque mesure du poids, le nom de la personne,
le poids et la date de cette mesure du poids. Pour certaines personnes,
j'ai une ou des mesures du poids à des moments précis.
Je dois écrire une requête SQL qui me donne la liste des dernières mesures
de poids pour chaque personne.
Suis-je clair ?
Voici un exemple:
Sophie, 60 Kg le 10/6/2008
Elène, 50 Kg le 8/5/2008
Sophie, 62 Kg le 12/6/2008
Sophie 59 Kg le 1/6/2008
Résultat souhaité (pour chaque personne la dernière mesure du poids):
Sophie, 62 Kg le 12/6/2008
Elène, 50 Kg le 8/5/2008
Quelqu'un a-t-il une idée ?
Merci d'avance,
Alain.
Bonjour à tous.
Je dois écrire une requête une peu particulière et je ne trouve pas de
solution.
Puis-je avoir votre aide ?
J'ai une table qui contient les poids de personnes mesurés de manière
répétée: j'y stocke, pour chaque mesure du poids, le nom de la personne,
le poids et la date de cette mesure du poids. Pour certaines personnes,
j'ai une ou des mesures du poids à des moments précis.
Je dois écrire une requête SQL qui me donne la liste des dernières mesures
de poids pour chaque personne.
Suis-je clair ?
Voici un exemple:
Sophie, 60 Kg le 10/6/2008
Elène, 50 Kg le 8/5/2008
Sophie, 62 Kg le 12/6/2008
Sophie 59 Kg le 1/6/2008
Résultat souhaité (pour chaque personne la dernière mesure du poids):
Sophie, 62 Kg le 12/6/2008
Elène, 50 Kg le 8/5/2008
Quelqu'un a-t-il une idée ?
Merci d'avance,
Alain.
Bonjour Alain,
En partant du principe qu'il n'y a qu'une seule pesé par personne par jour
je vous propose la requête suivante :
select idPerson,
poids,
dtMesure
from histoPoids T1,
(select idPerson, MAX(dtMesure) as maxDtMesure
from histoPoids
group by idPerson) T2
where T1.idPerson = T2.idPerson
Cordialement,
Philippe
"Alain" wrote in message
news:Bonjour à tous.
Je dois écrire une requête une peu particulière et je ne trouve pas de
solution.
Puis-je avoir votre aide ?
J'ai une table qui contient les poids de personnes mesurés de manière
répétée: j'y stocke, pour chaque mesure du poids, le nom de la personne,
le poids et la date de cette mesure du poids. Pour certaines personnes,
j'ai une ou des mesures du poids à des moments précis.
Je dois écrire une requête SQL qui me donne la liste des dernières
mesures de poids pour chaque personne.
Suis-je clair ?
Voici un exemple:
Sophie, 60 Kg le 10/6/2008
Elène, 50 Kg le 8/5/2008
Sophie, 62 Kg le 12/6/2008
Sophie 59 Kg le 1/6/2008
Résultat souhaité (pour chaque personne la dernière mesure du poids):
Sophie, 62 Kg le 12/6/2008
Elène, 50 Kg le 8/5/2008
Quelqu'un a-t-il une idée ?
Merci d'avance,
Alain.
Bonjour Alain,
En partant du principe qu'il n'y a qu'une seule pesé par personne par jour
je vous propose la requête suivante :
select idPerson,
poids,
dtMesure
from histoPoids T1,
(select idPerson, MAX(dtMesure) as maxDtMesure
from histoPoids
group by idPerson) T2
where T1.idPerson = T2.idPerson
Cordialement,
Philippe
"Alain" <aca1024@hotmail.com> wrote in message
news:etieaCq0IHA.2068@TK2MSFTNGP05.phx.gbl...
Bonjour à tous.
Je dois écrire une requête une peu particulière et je ne trouve pas de
solution.
Puis-je avoir votre aide ?
J'ai une table qui contient les poids de personnes mesurés de manière
répétée: j'y stocke, pour chaque mesure du poids, le nom de la personne,
le poids et la date de cette mesure du poids. Pour certaines personnes,
j'ai une ou des mesures du poids à des moments précis.
Je dois écrire une requête SQL qui me donne la liste des dernières
mesures de poids pour chaque personne.
Suis-je clair ?
Voici un exemple:
Sophie, 60 Kg le 10/6/2008
Elène, 50 Kg le 8/5/2008
Sophie, 62 Kg le 12/6/2008
Sophie 59 Kg le 1/6/2008
Résultat souhaité (pour chaque personne la dernière mesure du poids):
Sophie, 62 Kg le 12/6/2008
Elène, 50 Kg le 8/5/2008
Quelqu'un a-t-il une idée ?
Merci d'avance,
Alain.
Bonjour Alain,
En partant du principe qu'il n'y a qu'une seule pesé par personne par jour
je vous propose la requête suivante :
select idPerson,
poids,
dtMesure
from histoPoids T1,
(select idPerson, MAX(dtMesure) as maxDtMesure
from histoPoids
group by idPerson) T2
where T1.idPerson = T2.idPerson
Cordialement,
Philippe
"Alain" wrote in message
news:Bonjour à tous.
Je dois écrire une requête une peu particulière et je ne trouve pas de
solution.
Puis-je avoir votre aide ?
J'ai une table qui contient les poids de personnes mesurés de manière
répétée: j'y stocke, pour chaque mesure du poids, le nom de la personne,
le poids et la date de cette mesure du poids. Pour certaines personnes,
j'ai une ou des mesures du poids à des moments précis.
Je dois écrire une requête SQL qui me donne la liste des dernières
mesures de poids pour chaque personne.
Suis-je clair ?
Voici un exemple:
Sophie, 60 Kg le 10/6/2008
Elène, 50 Kg le 8/5/2008
Sophie, 62 Kg le 12/6/2008
Sophie 59 Kg le 1/6/2008
Résultat souhaité (pour chaque personne la dernière mesure du poids):
Sophie, 62 Kg le 12/6/2008
Elène, 50 Kg le 8/5/2008
Quelqu'un a-t-il une idée ?
Merci d'avance,
Alain.
Bonjour,
Ne manquerait il pas la condition dtMesure=maxDtMesure car sinon, je ne
vois pas l'utilité du sous -select.
Par contre, il serait bien de préciser dans le select principal
T1.idPerson, faute de quoi il y aura ambiguité sur le champ (etant présent
également dans T2)
--
_________________________________________
Now, you know the truth, Space Invaders are Back
http://www.joachimgarraud.com
L'invasion ne fait QUE commencer...
"Philippe Bouchardy" a écrit dans le message de
news:Bonjour Alain,
En partant du principe qu'il n'y a qu'une seule pesé par personne par
jour je vous propose la requête suivante :
select idPerson,
poids,
dtMesure
from histoPoids T1,
(select idPerson, MAX(dtMesure) as maxDtMesure
from histoPoids
group by idPerson) T2
where T1.idPerson = T2.idPerson
Cordialement,
Philippe
"Alain" wrote in message
news:Bonjour à tous.
Je dois écrire une requête une peu particulière et je ne trouve pas de
solution.
Puis-je avoir votre aide ?
J'ai une table qui contient les poids de personnes mesurés de manière
répétée: j'y stocke, pour chaque mesure du poids, le nom de la personne,
le poids et la date de cette mesure du poids. Pour certaines personnes,
j'ai une ou des mesures du poids à des moments précis.
Je dois écrire une requête SQL qui me donne la liste des dernières
mesures de poids pour chaque personne.
Suis-je clair ?
Voici un exemple:
Sophie, 60 Kg le 10/6/2008
Elène, 50 Kg le 8/5/2008
Sophie, 62 Kg le 12/6/2008
Sophie 59 Kg le 1/6/2008
Résultat souhaité (pour chaque personne la dernière mesure du poids):
Sophie, 62 Kg le 12/6/2008
Elène, 50 Kg le 8/5/2008
Quelqu'un a-t-il une idée ?
Merci d'avance,
Alain.
Bonjour,
Ne manquerait il pas la condition dtMesure=maxDtMesure car sinon, je ne
vois pas l'utilité du sous -select.
Par contre, il serait bien de préciser dans le select principal
T1.idPerson, faute de quoi il y aura ambiguité sur le champ (etant présent
également dans T2)
--
_________________________________________
Now, you know the truth, Space Invaders are Back
http://www.joachimgarraud.com
L'invasion ne fait QUE commencer...
"Philippe Bouchardy" <phbo1404@hotmail.co.uk> a écrit dans le message de
news: udbTEkq0IHA.4572@TK2MSFTNGP03.phx.gbl...
Bonjour Alain,
En partant du principe qu'il n'y a qu'une seule pesé par personne par
jour je vous propose la requête suivante :
select idPerson,
poids,
dtMesure
from histoPoids T1,
(select idPerson, MAX(dtMesure) as maxDtMesure
from histoPoids
group by idPerson) T2
where T1.idPerson = T2.idPerson
Cordialement,
Philippe
"Alain" <aca1024@hotmail.com> wrote in message
news:etieaCq0IHA.2068@TK2MSFTNGP05.phx.gbl...
Bonjour à tous.
Je dois écrire une requête une peu particulière et je ne trouve pas de
solution.
Puis-je avoir votre aide ?
J'ai une table qui contient les poids de personnes mesurés de manière
répétée: j'y stocke, pour chaque mesure du poids, le nom de la personne,
le poids et la date de cette mesure du poids. Pour certaines personnes,
j'ai une ou des mesures du poids à des moments précis.
Je dois écrire une requête SQL qui me donne la liste des dernières
mesures de poids pour chaque personne.
Suis-je clair ?
Voici un exemple:
Sophie, 60 Kg le 10/6/2008
Elène, 50 Kg le 8/5/2008
Sophie, 62 Kg le 12/6/2008
Sophie 59 Kg le 1/6/2008
Résultat souhaité (pour chaque personne la dernière mesure du poids):
Sophie, 62 Kg le 12/6/2008
Elène, 50 Kg le 8/5/2008
Quelqu'un a-t-il une idée ?
Merci d'avance,
Alain.
Bonjour,
Ne manquerait il pas la condition dtMesure=maxDtMesure car sinon, je ne
vois pas l'utilité du sous -select.
Par contre, il serait bien de préciser dans le select principal
T1.idPerson, faute de quoi il y aura ambiguité sur le champ (etant présent
également dans T2)
--
_________________________________________
Now, you know the truth, Space Invaders are Back
http://www.joachimgarraud.com
L'invasion ne fait QUE commencer...
"Philippe Bouchardy" a écrit dans le message de
news:Bonjour Alain,
En partant du principe qu'il n'y a qu'une seule pesé par personne par
jour je vous propose la requête suivante :
select idPerson,
poids,
dtMesure
from histoPoids T1,
(select idPerson, MAX(dtMesure) as maxDtMesure
from histoPoids
group by idPerson) T2
where T1.idPerson = T2.idPerson
Cordialement,
Philippe
"Alain" wrote in message
news:Bonjour à tous.
Je dois écrire une requête une peu particulière et je ne trouve pas de
solution.
Puis-je avoir votre aide ?
J'ai une table qui contient les poids de personnes mesurés de manière
répétée: j'y stocke, pour chaque mesure du poids, le nom de la personne,
le poids et la date de cette mesure du poids. Pour certaines personnes,
j'ai une ou des mesures du poids à des moments précis.
Je dois écrire une requête SQL qui me donne la liste des dernières
mesures de poids pour chaque personne.
Suis-je clair ?
Voici un exemple:
Sophie, 60 Kg le 10/6/2008
Elène, 50 Kg le 8/5/2008
Sophie, 62 Kg le 12/6/2008
Sophie 59 Kg le 1/6/2008
Résultat souhaité (pour chaque personne la dernière mesure du poids):
Sophie, 62 Kg le 12/6/2008
Elène, 50 Kg le 8/5/2008
Quelqu'un a-t-il une idée ?
Merci d'avance,
Alain.
Merci Christophe, c'est tout a fait exacte, un mauvais copier / coller et
un petit oubli de préfixe !
Je repost la requete complete !
select t1.idPerson,
poids,
dtMesure
from histoPoids T1,
(select idPerson, MAX(dtMesure) as maxDtMesure
from histoPoids
group by idPerson) T2
where T1.idPerson = T2.idPerson
and T1.dtMesure = T2.maxDtMesure
"Christophe Pin" wrote in message
news:485b610a$0$26944$Bonjour,
Ne manquerait il pas la condition dtMesure=maxDtMesure car sinon, je ne
vois pas l'utilité du sous -select.
Par contre, il serait bien de préciser dans le select principal
T1.idPerson, faute de quoi il y aura ambiguité sur le champ (etant
présent également dans T2)
--
_________________________________________
Now, you know the truth, Space Invaders are Back
http://www.joachimgarraud.com
L'invasion ne fait QUE commencer...
"Philippe Bouchardy" a écrit dans le message de
news:Bonjour Alain,
En partant du principe qu'il n'y a qu'une seule pesé par personne par
jour je vous propose la requête suivante :
select idPerson,
poids,
dtMesure
from histoPoids T1,
(select idPerson, MAX(dtMesure) as maxDtMesure
from histoPoids
group by idPerson) T2
where T1.idPerson = T2.idPerson
Cordialement,
Philippe
"Alain" wrote in message
news:Bonjour à tous.
Je dois écrire une requête une peu particulière et je ne trouve pas de
solution.
Puis-je avoir votre aide ?
J'ai une table qui contient les poids de personnes mesurés de manière
répétée: j'y stocke, pour chaque mesure du poids, le nom de la
personne, le poids et la date de cette mesure du poids. Pour certaines
personnes, j'ai une ou des mesures du poids à des moments précis.
Je dois écrire une requête SQL qui me donne la liste des dernières
mesures de poids pour chaque personne.
Suis-je clair ?
Voici un exemple:
Sophie, 60 Kg le 10/6/2008
Elène, 50 Kg le 8/5/2008
Sophie, 62 Kg le 12/6/2008
Sophie 59 Kg le 1/6/2008
Résultat souhaité (pour chaque personne la dernière mesure du poids):
Sophie, 62 Kg le 12/6/2008
Elène, 50 Kg le 8/5/2008
Quelqu'un a-t-il une idée ?
Merci d'avance,
Alain.
Merci Christophe, c'est tout a fait exacte, un mauvais copier / coller et
un petit oubli de préfixe !
Je repost la requete complete !
select t1.idPerson,
poids,
dtMesure
from histoPoids T1,
(select idPerson, MAX(dtMesure) as maxDtMesure
from histoPoids
group by idPerson) T2
where T1.idPerson = T2.idPerson
and T1.dtMesure = T2.maxDtMesure
"Christophe Pin" <ch.pin@free.fr> wrote in message
news:485b610a$0$26944$426a74cc@news.free.fr...
Bonjour,
Ne manquerait il pas la condition dtMesure=maxDtMesure car sinon, je ne
vois pas l'utilité du sous -select.
Par contre, il serait bien de préciser dans le select principal
T1.idPerson, faute de quoi il y aura ambiguité sur le champ (etant
présent également dans T2)
--
_________________________________________
Now, you know the truth, Space Invaders are Back
http://www.joachimgarraud.com
L'invasion ne fait QUE commencer...
"Philippe Bouchardy" <phbo1404@hotmail.co.uk> a écrit dans le message de
news: udbTEkq0IHA.4572@TK2MSFTNGP03.phx.gbl...
Bonjour Alain,
En partant du principe qu'il n'y a qu'une seule pesé par personne par
jour je vous propose la requête suivante :
select idPerson,
poids,
dtMesure
from histoPoids T1,
(select idPerson, MAX(dtMesure) as maxDtMesure
from histoPoids
group by idPerson) T2
where T1.idPerson = T2.idPerson
Cordialement,
Philippe
"Alain" <aca1024@hotmail.com> wrote in message
news:etieaCq0IHA.2068@TK2MSFTNGP05.phx.gbl...
Bonjour à tous.
Je dois écrire une requête une peu particulière et je ne trouve pas de
solution.
Puis-je avoir votre aide ?
J'ai une table qui contient les poids de personnes mesurés de manière
répétée: j'y stocke, pour chaque mesure du poids, le nom de la
personne, le poids et la date de cette mesure du poids. Pour certaines
personnes, j'ai une ou des mesures du poids à des moments précis.
Je dois écrire une requête SQL qui me donne la liste des dernières
mesures de poids pour chaque personne.
Suis-je clair ?
Voici un exemple:
Sophie, 60 Kg le 10/6/2008
Elène, 50 Kg le 8/5/2008
Sophie, 62 Kg le 12/6/2008
Sophie 59 Kg le 1/6/2008
Résultat souhaité (pour chaque personne la dernière mesure du poids):
Sophie, 62 Kg le 12/6/2008
Elène, 50 Kg le 8/5/2008
Quelqu'un a-t-il une idée ?
Merci d'avance,
Alain.
Merci Christophe, c'est tout a fait exacte, un mauvais copier / coller et
un petit oubli de préfixe !
Je repost la requete complete !
select t1.idPerson,
poids,
dtMesure
from histoPoids T1,
(select idPerson, MAX(dtMesure) as maxDtMesure
from histoPoids
group by idPerson) T2
where T1.idPerson = T2.idPerson
and T1.dtMesure = T2.maxDtMesure
"Christophe Pin" wrote in message
news:485b610a$0$26944$Bonjour,
Ne manquerait il pas la condition dtMesure=maxDtMesure car sinon, je ne
vois pas l'utilité du sous -select.
Par contre, il serait bien de préciser dans le select principal
T1.idPerson, faute de quoi il y aura ambiguité sur le champ (etant
présent également dans T2)
--
_________________________________________
Now, you know the truth, Space Invaders are Back
http://www.joachimgarraud.com
L'invasion ne fait QUE commencer...
"Philippe Bouchardy" a écrit dans le message de
news:Bonjour Alain,
En partant du principe qu'il n'y a qu'une seule pesé par personne par
jour je vous propose la requête suivante :
select idPerson,
poids,
dtMesure
from histoPoids T1,
(select idPerson, MAX(dtMesure) as maxDtMesure
from histoPoids
group by idPerson) T2
where T1.idPerson = T2.idPerson
Cordialement,
Philippe
"Alain" wrote in message
news:Bonjour à tous.
Je dois écrire une requête une peu particulière et je ne trouve pas de
solution.
Puis-je avoir votre aide ?
J'ai une table qui contient les poids de personnes mesurés de manière
répétée: j'y stocke, pour chaque mesure du poids, le nom de la
personne, le poids et la date de cette mesure du poids. Pour certaines
personnes, j'ai une ou des mesures du poids à des moments précis.
Je dois écrire une requête SQL qui me donne la liste des dernières
mesures de poids pour chaque personne.
Suis-je clair ?
Voici un exemple:
Sophie, 60 Kg le 10/6/2008
Elène, 50 Kg le 8/5/2008
Sophie, 62 Kg le 12/6/2008
Sophie 59 Kg le 1/6/2008
Résultat souhaité (pour chaque personne la dernière mesure du poids):
Sophie, 62 Kg le 12/6/2008
Elène, 50 Kg le 8/5/2008
Quelqu'un a-t-il une idée ?
Merci d'avance,
Alain.
:)
--
_________________________________________
Now, you know the truth, Space Invaders are Back
http://www.joachimgarraud.com
L'invasion ne fait QUE commencer...
"Philippe Bouchardy" a écrit dans le message de
news:Merci Christophe, c'est tout a fait exacte, un mauvais copier / coller et
un petit oubli de préfixe !
Je repost la requete complete !
select t1.idPerson,
poids,
dtMesure
from histoPoids T1,
(select idPerson, MAX(dtMesure) as maxDtMesure
from histoPoids
group by idPerson) T2
where T1.idPerson = T2.idPerson
and T1.dtMesure = T2.maxDtMesure
"Christophe Pin" wrote in message
news:485b610a$0$26944$Bonjour,
Ne manquerait il pas la condition dtMesure=maxDtMesure car sinon, je ne
vois pas l'utilité du sous -select.
Par contre, il serait bien de préciser dans le select principal
T1.idPerson, faute de quoi il y aura ambiguité sur le champ (etant
présent également dans T2)
--
_________________________________________
Now, you know the truth, Space Invaders are Back
http://www.joachimgarraud.com
L'invasion ne fait QUE commencer...
"Philippe Bouchardy" a écrit dans le message de
news:Bonjour Alain,
En partant du principe qu'il n'y a qu'une seule pesé par personne par
jour je vous propose la requête suivante :
select idPerson,
poids,
dtMesure
from histoPoids T1,
(select idPerson, MAX(dtMesure) as maxDtMesure
from histoPoids
group by idPerson) T2
where T1.idPerson = T2.idPerson
Cordialement,
Philippe
"Alain" wrote in message
news:Bonjour à tous.
Je dois écrire une requête une peu particulière et je ne trouve pas de
solution.
Puis-je avoir votre aide ?
J'ai une table qui contient les poids de personnes mesurés de manière
répétée: j'y stocke, pour chaque mesure du poids, le nom de la
personne, le poids et la date de cette mesure du poids. Pour certaines
personnes, j'ai une ou des mesures du poids à des moments précis.
Je dois écrire une requête SQL qui me donne la liste des dernières
mesures de poids pour chaque personne.
Suis-je clair ?
Voici un exemple:
Sophie, 60 Kg le 10/6/2008
Elène, 50 Kg le 8/5/2008
Sophie, 62 Kg le 12/6/2008
Sophie 59 Kg le 1/6/2008
Résultat souhaité (pour chaque personne la dernière mesure du poids):
Sophie, 62 Kg le 12/6/2008
Elène, 50 Kg le 8/5/2008
Quelqu'un a-t-il une idée ?
Merci d'avance,
Alain.
:)
--
_________________________________________
Now, you know the truth, Space Invaders are Back
http://www.joachimgarraud.com
L'invasion ne fait QUE commencer...
"Philippe Bouchardy" <phbo1404@hotmail.co.uk> a écrit dans le message de
news: eQuPZvq0IHA.1240@TK2MSFTNGP02.phx.gbl...
Merci Christophe, c'est tout a fait exacte, un mauvais copier / coller et
un petit oubli de préfixe !
Je repost la requete complete !
select t1.idPerson,
poids,
dtMesure
from histoPoids T1,
(select idPerson, MAX(dtMesure) as maxDtMesure
from histoPoids
group by idPerson) T2
where T1.idPerson = T2.idPerson
and T1.dtMesure = T2.maxDtMesure
"Christophe Pin" <ch.pin@free.fr> wrote in message
news:485b610a$0$26944$426a74cc@news.free.fr...
Bonjour,
Ne manquerait il pas la condition dtMesure=maxDtMesure car sinon, je ne
vois pas l'utilité du sous -select.
Par contre, il serait bien de préciser dans le select principal
T1.idPerson, faute de quoi il y aura ambiguité sur le champ (etant
présent également dans T2)
--
_________________________________________
Now, you know the truth, Space Invaders are Back
http://www.joachimgarraud.com
L'invasion ne fait QUE commencer...
"Philippe Bouchardy" <phbo1404@hotmail.co.uk> a écrit dans le message de
news: udbTEkq0IHA.4572@TK2MSFTNGP03.phx.gbl...
Bonjour Alain,
En partant du principe qu'il n'y a qu'une seule pesé par personne par
jour je vous propose la requête suivante :
select idPerson,
poids,
dtMesure
from histoPoids T1,
(select idPerson, MAX(dtMesure) as maxDtMesure
from histoPoids
group by idPerson) T2
where T1.idPerson = T2.idPerson
Cordialement,
Philippe
"Alain" <aca1024@hotmail.com> wrote in message
news:etieaCq0IHA.2068@TK2MSFTNGP05.phx.gbl...
Bonjour à tous.
Je dois écrire une requête une peu particulière et je ne trouve pas de
solution.
Puis-je avoir votre aide ?
J'ai une table qui contient les poids de personnes mesurés de manière
répétée: j'y stocke, pour chaque mesure du poids, le nom de la
personne, le poids et la date de cette mesure du poids. Pour certaines
personnes, j'ai une ou des mesures du poids à des moments précis.
Je dois écrire une requête SQL qui me donne la liste des dernières
mesures de poids pour chaque personne.
Suis-je clair ?
Voici un exemple:
Sophie, 60 Kg le 10/6/2008
Elène, 50 Kg le 8/5/2008
Sophie, 62 Kg le 12/6/2008
Sophie 59 Kg le 1/6/2008
Résultat souhaité (pour chaque personne la dernière mesure du poids):
Sophie, 62 Kg le 12/6/2008
Elène, 50 Kg le 8/5/2008
Quelqu'un a-t-il une idée ?
Merci d'avance,
Alain.
:)
--
_________________________________________
Now, you know the truth, Space Invaders are Back
http://www.joachimgarraud.com
L'invasion ne fait QUE commencer...
"Philippe Bouchardy" a écrit dans le message de
news:Merci Christophe, c'est tout a fait exacte, un mauvais copier / coller et
un petit oubli de préfixe !
Je repost la requete complete !
select t1.idPerson,
poids,
dtMesure
from histoPoids T1,
(select idPerson, MAX(dtMesure) as maxDtMesure
from histoPoids
group by idPerson) T2
where T1.idPerson = T2.idPerson
and T1.dtMesure = T2.maxDtMesure
"Christophe Pin" wrote in message
news:485b610a$0$26944$Bonjour,
Ne manquerait il pas la condition dtMesure=maxDtMesure car sinon, je ne
vois pas l'utilité du sous -select.
Par contre, il serait bien de préciser dans le select principal
T1.idPerson, faute de quoi il y aura ambiguité sur le champ (etant
présent également dans T2)
--
_________________________________________
Now, you know the truth, Space Invaders are Back
http://www.joachimgarraud.com
L'invasion ne fait QUE commencer...
"Philippe Bouchardy" a écrit dans le message de
news:Bonjour Alain,
En partant du principe qu'il n'y a qu'une seule pesé par personne par
jour je vous propose la requête suivante :
select idPerson,
poids,
dtMesure
from histoPoids T1,
(select idPerson, MAX(dtMesure) as maxDtMesure
from histoPoids
group by idPerson) T2
where T1.idPerson = T2.idPerson
Cordialement,
Philippe
"Alain" wrote in message
news:Bonjour à tous.
Je dois écrire une requête une peu particulière et je ne trouve pas de
solution.
Puis-je avoir votre aide ?
J'ai une table qui contient les poids de personnes mesurés de manière
répétée: j'y stocke, pour chaque mesure du poids, le nom de la
personne, le poids et la date de cette mesure du poids. Pour certaines
personnes, j'ai une ou des mesures du poids à des moments précis.
Je dois écrire une requête SQL qui me donne la liste des dernières
mesures de poids pour chaque personne.
Suis-je clair ?
Voici un exemple:
Sophie, 60 Kg le 10/6/2008
Elène, 50 Kg le 8/5/2008
Sophie, 62 Kg le 12/6/2008
Sophie 59 Kg le 1/6/2008
Résultat souhaité (pour chaque personne la dernière mesure du poids):
Sophie, 62 Kg le 12/6/2008
Elène, 50 Kg le 8/5/2008
Quelqu'un a-t-il une idée ?
Merci d'avance,
Alain.
Merci.
Désolé de ne répondre que tardivement.
Je pensais à une solution plus simple avec des opérateurs spécifique comme
le TOP ou quelque chose du genre...
Alain.
"Christophe Pin" a écrit dans le message de news:
485b6516$0$16868$:)
--
_________________________________________
Now, you know the truth, Space Invaders are Back
http://www.joachimgarraud.com
L'invasion ne fait QUE commencer...
"Philippe Bouchardy" a écrit dans le message de
news:Merci Christophe, c'est tout a fait exacte, un mauvais copier / coller
et un petit oubli de préfixe !
Je repost la requete complete !
select t1.idPerson,
poids,
dtMesure
from histoPoids T1,
(select idPerson, MAX(dtMesure) as maxDtMesure
from histoPoids
group by idPerson) T2
where T1.idPerson = T2.idPerson
and T1.dtMesure = T2.maxDtMesure
"Christophe Pin" wrote in message
news:485b610a$0$26944$Bonjour,
Ne manquerait il pas la condition dtMesure=maxDtMesure car sinon, je ne
vois pas l'utilité du sous -select.
Par contre, il serait bien de préciser dans le select principal
T1.idPerson, faute de quoi il y aura ambiguité sur le champ (etant
présent également dans T2)
--
_________________________________________
Now, you know the truth, Space Invaders are Back
http://www.joachimgarraud.com
L'invasion ne fait QUE commencer...
"Philippe Bouchardy" a écrit dans le message
de news:Bonjour Alain,
En partant du principe qu'il n'y a qu'une seule pesé par personne par
jour je vous propose la requête suivante :
select idPerson,
poids,
dtMesure
from histoPoids T1,
(select idPerson, MAX(dtMesure) as maxDtMesure
from histoPoids
group by idPerson) T2
where T1.idPerson = T2.idPerson
Cordialement,
Philippe
"Alain" wrote in message
news:Bonjour à tous.
Je dois écrire une requête une peu particulière et je ne trouve pas
de solution.
Puis-je avoir votre aide ?
J'ai une table qui contient les poids de personnes mesurés de manière
répétée: j'y stocke, pour chaque mesure du poids, le nom de la
personne, le poids et la date de cette mesure du poids. Pour
certaines personnes, j'ai une ou des mesures du poids à des moments
précis.
Je dois écrire une requête SQL qui me donne la liste des dernières
mesures de poids pour chaque personne.
Suis-je clair ?
Voici un exemple:
Sophie, 60 Kg le 10/6/2008
Elène, 50 Kg le 8/5/2008
Sophie, 62 Kg le 12/6/2008
Sophie 59 Kg le 1/6/2008
Résultat souhaité (pour chaque personne la dernière mesure du poids):
Sophie, 62 Kg le 12/6/2008
Elène, 50 Kg le 8/5/2008
Quelqu'un a-t-il une idée ?
Merci d'avance,
Alain.
Merci.
Désolé de ne répondre que tardivement.
Je pensais à une solution plus simple avec des opérateurs spécifique comme
le TOP ou quelque chose du genre...
Alain.
"Christophe Pin" <ch.pin@free.fr> a écrit dans le message de news:
485b6516$0$16868$426a74cc@news.free.fr...
:)
--
_________________________________________
Now, you know the truth, Space Invaders are Back
http://www.joachimgarraud.com
L'invasion ne fait QUE commencer...
"Philippe Bouchardy" <phbo1404@hotmail.co.uk> a écrit dans le message de
news: eQuPZvq0IHA.1240@TK2MSFTNGP02.phx.gbl...
Merci Christophe, c'est tout a fait exacte, un mauvais copier / coller
et un petit oubli de préfixe !
Je repost la requete complete !
select t1.idPerson,
poids,
dtMesure
from histoPoids T1,
(select idPerson, MAX(dtMesure) as maxDtMesure
from histoPoids
group by idPerson) T2
where T1.idPerson = T2.idPerson
and T1.dtMesure = T2.maxDtMesure
"Christophe Pin" <ch.pin@free.fr> wrote in message
news:485b610a$0$26944$426a74cc@news.free.fr...
Bonjour,
Ne manquerait il pas la condition dtMesure=maxDtMesure car sinon, je ne
vois pas l'utilité du sous -select.
Par contre, il serait bien de préciser dans le select principal
T1.idPerson, faute de quoi il y aura ambiguité sur le champ (etant
présent également dans T2)
--
_________________________________________
Now, you know the truth, Space Invaders are Back
http://www.joachimgarraud.com
L'invasion ne fait QUE commencer...
"Philippe Bouchardy" <phbo1404@hotmail.co.uk> a écrit dans le message
de news: udbTEkq0IHA.4572@TK2MSFTNGP03.phx.gbl...
Bonjour Alain,
En partant du principe qu'il n'y a qu'une seule pesé par personne par
jour je vous propose la requête suivante :
select idPerson,
poids,
dtMesure
from histoPoids T1,
(select idPerson, MAX(dtMesure) as maxDtMesure
from histoPoids
group by idPerson) T2
where T1.idPerson = T2.idPerson
Cordialement,
Philippe
"Alain" <aca1024@hotmail.com> wrote in message
news:etieaCq0IHA.2068@TK2MSFTNGP05.phx.gbl...
Bonjour à tous.
Je dois écrire une requête une peu particulière et je ne trouve pas
de solution.
Puis-je avoir votre aide ?
J'ai une table qui contient les poids de personnes mesurés de manière
répétée: j'y stocke, pour chaque mesure du poids, le nom de la
personne, le poids et la date de cette mesure du poids. Pour
certaines personnes, j'ai une ou des mesures du poids à des moments
précis.
Je dois écrire une requête SQL qui me donne la liste des dernières
mesures de poids pour chaque personne.
Suis-je clair ?
Voici un exemple:
Sophie, 60 Kg le 10/6/2008
Elène, 50 Kg le 8/5/2008
Sophie, 62 Kg le 12/6/2008
Sophie 59 Kg le 1/6/2008
Résultat souhaité (pour chaque personne la dernière mesure du poids):
Sophie, 62 Kg le 12/6/2008
Elène, 50 Kg le 8/5/2008
Quelqu'un a-t-il une idée ?
Merci d'avance,
Alain.
Merci.
Désolé de ne répondre que tardivement.
Je pensais à une solution plus simple avec des opérateurs spécifique comme
le TOP ou quelque chose du genre...
Alain.
"Christophe Pin" a écrit dans le message de news:
485b6516$0$16868$:)
--
_________________________________________
Now, you know the truth, Space Invaders are Back
http://www.joachimgarraud.com
L'invasion ne fait QUE commencer...
"Philippe Bouchardy" a écrit dans le message de
news:Merci Christophe, c'est tout a fait exacte, un mauvais copier / coller
et un petit oubli de préfixe !
Je repost la requete complete !
select t1.idPerson,
poids,
dtMesure
from histoPoids T1,
(select idPerson, MAX(dtMesure) as maxDtMesure
from histoPoids
group by idPerson) T2
where T1.idPerson = T2.idPerson
and T1.dtMesure = T2.maxDtMesure
"Christophe Pin" wrote in message
news:485b610a$0$26944$Bonjour,
Ne manquerait il pas la condition dtMesure=maxDtMesure car sinon, je ne
vois pas l'utilité du sous -select.
Par contre, il serait bien de préciser dans le select principal
T1.idPerson, faute de quoi il y aura ambiguité sur le champ (etant
présent également dans T2)
--
_________________________________________
Now, you know the truth, Space Invaders are Back
http://www.joachimgarraud.com
L'invasion ne fait QUE commencer...
"Philippe Bouchardy" a écrit dans le message
de news:Bonjour Alain,
En partant du principe qu'il n'y a qu'une seule pesé par personne par
jour je vous propose la requête suivante :
select idPerson,
poids,
dtMesure
from histoPoids T1,
(select idPerson, MAX(dtMesure) as maxDtMesure
from histoPoids
group by idPerson) T2
where T1.idPerson = T2.idPerson
Cordialement,
Philippe
"Alain" wrote in message
news:Bonjour à tous.
Je dois écrire une requête une peu particulière et je ne trouve pas
de solution.
Puis-je avoir votre aide ?
J'ai une table qui contient les poids de personnes mesurés de manière
répétée: j'y stocke, pour chaque mesure du poids, le nom de la
personne, le poids et la date de cette mesure du poids. Pour
certaines personnes, j'ai une ou des mesures du poids à des moments
précis.
Je dois écrire une requête SQL qui me donne la liste des dernières
mesures de poids pour chaque personne.
Suis-je clair ?
Voici un exemple:
Sophie, 60 Kg le 10/6/2008
Elène, 50 Kg le 8/5/2008
Sophie, 62 Kg le 12/6/2008
Sophie 59 Kg le 1/6/2008
Résultat souhaité (pour chaque personne la dernière mesure du poids):
Sophie, 62 Kg le 12/6/2008
Elène, 50 Kg le 8/5/2008
Quelqu'un a-t-il une idée ?
Merci d'avance,
Alain.
J'ai l'impression que le requête que vous me proposez est celle qui vient
naturellement à l'esprit lorsqu'on connait SQL mais je trouve que cette
solution met en évidence un manque au niveau de ce language: le
MAX(dtMesure) permet d'avoir la dernière date mais il est impossible
d'obtenir *directement* le poids associé à cette date; il faut une
jointure qui, du point de vue de la logique procédurale classique, est
superflue puisque, si on a MAX(dtMesure), le SGBD a déjà le record qui
contient le poids associé à cette date.
C'est pour cela que je pensais au TOP que je connais mal ou à d'autres
opérateurs spécifique non standard SQL...
Alain.
"Alain" a écrit dans le message de news:Merci.
Désolé de ne répondre que tardivement.
Je pensais à une solution plus simple avec des opérateurs spécifique
comme le TOP ou quelque chose du genre...
Alain.
"Christophe Pin" a écrit dans le message de news:
485b6516$0$16868$:)
--
_________________________________________
Now, you know the truth, Space Invaders are Back
http://www.joachimgarraud.com
L'invasion ne fait QUE commencer...
"Philippe Bouchardy" a écrit dans le message de
news:Merci Christophe, c'est tout a fait exacte, un mauvais copier / coller
et un petit oubli de préfixe !
Je repost la requete complete !
select t1.idPerson,
poids,
dtMesure
from histoPoids T1,
(select idPerson, MAX(dtMesure) as maxDtMesure
from histoPoids
group by idPerson) T2
where T1.idPerson = T2.idPerson
and T1.dtMesure = T2.maxDtMesure
"Christophe Pin" wrote in message
news:485b610a$0$26944$Bonjour,
Ne manquerait il pas la condition dtMesure=maxDtMesure car sinon, je
ne vois pas l'utilité du sous -select.
Par contre, il serait bien de préciser dans le select principal
T1.idPerson, faute de quoi il y aura ambiguité sur le champ (etant
présent également dans T2)
--
_________________________________________
Now, you know the truth, Space Invaders are Back
http://www.joachimgarraud.com
L'invasion ne fait QUE commencer...
"Philippe Bouchardy" a écrit dans le message
de news:Bonjour Alain,
En partant du principe qu'il n'y a qu'une seule pesé par personne par
jour je vous propose la requête suivante :
select idPerson,
poids,
dtMesure
from histoPoids T1,
(select idPerson, MAX(dtMesure) as maxDtMesure
from histoPoids
group by idPerson) T2
where T1.idPerson = T2.idPerson
Cordialement,
Philippe
"Alain" wrote in message
news:Bonjour à tous.
Je dois écrire une requête une peu particulière et je ne trouve pas
de solution.
Puis-je avoir votre aide ?
J'ai une table qui contient les poids de personnes mesurés de
manière répétée: j'y stocke, pour chaque mesure du poids, le nom de
la personne, le poids et la date de cette mesure du poids. Pour
certaines personnes, j'ai une ou des mesures du poids à des moments
précis.
Je dois écrire une requête SQL qui me donne la liste des dernières
mesures de poids pour chaque personne.
Suis-je clair ?
Voici un exemple:
Sophie, 60 Kg le 10/6/2008
Elène, 50 Kg le 8/5/2008
Sophie, 62 Kg le 12/6/2008
Sophie 59 Kg le 1/6/2008
Résultat souhaité (pour chaque personne la dernière mesure du
poids):
Sophie, 62 Kg le 12/6/2008
Elène, 50 Kg le 8/5/2008
Quelqu'un a-t-il une idée ?
Merci d'avance,
Alain.
J'ai l'impression que le requête que vous me proposez est celle qui vient
naturellement à l'esprit lorsqu'on connait SQL mais je trouve que cette
solution met en évidence un manque au niveau de ce language: le
MAX(dtMesure) permet d'avoir la dernière date mais il est impossible
d'obtenir *directement* le poids associé à cette date; il faut une
jointure qui, du point de vue de la logique procédurale classique, est
superflue puisque, si on a MAX(dtMesure), le SGBD a déjà le record qui
contient le poids associé à cette date.
C'est pour cela que je pensais au TOP que je connais mal ou à d'autres
opérateurs spécifique non standard SQL...
Alain.
"Alain" <aca1024@hotmail.com> a écrit dans le message de news:
uZ4G3hc1IHA.4004@TK2MSFTNGP03.phx.gbl...
Merci.
Désolé de ne répondre que tardivement.
Je pensais à une solution plus simple avec des opérateurs spécifique
comme le TOP ou quelque chose du genre...
Alain.
"Christophe Pin" <ch.pin@free.fr> a écrit dans le message de news:
485b6516$0$16868$426a74cc@news.free.fr...
:)
--
_________________________________________
Now, you know the truth, Space Invaders are Back
http://www.joachimgarraud.com
L'invasion ne fait QUE commencer...
"Philippe Bouchardy" <phbo1404@hotmail.co.uk> a écrit dans le message de
news: eQuPZvq0IHA.1240@TK2MSFTNGP02.phx.gbl...
Merci Christophe, c'est tout a fait exacte, un mauvais copier / coller
et un petit oubli de préfixe !
Je repost la requete complete !
select t1.idPerson,
poids,
dtMesure
from histoPoids T1,
(select idPerson, MAX(dtMesure) as maxDtMesure
from histoPoids
group by idPerson) T2
where T1.idPerson = T2.idPerson
and T1.dtMesure = T2.maxDtMesure
"Christophe Pin" <ch.pin@free.fr> wrote in message
news:485b610a$0$26944$426a74cc@news.free.fr...
Bonjour,
Ne manquerait il pas la condition dtMesure=maxDtMesure car sinon, je
ne vois pas l'utilité du sous -select.
Par contre, il serait bien de préciser dans le select principal
T1.idPerson, faute de quoi il y aura ambiguité sur le champ (etant
présent également dans T2)
--
_________________________________________
Now, you know the truth, Space Invaders are Back
http://www.joachimgarraud.com
L'invasion ne fait QUE commencer...
"Philippe Bouchardy" <phbo1404@hotmail.co.uk> a écrit dans le message
de news: udbTEkq0IHA.4572@TK2MSFTNGP03.phx.gbl...
Bonjour Alain,
En partant du principe qu'il n'y a qu'une seule pesé par personne par
jour je vous propose la requête suivante :
select idPerson,
poids,
dtMesure
from histoPoids T1,
(select idPerson, MAX(dtMesure) as maxDtMesure
from histoPoids
group by idPerson) T2
where T1.idPerson = T2.idPerson
Cordialement,
Philippe
"Alain" <aca1024@hotmail.com> wrote in message
news:etieaCq0IHA.2068@TK2MSFTNGP05.phx.gbl...
Bonjour à tous.
Je dois écrire une requête une peu particulière et je ne trouve pas
de solution.
Puis-je avoir votre aide ?
J'ai une table qui contient les poids de personnes mesurés de
manière répétée: j'y stocke, pour chaque mesure du poids, le nom de
la personne, le poids et la date de cette mesure du poids. Pour
certaines personnes, j'ai une ou des mesures du poids à des moments
précis.
Je dois écrire une requête SQL qui me donne la liste des dernières
mesures de poids pour chaque personne.
Suis-je clair ?
Voici un exemple:
Sophie, 60 Kg le 10/6/2008
Elène, 50 Kg le 8/5/2008
Sophie, 62 Kg le 12/6/2008
Sophie 59 Kg le 1/6/2008
Résultat souhaité (pour chaque personne la dernière mesure du
poids):
Sophie, 62 Kg le 12/6/2008
Elène, 50 Kg le 8/5/2008
Quelqu'un a-t-il une idée ?
Merci d'avance,
Alain.
J'ai l'impression que le requête que vous me proposez est celle qui vient
naturellement à l'esprit lorsqu'on connait SQL mais je trouve que cette
solution met en évidence un manque au niveau de ce language: le
MAX(dtMesure) permet d'avoir la dernière date mais il est impossible
d'obtenir *directement* le poids associé à cette date; il faut une
jointure qui, du point de vue de la logique procédurale classique, est
superflue puisque, si on a MAX(dtMesure), le SGBD a déjà le record qui
contient le poids associé à cette date.
C'est pour cela que je pensais au TOP que je connais mal ou à d'autres
opérateurs spécifique non standard SQL...
Alain.
"Alain" a écrit dans le message de news:Merci.
Désolé de ne répondre que tardivement.
Je pensais à une solution plus simple avec des opérateurs spécifique
comme le TOP ou quelque chose du genre...
Alain.
"Christophe Pin" a écrit dans le message de news:
485b6516$0$16868$:)
--
_________________________________________
Now, you know the truth, Space Invaders are Back
http://www.joachimgarraud.com
L'invasion ne fait QUE commencer...
"Philippe Bouchardy" a écrit dans le message de
news:Merci Christophe, c'est tout a fait exacte, un mauvais copier / coller
et un petit oubli de préfixe !
Je repost la requete complete !
select t1.idPerson,
poids,
dtMesure
from histoPoids T1,
(select idPerson, MAX(dtMesure) as maxDtMesure
from histoPoids
group by idPerson) T2
where T1.idPerson = T2.idPerson
and T1.dtMesure = T2.maxDtMesure
"Christophe Pin" wrote in message
news:485b610a$0$26944$Bonjour,
Ne manquerait il pas la condition dtMesure=maxDtMesure car sinon, je
ne vois pas l'utilité du sous -select.
Par contre, il serait bien de préciser dans le select principal
T1.idPerson, faute de quoi il y aura ambiguité sur le champ (etant
présent également dans T2)
--
_________________________________________
Now, you know the truth, Space Invaders are Back
http://www.joachimgarraud.com
L'invasion ne fait QUE commencer...
"Philippe Bouchardy" a écrit dans le message
de news:Bonjour Alain,
En partant du principe qu'il n'y a qu'une seule pesé par personne par
jour je vous propose la requête suivante :
select idPerson,
poids,
dtMesure
from histoPoids T1,
(select idPerson, MAX(dtMesure) as maxDtMesure
from histoPoids
group by idPerson) T2
where T1.idPerson = T2.idPerson
Cordialement,
Philippe
"Alain" wrote in message
news:Bonjour à tous.
Je dois écrire une requête une peu particulière et je ne trouve pas
de solution.
Puis-je avoir votre aide ?
J'ai une table qui contient les poids de personnes mesurés de
manière répétée: j'y stocke, pour chaque mesure du poids, le nom de
la personne, le poids et la date de cette mesure du poids. Pour
certaines personnes, j'ai une ou des mesures du poids à des moments
précis.
Je dois écrire une requête SQL qui me donne la liste des dernières
mesures de poids pour chaque personne.
Suis-je clair ?
Voici un exemple:
Sophie, 60 Kg le 10/6/2008
Elène, 50 Kg le 8/5/2008
Sophie, 62 Kg le 12/6/2008
Sophie 59 Kg le 1/6/2008
Résultat souhaité (pour chaque personne la dernière mesure du
poids):
Sophie, 62 Kg le 12/6/2008
Elène, 50 Kg le 8/5/2008
Quelqu'un a-t-il une idée ?
Merci d'avance,
Alain.
J'ai l'impression que le requête que vous me proposez est celle qui vient
naturellement à l'esprit lorsqu'on connait SQL mais je trouve que cette
solution met en évidence un manque au niveau de ce language: le
MAX(dtMesure) permet d'avoir la dernière date mais il est impossible
d'obtenir *directement* le poids associé à cette date; il faut une
jointure qui, du point de vue de la logique procédurale classique, est
superflue puisque, si on a MAX(dtMesure), le SGBD a déjà le record qui
contient le poids associé à cette date.
C'est pour cela que je pensais au TOP que je connais mal ou à d'autres
opérateurs spécifique non standard SQL...
Alain.
"Alain" a écrit dans le message de news:Merci.
Désolé de ne répondre que tardivement.
Je pensais à une solution plus simple avec des opérateurs spécifique
comme le TOP ou quelque chose du genre...
Alain.
"Christophe Pin" a écrit dans le message de news:
485b6516$0$16868$:)
--
_________________________________________
Now, you know the truth, Space Invaders are Back
http://www.joachimgarraud.com
L'invasion ne fait QUE commencer...
"Philippe Bouchardy" a écrit dans le message de
news:Merci Christophe, c'est tout a fait exacte, un mauvais copier / coller
et un petit oubli de préfixe !
Je repost la requete complete !
select t1.idPerson,
poids,
dtMesure
from histoPoids T1,
(select idPerson, MAX(dtMesure) as maxDtMesure
from histoPoids
group by idPerson) T2
where T1.idPerson = T2.idPerson
and T1.dtMesure = T2.maxDtMesure
"Christophe Pin" wrote in message
news:485b610a$0$26944$Bonjour,
Ne manquerait il pas la condition dtMesure=maxDtMesure car sinon, je
ne vois pas l'utilité du sous -select.
Par contre, il serait bien de préciser dans le select principal
T1.idPerson, faute de quoi il y aura ambiguité sur le champ (etant
présent également dans T2)
--
_________________________________________
Now, you know the truth, Space Invaders are Back
http://www.joachimgarraud.com
L'invasion ne fait QUE commencer...
"Philippe Bouchardy" a écrit dans le message
de news:Bonjour Alain,
En partant du principe qu'il n'y a qu'une seule pesé par personne par
jour je vous propose la requête suivante :
select idPerson,
poids,
dtMesure
from histoPoids T1,
(select idPerson, MAX(dtMesure) as maxDtMesure
from histoPoids
group by idPerson) T2
where T1.idPerson = T2.idPerson
Cordialement,
Philippe
"Alain" wrote in message
news:Bonjour à tous.
Je dois écrire une requête une peu particulière et je ne trouve pas
de solution.
Puis-je avoir votre aide ?
J'ai une table qui contient les poids de personnes mesurés de
manière répétée: j'y stocke, pour chaque mesure du poids, le nom de
la personne, le poids et la date de cette mesure du poids. Pour
certaines personnes, j'ai une ou des mesures du poids à des moments
précis.
Je dois écrire une requête SQL qui me donne la liste des dernières
mesures de poids pour chaque personne.
Suis-je clair ?
Voici un exemple:
Sophie, 60 Kg le 10/6/2008
Elène, 50 Kg le 8/5/2008
Sophie, 62 Kg le 12/6/2008
Sophie 59 Kg le 1/6/2008
Résultat souhaité (pour chaque personne la dernière mesure du
poids):
Sophie, 62 Kg le 12/6/2008
Elène, 50 Kg le 8/5/2008
Quelqu'un a-t-il une idée ?
Merci d'avance,
Alain.
J'ai l'impression que le requête que vous me proposez est celle qui vient
naturellement à l'esprit lorsqu'on connait SQL mais je trouve que cette
solution met en évidence un manque au niveau de ce language: le
MAX(dtMesure) permet d'avoir la dernière date mais il est impossible
d'obtenir *directement* le poids associé à cette date; il faut une
jointure qui, du point de vue de la logique procédurale classique, est
superflue puisque, si on a MAX(dtMesure), le SGBD a déjà le record qui
contient le poids associé à cette date.
C'est pour cela que je pensais au TOP que je connais mal ou à d'autres
opérateurs spécifique non standard SQL...
Alain.
"Alain" <aca1024@hotmail.com> a écrit dans le message de news:
uZ4G3hc1IHA.4004@TK2MSFTNGP03.phx.gbl...
Merci.
Désolé de ne répondre que tardivement.
Je pensais à une solution plus simple avec des opérateurs spécifique
comme le TOP ou quelque chose du genre...
Alain.
"Christophe Pin" <ch.pin@free.fr> a écrit dans le message de news:
485b6516$0$16868$426a74cc@news.free.fr...
:)
--
_________________________________________
Now, you know the truth, Space Invaders are Back
http://www.joachimgarraud.com
L'invasion ne fait QUE commencer...
"Philippe Bouchardy" <phbo1404@hotmail.co.uk> a écrit dans le message de
news: eQuPZvq0IHA.1240@TK2MSFTNGP02.phx.gbl...
Merci Christophe, c'est tout a fait exacte, un mauvais copier / coller
et un petit oubli de préfixe !
Je repost la requete complete !
select t1.idPerson,
poids,
dtMesure
from histoPoids T1,
(select idPerson, MAX(dtMesure) as maxDtMesure
from histoPoids
group by idPerson) T2
where T1.idPerson = T2.idPerson
and T1.dtMesure = T2.maxDtMesure
"Christophe Pin" <ch.pin@free.fr> wrote in message
news:485b610a$0$26944$426a74cc@news.free.fr...
Bonjour,
Ne manquerait il pas la condition dtMesure=maxDtMesure car sinon, je
ne vois pas l'utilité du sous -select.
Par contre, il serait bien de préciser dans le select principal
T1.idPerson, faute de quoi il y aura ambiguité sur le champ (etant
présent également dans T2)
--
_________________________________________
Now, you know the truth, Space Invaders are Back
http://www.joachimgarraud.com
L'invasion ne fait QUE commencer...
"Philippe Bouchardy" <phbo1404@hotmail.co.uk> a écrit dans le message
de news: udbTEkq0IHA.4572@TK2MSFTNGP03.phx.gbl...
Bonjour Alain,
En partant du principe qu'il n'y a qu'une seule pesé par personne par
jour je vous propose la requête suivante :
select idPerson,
poids,
dtMesure
from histoPoids T1,
(select idPerson, MAX(dtMesure) as maxDtMesure
from histoPoids
group by idPerson) T2
where T1.idPerson = T2.idPerson
Cordialement,
Philippe
"Alain" <aca1024@hotmail.com> wrote in message
news:etieaCq0IHA.2068@TK2MSFTNGP05.phx.gbl...
Bonjour à tous.
Je dois écrire une requête une peu particulière et je ne trouve pas
de solution.
Puis-je avoir votre aide ?
J'ai une table qui contient les poids de personnes mesurés de
manière répétée: j'y stocke, pour chaque mesure du poids, le nom de
la personne, le poids et la date de cette mesure du poids. Pour
certaines personnes, j'ai une ou des mesures du poids à des moments
précis.
Je dois écrire une requête SQL qui me donne la liste des dernières
mesures de poids pour chaque personne.
Suis-je clair ?
Voici un exemple:
Sophie, 60 Kg le 10/6/2008
Elène, 50 Kg le 8/5/2008
Sophie, 62 Kg le 12/6/2008
Sophie 59 Kg le 1/6/2008
Résultat souhaité (pour chaque personne la dernière mesure du
poids):
Sophie, 62 Kg le 12/6/2008
Elène, 50 Kg le 8/5/2008
Quelqu'un a-t-il une idée ?
Merci d'avance,
Alain.
J'ai l'impression que le requête que vous me proposez est celle qui vient
naturellement à l'esprit lorsqu'on connait SQL mais je trouve que cette
solution met en évidence un manque au niveau de ce language: le
MAX(dtMesure) permet d'avoir la dernière date mais il est impossible
d'obtenir *directement* le poids associé à cette date; il faut une
jointure qui, du point de vue de la logique procédurale classique, est
superflue puisque, si on a MAX(dtMesure), le SGBD a déjà le record qui
contient le poids associé à cette date.
C'est pour cela que je pensais au TOP que je connais mal ou à d'autres
opérateurs spécifique non standard SQL...
Alain.
"Alain" a écrit dans le message de news:Merci.
Désolé de ne répondre que tardivement.
Je pensais à une solution plus simple avec des opérateurs spécifique
comme le TOP ou quelque chose du genre...
Alain.
"Christophe Pin" a écrit dans le message de news:
485b6516$0$16868$:)
--
_________________________________________
Now, you know the truth, Space Invaders are Back
http://www.joachimgarraud.com
L'invasion ne fait QUE commencer...
"Philippe Bouchardy" a écrit dans le message de
news:Merci Christophe, c'est tout a fait exacte, un mauvais copier / coller
et un petit oubli de préfixe !
Je repost la requete complete !
select t1.idPerson,
poids,
dtMesure
from histoPoids T1,
(select idPerson, MAX(dtMesure) as maxDtMesure
from histoPoids
group by idPerson) T2
where T1.idPerson = T2.idPerson
and T1.dtMesure = T2.maxDtMesure
"Christophe Pin" wrote in message
news:485b610a$0$26944$Bonjour,
Ne manquerait il pas la condition dtMesure=maxDtMesure car sinon, je
ne vois pas l'utilité du sous -select.
Par contre, il serait bien de préciser dans le select principal
T1.idPerson, faute de quoi il y aura ambiguité sur le champ (etant
présent également dans T2)
--
_________________________________________
Now, you know the truth, Space Invaders are Back
http://www.joachimgarraud.com
L'invasion ne fait QUE commencer...
"Philippe Bouchardy" a écrit dans le message
de news:Bonjour Alain,
En partant du principe qu'il n'y a qu'une seule pesé par personne par
jour je vous propose la requête suivante :
select idPerson,
poids,
dtMesure
from histoPoids T1,
(select idPerson, MAX(dtMesure) as maxDtMesure
from histoPoids
group by idPerson) T2
where T1.idPerson = T2.idPerson
Cordialement,
Philippe
"Alain" wrote in message
news:Bonjour à tous.
Je dois écrire une requête une peu particulière et je ne trouve pas
de solution.
Puis-je avoir votre aide ?
J'ai une table qui contient les poids de personnes mesurés de
manière répétée: j'y stocke, pour chaque mesure du poids, le nom de
la personne, le poids et la date de cette mesure du poids. Pour
certaines personnes, j'ai une ou des mesures du poids à des moments
précis.
Je dois écrire une requête SQL qui me donne la liste des dernières
mesures de poids pour chaque personne.
Suis-je clair ?
Voici un exemple:
Sophie, 60 Kg le 10/6/2008
Elène, 50 Kg le 8/5/2008
Sophie, 62 Kg le 12/6/2008
Sophie 59 Kg le 1/6/2008
Résultat souhaité (pour chaque personne la dernière mesure du
poids):
Sophie, 62 Kg le 12/6/2008
Elène, 50 Kg le 8/5/2008
Quelqu'un a-t-il une idée ?
Merci d'avance,
Alain.