Bonjour,
je n'arrive pas a ecrire la requete suivante:
dans une table T_POSITION_POS
POS_ID
POS_VEHICULE
POS_DATE
POS_LATITUDE
POS_LONGITUDE
je souhaite obtenir la chose suivante:
POS_VEHICULE, POS_DATE,POS_LATITUDE,POS_LONGITUDE
ou chaque ligne correspond a la derniere position de chaque véhicule.
je pense bien a GROUP BY (POS_VEHICULE) et MAX(POS_DATE) mais comment puis
je afficher POS_LATITUDE et POS_LONGITUDE correspondant à GROUP BY
(POS_VEHICULE) et MAX(POS_DATE).
Merci pour votre aide
Bonjour,
je n'arrive pas a ecrire la requete suivante:
dans une table T_POSITION_POS
POS_ID
POS_VEHICULE
POS_DATE
POS_LATITUDE
POS_LONGITUDE
je souhaite obtenir la chose suivante:
POS_VEHICULE, POS_DATE,POS_LATITUDE,POS_LONGITUDE
ou chaque ligne correspond a la derniere position de chaque véhicule.
je pense bien a GROUP BY (POS_VEHICULE) et MAX(POS_DATE) mais comment puis
je afficher POS_LATITUDE et POS_LONGITUDE correspondant à GROUP BY
(POS_VEHICULE) et MAX(POS_DATE).
Merci pour votre aide
Bonjour,
je n'arrive pas a ecrire la requete suivante:
dans une table T_POSITION_POS
POS_ID
POS_VEHICULE
POS_DATE
POS_LATITUDE
POS_LONGITUDE
je souhaite obtenir la chose suivante:
POS_VEHICULE, POS_DATE,POS_LATITUDE,POS_LONGITUDE
ou chaque ligne correspond a la derniere position de chaque véhicule.
je pense bien a GROUP BY (POS_VEHICULE) et MAX(POS_DATE) mais comment puis
je afficher POS_LATITUDE et POS_LONGITUDE correspondant à GROUP BY
(POS_VEHICULE) et MAX(POS_DATE).
Merci pour votre aide
Si la colonne POS_ID est la clé:
select
POS_VEHICULE, POS_DATE, POS_LATITUDE, POS_LONGITUDE
from T as T1
where POS_ID = (
select top 1 POS_ID
from T as T2
where T2.VEHICULE = T1.VEHICULE
order by POS_DATE desc
)
ou
select
POS_VEHICULE, POS_DATE, POS_LATITUDE, POS_LONGITUDE
from T as T1
where POS_DATE = (
select max(POS_DATE)
from T as T2
where T2.VEHICULE = T1.VEHICULE
)
ou
select
POS_VEHICULE, POS_DATE, POS_LATITUDE, POS_LONGITUDE
from T
where not exists (
select *
from T as T2
where T2.VEHICULE = T1.VEHICULE
and T2.POS_DATE > T1.POS_DATE
)
Steve Kass
Drew University
Laurent HOUTANT wrote:Bonjour,
je n'arrive pas a ecrire la requete suivante:
dans une table T_POSITION_POS
POS_ID
POS_VEHICULE
POS_DATE
POS_LATITUDE
POS_LONGITUDE
je souhaite obtenir la chose suivante:
POS_VEHICULE, POS_DATE,POS_LATITUDE,POS_LONGITUDE
ou chaque ligne correspond a la derniere position de chaque véhicule.
je pense bien a GROUP BY (POS_VEHICULE) et MAX(POS_DATE) mais comment puis
je afficher POS_LATITUDE et POS_LONGITUDE correspondant à GROUP BY
(POS_VEHICULE) et MAX(POS_DATE).
Merci pour votre aide
Si la colonne POS_ID est la clé:
select
POS_VEHICULE, POS_DATE, POS_LATITUDE, POS_LONGITUDE
from T as T1
where POS_ID = (
select top 1 POS_ID
from T as T2
where T2.VEHICULE = T1.VEHICULE
order by POS_DATE desc
)
ou
select
POS_VEHICULE, POS_DATE, POS_LATITUDE, POS_LONGITUDE
from T as T1
where POS_DATE = (
select max(POS_DATE)
from T as T2
where T2.VEHICULE = T1.VEHICULE
)
ou
select
POS_VEHICULE, POS_DATE, POS_LATITUDE, POS_LONGITUDE
from T
where not exists (
select *
from T as T2
where T2.VEHICULE = T1.VEHICULE
and T2.POS_DATE > T1.POS_DATE
)
Steve Kass
Drew University
Laurent HOUTANT wrote:
Bonjour,
je n'arrive pas a ecrire la requete suivante:
dans une table T_POSITION_POS
POS_ID
POS_VEHICULE
POS_DATE
POS_LATITUDE
POS_LONGITUDE
je souhaite obtenir la chose suivante:
POS_VEHICULE, POS_DATE,POS_LATITUDE,POS_LONGITUDE
ou chaque ligne correspond a la derniere position de chaque véhicule.
je pense bien a GROUP BY (POS_VEHICULE) et MAX(POS_DATE) mais comment puis
je afficher POS_LATITUDE et POS_LONGITUDE correspondant à GROUP BY
(POS_VEHICULE) et MAX(POS_DATE).
Merci pour votre aide
Si la colonne POS_ID est la clé:
select
POS_VEHICULE, POS_DATE, POS_LATITUDE, POS_LONGITUDE
from T as T1
where POS_ID = (
select top 1 POS_ID
from T as T2
where T2.VEHICULE = T1.VEHICULE
order by POS_DATE desc
)
ou
select
POS_VEHICULE, POS_DATE, POS_LATITUDE, POS_LONGITUDE
from T as T1
where POS_DATE = (
select max(POS_DATE)
from T as T2
where T2.VEHICULE = T1.VEHICULE
)
ou
select
POS_VEHICULE, POS_DATE, POS_LATITUDE, POS_LONGITUDE
from T
where not exists (
select *
from T as T2
where T2.VEHICULE = T1.VEHICULE
and T2.POS_DATE > T1.POS_DATE
)
Steve Kass
Drew University
Laurent HOUTANT wrote:Bonjour,
je n'arrive pas a ecrire la requete suivante:
dans une table T_POSITION_POS
POS_ID
POS_VEHICULE
POS_DATE
POS_LATITUDE
POS_LONGITUDE
je souhaite obtenir la chose suivante:
POS_VEHICULE, POS_DATE,POS_LATITUDE,POS_LONGITUDE
ou chaque ligne correspond a la derniere position de chaque véhicule.
je pense bien a GROUP BY (POS_VEHICULE) et MAX(POS_DATE) mais comment puis
je afficher POS_LATITUDE et POS_LONGITUDE correspondant à GROUP BY
(POS_VEHICULE) et MAX(POS_DATE).
Merci pour votre aide
Si la colonne POS_ID est la clé:
select
POS_VEHICULE, POS_DATE, POS_LATITUDE, POS_LONGITUDE
from T as T1
where POS_ID = (
select top 1 POS_ID
from T as T2
where T2.VEHICULE = T1.VEHICULE
order by POS_DATE desc
)
ou
select
POS_VEHICULE, POS_DATE, POS_LATITUDE, POS_LONGITUDE
from T as T1
where POS_DATE = (
select max(POS_DATE)
from T as T2
where T2.VEHICULE = T1.VEHICULE
)
ou
select
POS_VEHICULE, POS_DATE, POS_LATITUDE, POS_LONGITUDE
from T
where not exists (
select *
from T as T2
where T2.VEHICULE = T1.VEHICULE
and T2.POS_DATE > T1.POS_DATE
)
Steve Kass
Drew University
Laurent HOUTANT wrote:Bonjour,
je n'arrive pas a ecrire la requete suivante:
dans une table T_POSITION_POS
POS_ID
POS_VEHICULE
POS_DATE
POS_LATITUDE
POS_LONGITUDE
je souhaite obtenir la chose suivante:
POS_VEHICULE, POS_DATE,POS_LATITUDE,POS_LONGITUDE
ou chaque ligne correspond a la derniere position de chaque véhicule.
je pense bien a GROUP BY (POS_VEHICULE) et MAX(POS_DATE) mais comment puis
je afficher POS_LATITUDE et POS_LONGITUDE correspondant à GROUP BY
(POS_VEHICULE) et MAX(POS_DATE).
Merci pour votre aide
Si la colonne POS_ID est la clé:
select
POS_VEHICULE, POS_DATE, POS_LATITUDE, POS_LONGITUDE
from T as T1
where POS_ID = (
select top 1 POS_ID
from T as T2
where T2.VEHICULE = T1.VEHICULE
order by POS_DATE desc
)
ou
select
POS_VEHICULE, POS_DATE, POS_LATITUDE, POS_LONGITUDE
from T as T1
where POS_DATE = (
select max(POS_DATE)
from T as T2
where T2.VEHICULE = T1.VEHICULE
)
ou
select
POS_VEHICULE, POS_DATE, POS_LATITUDE, POS_LONGITUDE
from T
where not exists (
select *
from T as T2
where T2.VEHICULE = T1.VEHICULE
and T2.POS_DATE > T1.POS_DATE
)
Steve Kass
Drew University
Laurent HOUTANT wrote:
Bonjour,
je n'arrive pas a ecrire la requete suivante:
dans une table T_POSITION_POS
POS_ID
POS_VEHICULE
POS_DATE
POS_LATITUDE
POS_LONGITUDE
je souhaite obtenir la chose suivante:
POS_VEHICULE, POS_DATE,POS_LATITUDE,POS_LONGITUDE
ou chaque ligne correspond a la derniere position de chaque véhicule.
je pense bien a GROUP BY (POS_VEHICULE) et MAX(POS_DATE) mais comment puis
je afficher POS_LATITUDE et POS_LONGITUDE correspondant à GROUP BY
(POS_VEHICULE) et MAX(POS_DATE).
Merci pour votre aide
Si la colonne POS_ID est la clé:
select
POS_VEHICULE, POS_DATE, POS_LATITUDE, POS_LONGITUDE
from T as T1
where POS_ID = (
select top 1 POS_ID
from T as T2
where T2.VEHICULE = T1.VEHICULE
order by POS_DATE desc
)
ou
select
POS_VEHICULE, POS_DATE, POS_LATITUDE, POS_LONGITUDE
from T as T1
where POS_DATE = (
select max(POS_DATE)
from T as T2
where T2.VEHICULE = T1.VEHICULE
)
ou
select
POS_VEHICULE, POS_DATE, POS_LATITUDE, POS_LONGITUDE
from T
where not exists (
select *
from T as T2
where T2.VEHICULE = T1.VEHICULE
and T2.POS_DATE > T1.POS_DATE
)
Steve Kass
Drew University
Laurent HOUTANT wrote:Bonjour,
je n'arrive pas a ecrire la requete suivante:
dans une table T_POSITION_POS
POS_ID
POS_VEHICULE
POS_DATE
POS_LATITUDE
POS_LONGITUDE
je souhaite obtenir la chose suivante:
POS_VEHICULE, POS_DATE,POS_LATITUDE,POS_LONGITUDE
ou chaque ligne correspond a la derniere position de chaque véhicule.
je pense bien a GROUP BY (POS_VEHICULE) et MAX(POS_DATE) mais comment puis
je afficher POS_LATITUDE et POS_LONGITUDE correspondant à GROUP BY
(POS_VEHICULE) et MAX(POS_DATE).
Merci pour votre aide
POS_VEHICULE, POS_DATE, POS_LATITUDE, POS_LONGITUDE
from T as T1
where POS_ID = (
select top 1 POS_ID
from T as T2
where T2.VEHICULE = T1.VEHICULE
order by POS_DATE desc
)
Si la colonne POS_ID est la clé:
select
POS_VEHICULE, POS_DATE, POS_LATITUDE, POS_LONGITUDE
from T as T1
where POS_ID = (
select top 1 POS_ID
from T as T2
where T2.VEHICULE = T1.VEHICULE
order by POS_DATE desc
)
ou
select
POS_VEHICULE, POS_DATE, POS_LATITUDE, POS_LONGITUDE
from T as T1
where POS_DATE = (
select max(POS_DATE)
from T as T2
where T2.VEHICULE = T1.VEHICULE
)
ou
select
POS_VEHICULE, POS_DATE, POS_LATITUDE, POS_LONGITUDE
from T
where not exists (
select *
from T as T2
where T2.VEHICULE = T1.VEHICULE
and T2.POS_DATE > T1.POS_DATE
)
Steve Kass
Drew University
Laurent HOUTANT wrote:
>Bonjour,
>je n'arrive pas a ecrire la requete suivante:
>dans une table T_POSITION_POS
>POS_ID
>POS_VEHICULE
>POS_DATE
>POS_LATITUDE
>POS_LONGITUDE
>
>je souhaite obtenir la chose suivante:
>
>POS_VEHICULE, POS_DATE,POS_LATITUDE,POS_LONGITUDE
>ou chaque ligne correspond a la derniere position de chaque véhicule.
>je pense bien a GROUP BY (POS_VEHICULE) et MAX(POS_DATE) mais comment
>je afficher POS_LATITUDE et POS_LONGITUDE correspondant à GROUP BY
>(POS_VEHICULE) et MAX(POS_DATE).
>Merci pour votre aide
>
>
>
>
POS_VEHICULE, POS_DATE, POS_LATITUDE, POS_LONGITUDE
from T as T1
where POS_ID = (
select top 1 POS_ID
from T as T2
where T2.VEHICULE = T1.VEHICULE
order by POS_DATE desc
)
Si la colonne POS_ID est la clé:
select
POS_VEHICULE, POS_DATE, POS_LATITUDE, POS_LONGITUDE
from T as T1
where POS_ID = (
select top 1 POS_ID
from T as T2
where T2.VEHICULE = T1.VEHICULE
order by POS_DATE desc
)
ou
select
POS_VEHICULE, POS_DATE, POS_LATITUDE, POS_LONGITUDE
from T as T1
where POS_DATE = (
select max(POS_DATE)
from T as T2
where T2.VEHICULE = T1.VEHICULE
)
ou
select
POS_VEHICULE, POS_DATE, POS_LATITUDE, POS_LONGITUDE
from T
where not exists (
select *
from T as T2
where T2.VEHICULE = T1.VEHICULE
and T2.POS_DATE > T1.POS_DATE
)
Steve Kass
Drew University
Laurent HOUTANT wrote:
>Bonjour,
>je n'arrive pas a ecrire la requete suivante:
>dans une table T_POSITION_POS
>POS_ID
>POS_VEHICULE
>POS_DATE
>POS_LATITUDE
>POS_LONGITUDE
>
>je souhaite obtenir la chose suivante:
>
>POS_VEHICULE, POS_DATE,POS_LATITUDE,POS_LONGITUDE
>ou chaque ligne correspond a la derniere position de chaque véhicule.
>je pense bien a GROUP BY (POS_VEHICULE) et MAX(POS_DATE) mais comment
>je afficher POS_LATITUDE et POS_LONGITUDE correspondant à GROUP BY
>(POS_VEHICULE) et MAX(POS_DATE).
>Merci pour votre aide
>
>
>
>
POS_VEHICULE, POS_DATE, POS_LATITUDE, POS_LONGITUDE
from T as T1
where POS_ID = (
select top 1 POS_ID
from T as T2
where T2.VEHICULE = T1.VEHICULE
order by POS_DATE desc
)
Si la colonne POS_ID est la clé:
select
POS_VEHICULE, POS_DATE, POS_LATITUDE, POS_LONGITUDE
from T as T1
where POS_ID = (
select top 1 POS_ID
from T as T2
where T2.VEHICULE = T1.VEHICULE
order by POS_DATE desc
)
ou
select
POS_VEHICULE, POS_DATE, POS_LATITUDE, POS_LONGITUDE
from T as T1
where POS_DATE = (
select max(POS_DATE)
from T as T2
where T2.VEHICULE = T1.VEHICULE
)
ou
select
POS_VEHICULE, POS_DATE, POS_LATITUDE, POS_LONGITUDE
from T
where not exists (
select *
from T as T2
where T2.VEHICULE = T1.VEHICULE
and T2.POS_DATE > T1.POS_DATE
)
Steve Kass
Drew University
Laurent HOUTANT wrote:
>Bonjour,
>je n'arrive pas a ecrire la requete suivante:
>dans une table T_POSITION_POS
>POS_ID
>POS_VEHICULE
>POS_DATE
>POS_LATITUDE
>POS_LONGITUDE
>
>je souhaite obtenir la chose suivante:
>
>POS_VEHICULE, POS_DATE,POS_LATITUDE,POS_LONGITUDE
>ou chaque ligne correspond a la derniere position de chaque véhicule.
>je pense bien a GROUP BY (POS_VEHICULE) et MAX(POS_DATE) mais comment
>je afficher POS_LATITUDE et POS_LONGITUDE correspondant à GROUP BY
>(POS_VEHICULE) et MAX(POS_DATE).
>Merci pour votre aide
>
>
>
>
ou encore
select T1.POS_VEHICULE,
T1.POS_LATITUDE,
T1.POS_LONGITUDE,
T1.POS_DATE
from T_POSITION_POS T1 inner join (select POS_VEHICULE,
MAX_DATE=max(POS_DATE) from T_POSITION_POS group by POS_VEHICULE)T2 on
T1.POS_DATE = T2.MAX_DATE
and T1.POS_VEHICULE= T2.POS_VEHICULE
La formulation 2 de "Steve Kass" reste la plus simple à appréhender.
Bien cordialement
Med Bouchenafa
a écrit dans le message de news:
uiOomn3$Si la colonne POS_ID est la clé:
select
POS_VEHICULE, POS_DATE, POS_LATITUDE, POS_LONGITUDE
from T as T1
where POS_ID = (
select top 1 POS_ID
from T as T2
where T2.VEHICULE = T1.VEHICULE
order by POS_DATE desc
)
ou
select
POS_VEHICULE, POS_DATE, POS_LATITUDE, POS_LONGITUDE
from T as T1
where POS_DATE = (
select max(POS_DATE)
from T as T2
where T2.VEHICULE = T1.VEHICULE
)
ou
select
POS_VEHICULE, POS_DATE, POS_LATITUDE, POS_LONGITUDE
from T
where not exists (
select *
from T as T2
where T2.VEHICULE = T1.VEHICULE
and T2.POS_DATE > T1.POS_DATE
)
Steve Kass
Drew University
Laurent HOUTANT wrote:Bonjour,
je n'arrive pas a ecrire la requete suivante:
dans une table T_POSITION_POS
POS_ID
POS_VEHICULE
POS_DATE
POS_LATITUDE
POS_LONGITUDE
je souhaite obtenir la chose suivante:
POS_VEHICULE, POS_DATE,POS_LATITUDE,POS_LONGITUDE
ou chaque ligne correspond a la derniere position de chaque véhicule.
je pense bien a GROUP BY (POS_VEHICULE) et MAX(POS_DATE) mais comment puis
je afficher POS_LATITUDE et POS_LONGITUDE correspondant à GROUP BY
(POS_VEHICULE) et MAX(POS_DATE).
Merci pour votre aide
ou encore
select T1.POS_VEHICULE,
T1.POS_LATITUDE,
T1.POS_LONGITUDE,
T1.POS_DATE
from T_POSITION_POS T1 inner join (select POS_VEHICULE,
MAX_DATE=max(POS_DATE) from T_POSITION_POS group by POS_VEHICULE)T2 on
T1.POS_DATE = T2.MAX_DATE
and T1.POS_VEHICULE= T2.POS_VEHICULE
La formulation 2 de "Steve Kass" reste la plus simple à appréhender.
Bien cordialement
Med Bouchenafa
<skass@drew.edu> a écrit dans le message de news:
uiOomn3$EHA.1452@TK2MSFTNGP11.phx.gbl...
Si la colonne POS_ID est la clé:
select
POS_VEHICULE, POS_DATE, POS_LATITUDE, POS_LONGITUDE
from T as T1
where POS_ID = (
select top 1 POS_ID
from T as T2
where T2.VEHICULE = T1.VEHICULE
order by POS_DATE desc
)
ou
select
POS_VEHICULE, POS_DATE, POS_LATITUDE, POS_LONGITUDE
from T as T1
where POS_DATE = (
select max(POS_DATE)
from T as T2
where T2.VEHICULE = T1.VEHICULE
)
ou
select
POS_VEHICULE, POS_DATE, POS_LATITUDE, POS_LONGITUDE
from T
where not exists (
select *
from T as T2
where T2.VEHICULE = T1.VEHICULE
and T2.POS_DATE > T1.POS_DATE
)
Steve Kass
Drew University
Laurent HOUTANT wrote:
Bonjour,
je n'arrive pas a ecrire la requete suivante:
dans une table T_POSITION_POS
POS_ID
POS_VEHICULE
POS_DATE
POS_LATITUDE
POS_LONGITUDE
je souhaite obtenir la chose suivante:
POS_VEHICULE, POS_DATE,POS_LATITUDE,POS_LONGITUDE
ou chaque ligne correspond a la derniere position de chaque véhicule.
je pense bien a GROUP BY (POS_VEHICULE) et MAX(POS_DATE) mais comment puis
je afficher POS_LATITUDE et POS_LONGITUDE correspondant à GROUP BY
(POS_VEHICULE) et MAX(POS_DATE).
Merci pour votre aide
ou encore
select T1.POS_VEHICULE,
T1.POS_LATITUDE,
T1.POS_LONGITUDE,
T1.POS_DATE
from T_POSITION_POS T1 inner join (select POS_VEHICULE,
MAX_DATE=max(POS_DATE) from T_POSITION_POS group by POS_VEHICULE)T2 on
T1.POS_DATE = T2.MAX_DATE
and T1.POS_VEHICULE= T2.POS_VEHICULE
La formulation 2 de "Steve Kass" reste la plus simple à appréhender.
Bien cordialement
Med Bouchenafa
a écrit dans le message de news:
uiOomn3$Si la colonne POS_ID est la clé:
select
POS_VEHICULE, POS_DATE, POS_LATITUDE, POS_LONGITUDE
from T as T1
where POS_ID = (
select top 1 POS_ID
from T as T2
where T2.VEHICULE = T1.VEHICULE
order by POS_DATE desc
)
ou
select
POS_VEHICULE, POS_DATE, POS_LATITUDE, POS_LONGITUDE
from T as T1
where POS_DATE = (
select max(POS_DATE)
from T as T2
where T2.VEHICULE = T1.VEHICULE
)
ou
select
POS_VEHICULE, POS_DATE, POS_LATITUDE, POS_LONGITUDE
from T
where not exists (
select *
from T as T2
where T2.VEHICULE = T1.VEHICULE
and T2.POS_DATE > T1.POS_DATE
)
Steve Kass
Drew University
Laurent HOUTANT wrote:Bonjour,
je n'arrive pas a ecrire la requete suivante:
dans une table T_POSITION_POS
POS_ID
POS_VEHICULE
POS_DATE
POS_LATITUDE
POS_LONGITUDE
je souhaite obtenir la chose suivante:
POS_VEHICULE, POS_DATE,POS_LATITUDE,POS_LONGITUDE
ou chaque ligne correspond a la derniere position de chaque véhicule.
je pense bien a GROUP BY (POS_VEHICULE) et MAX(POS_DATE) mais comment puis
je afficher POS_LATITUDE et POS_LONGITUDE correspondant à GROUP BY
(POS_VEHICULE) et MAX(POS_DATE).
Merci pour votre aide
ou encore
select T1.POS_VEHICULE,
T1.POS_LATITUDE,
T1.POS_LONGITUDE,
T1.POS_DATE
from T_POSITION_POS T1 inner join (select POS_VEHICULE,
MAX_DATE=max(POS_DATE) from T_POSITION_POS group by POS_VEHICULE)T2 on
T1.POS_DATE = T2.MAX_DATE
and T1.POS_VEHICULE= T2.POS_VEHICULE
La formulation 2 de "Steve Kass" reste la plus simple à appréhender.
Bien cordialement
Med Bouchenafa
a écrit dans le message de news:
uiOomn3$Si la colonne POS_ID est la clé:
select
POS_VEHICULE, POS_DATE, POS_LATITUDE, POS_LONGITUDE
from T as T1
where POS_ID = (
select top 1 POS_ID
from T as T2
where T2.VEHICULE = T1.VEHICULE
order by POS_DATE desc
)
ou
select
POS_VEHICULE, POS_DATE, POS_LATITUDE, POS_LONGITUDE
from T as T1
where POS_DATE = (
select max(POS_DATE)
from T as T2
where T2.VEHICULE = T1.VEHICULE
)
ou
select
POS_VEHICULE, POS_DATE, POS_LATITUDE, POS_LONGITUDE
from T
where not exists (
select *
from T as T2
where T2.VEHICULE = T1.VEHICULE
and T2.POS_DATE > T1.POS_DATE
)
Steve Kass
Drew University
Laurent HOUTANT wrote:Bonjour,
je n'arrive pas a ecrire la requete suivante:
dans une table T_POSITION_POS
POS_ID
POS_VEHICULE
POS_DATE
POS_LATITUDE
POS_LONGITUDE
je souhaite obtenir la chose suivante:
POS_VEHICULE, POS_DATE,POS_LATITUDE,POS_LONGITUDE
ou chaque ligne correspond a la derniere position de chaque véhicule.
je pense bien a GROUP BY (POS_VEHICULE) et MAX(POS_DATE) mais comment puis
je afficher POS_LATITUDE et POS_LONGITUDE correspondant à GROUP BY
(POS_VEHICULE) et MAX(POS_DATE).
Merci pour votre aide
ou encore
select T1.POS_VEHICULE,
T1.POS_LATITUDE,
T1.POS_LONGITUDE,
T1.POS_DATE
from T_POSITION_POS T1 inner join (select POS_VEHICULE,
MAX_DATE=max(POS_DATE) from T_POSITION_POS group by POS_VEHICULE)T2 on
T1.POS_DATE = T2.MAX_DATE
and T1.POS_VEHICULE= T2.POS_VEHICULE
La formulation 2 de "Steve Kass" reste la plus simple à appréhender.
Bien cordialement
Med Bouchenafa
<skass@drew.edu> a écrit dans le message de news:
uiOomn3$EHA.1452@TK2MSFTNGP11.phx.gbl...
Si la colonne POS_ID est la clé:
select
POS_VEHICULE, POS_DATE, POS_LATITUDE, POS_LONGITUDE
from T as T1
where POS_ID = (
select top 1 POS_ID
from T as T2
where T2.VEHICULE = T1.VEHICULE
order by POS_DATE desc
)
ou
select
POS_VEHICULE, POS_DATE, POS_LATITUDE, POS_LONGITUDE
from T as T1
where POS_DATE = (
select max(POS_DATE)
from T as T2
where T2.VEHICULE = T1.VEHICULE
)
ou
select
POS_VEHICULE, POS_DATE, POS_LATITUDE, POS_LONGITUDE
from T
where not exists (
select *
from T as T2
where T2.VEHICULE = T1.VEHICULE
and T2.POS_DATE > T1.POS_DATE
)
Steve Kass
Drew University
Laurent HOUTANT wrote:
Bonjour,
je n'arrive pas a ecrire la requete suivante:
dans une table T_POSITION_POS
POS_ID
POS_VEHICULE
POS_DATE
POS_LATITUDE
POS_LONGITUDE
je souhaite obtenir la chose suivante:
POS_VEHICULE, POS_DATE,POS_LATITUDE,POS_LONGITUDE
ou chaque ligne correspond a la derniere position de chaque véhicule.
je pense bien a GROUP BY (POS_VEHICULE) et MAX(POS_DATE) mais comment puis
je afficher POS_LATITUDE et POS_LONGITUDE correspondant à GROUP BY
(POS_VEHICULE) et MAX(POS_DATE).
Merci pour votre aide
ou encore
select T1.POS_VEHICULE,
T1.POS_LATITUDE,
T1.POS_LONGITUDE,
T1.POS_DATE
from T_POSITION_POS T1 inner join (select POS_VEHICULE,
MAX_DATE=max(POS_DATE) from T_POSITION_POS group by POS_VEHICULE)T2 on
T1.POS_DATE = T2.MAX_DATE
and T1.POS_VEHICULE= T2.POS_VEHICULE
La formulation 2 de "Steve Kass" reste la plus simple à appréhender.
Bien cordialement
Med Bouchenafa
a écrit dans le message de news:
uiOomn3$Si la colonne POS_ID est la clé:
select
POS_VEHICULE, POS_DATE, POS_LATITUDE, POS_LONGITUDE
from T as T1
where POS_ID = (
select top 1 POS_ID
from T as T2
where T2.VEHICULE = T1.VEHICULE
order by POS_DATE desc
)
ou
select
POS_VEHICULE, POS_DATE, POS_LATITUDE, POS_LONGITUDE
from T as T1
where POS_DATE = (
select max(POS_DATE)
from T as T2
where T2.VEHICULE = T1.VEHICULE
)
ou
select
POS_VEHICULE, POS_DATE, POS_LATITUDE, POS_LONGITUDE
from T
where not exists (
select *
from T as T2
where T2.VEHICULE = T1.VEHICULE
and T2.POS_DATE > T1.POS_DATE
)
Steve Kass
Drew University
Laurent HOUTANT wrote:Bonjour,
je n'arrive pas a ecrire la requete suivante:
dans une table T_POSITION_POS
POS_ID
POS_VEHICULE
POS_DATE
POS_LATITUDE
POS_LONGITUDE
je souhaite obtenir la chose suivante:
POS_VEHICULE, POS_DATE,POS_LATITUDE,POS_LONGITUDE
ou chaque ligne correspond a la derniere position de chaque véhicule.
je pense bien a GROUP BY (POS_VEHICULE) et MAX(POS_DATE) mais comment puis
je afficher POS_LATITUDE et POS_LONGITUDE correspondant à GROUP BY
(POS_VEHICULE) et MAX(POS_DATE).
Merci pour votre aide
plus élégant, sans sous requête :
select POS_VEHICULE, POS_DATE, POS_LATITUDE, POS_LONGITUDE
from T as T1
CROSS JOIN T as T2
where T1.POS_DATE = max(T2.POS_DATE)
and T1.VEHICULE = T2.VEHICULE
GROUP BY T2.VEHICULE
A +
--
Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste Delphi, web
Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html
Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com
************************ www.datasapiens.com *************************
Med Bouchenafa a écrit:ou encore
select T1.POS_VEHICULE,
T1.POS_LATITUDE,
T1.POS_LONGITUDE,
T1.POS_DATE
from T_POSITION_POS T1 inner join (select POS_VEHICULE,
MAX_DATE=max(POS_DATE) from T_POSITION_POS group by POS_VEHICULE)T2 on
T1.POS_DATE = T2.MAX_DATE
and T1.POS_VEHICULE= T2.POS_VEHICULE
La formulation 2 de "Steve Kass" reste la plus simple à appréhender.
Bien cordialement
Med Bouchenafa
a écrit dans le message de news:
uiOomn3$Si la colonne POS_ID est la clé:
select
POS_VEHICULE, POS_DATE, POS_LATITUDE, POS_LONGITUDE
from T as T1
where POS_ID = (
select top 1 POS_ID
from T as T2
where T2.VEHICULE = T1.VEHICULE
order by POS_DATE desc
)
ou
select
POS_VEHICULE, POS_DATE, POS_LATITUDE, POS_LONGITUDE
from T as T1
where POS_DATE = (
select max(POS_DATE)
from T as T2
where T2.VEHICULE = T1.VEHICULE
)
ou
select
POS_VEHICULE, POS_DATE, POS_LATITUDE, POS_LONGITUDE
from T
where not exists (
select *
from T as T2
where T2.VEHICULE = T1.VEHICULE
and T2.POS_DATE > T1.POS_DATE
)
Steve Kass
Drew University
Laurent HOUTANT wrote:Bonjour,
je n'arrive pas a ecrire la requete suivante:
dans une table T_POSITION_POS
POS_ID
POS_VEHICULE
POS_DATE
POS_LATITUDE
POS_LONGITUDE
je souhaite obtenir la chose suivante:
POS_VEHICULE, POS_DATE,POS_LATITUDE,POS_LONGITUDE
ou chaque ligne correspond a la derniere position de chaque véhicule.
je pense bien a GROUP BY (POS_VEHICULE) et MAX(POS_DATE) mais comment
puis je afficher POS_LATITUDE et POS_LONGITUDE correspondant à GROUP BY
(POS_VEHICULE) et MAX(POS_DATE).
Merci pour votre aide
plus élégant, sans sous requête :
select POS_VEHICULE, POS_DATE, POS_LATITUDE, POS_LONGITUDE
from T as T1
CROSS JOIN T as T2
where T1.POS_DATE = max(T2.POS_DATE)
and T1.VEHICULE = T2.VEHICULE
GROUP BY T2.VEHICULE
A +
--
Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste Delphi, web
Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html
Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com
************************ www.datasapiens.com *************************
Med Bouchenafa a écrit:
ou encore
select T1.POS_VEHICULE,
T1.POS_LATITUDE,
T1.POS_LONGITUDE,
T1.POS_DATE
from T_POSITION_POS T1 inner join (select POS_VEHICULE,
MAX_DATE=max(POS_DATE) from T_POSITION_POS group by POS_VEHICULE)T2 on
T1.POS_DATE = T2.MAX_DATE
and T1.POS_VEHICULE= T2.POS_VEHICULE
La formulation 2 de "Steve Kass" reste la plus simple à appréhender.
Bien cordialement
Med Bouchenafa
<skass@drew.edu> a écrit dans le message de news:
uiOomn3$EHA.1452@TK2MSFTNGP11.phx.gbl...
Si la colonne POS_ID est la clé:
select
POS_VEHICULE, POS_DATE, POS_LATITUDE, POS_LONGITUDE
from T as T1
where POS_ID = (
select top 1 POS_ID
from T as T2
where T2.VEHICULE = T1.VEHICULE
order by POS_DATE desc
)
ou
select
POS_VEHICULE, POS_DATE, POS_LATITUDE, POS_LONGITUDE
from T as T1
where POS_DATE = (
select max(POS_DATE)
from T as T2
where T2.VEHICULE = T1.VEHICULE
)
ou
select
POS_VEHICULE, POS_DATE, POS_LATITUDE, POS_LONGITUDE
from T
where not exists (
select *
from T as T2
where T2.VEHICULE = T1.VEHICULE
and T2.POS_DATE > T1.POS_DATE
)
Steve Kass
Drew University
Laurent HOUTANT wrote:
Bonjour,
je n'arrive pas a ecrire la requete suivante:
dans une table T_POSITION_POS
POS_ID
POS_VEHICULE
POS_DATE
POS_LATITUDE
POS_LONGITUDE
je souhaite obtenir la chose suivante:
POS_VEHICULE, POS_DATE,POS_LATITUDE,POS_LONGITUDE
ou chaque ligne correspond a la derniere position de chaque véhicule.
je pense bien a GROUP BY (POS_VEHICULE) et MAX(POS_DATE) mais comment
puis je afficher POS_LATITUDE et POS_LONGITUDE correspondant à GROUP BY
(POS_VEHICULE) et MAX(POS_DATE).
Merci pour votre aide
plus élégant, sans sous requête :
select POS_VEHICULE, POS_DATE, POS_LATITUDE, POS_LONGITUDE
from T as T1
CROSS JOIN T as T2
where T1.POS_DATE = max(T2.POS_DATE)
and T1.VEHICULE = T2.VEHICULE
GROUP BY T2.VEHICULE
A +
--
Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste Delphi, web
Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html
Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com
************************ www.datasapiens.com *************************
Med Bouchenafa a écrit:ou encore
select T1.POS_VEHICULE,
T1.POS_LATITUDE,
T1.POS_LONGITUDE,
T1.POS_DATE
from T_POSITION_POS T1 inner join (select POS_VEHICULE,
MAX_DATE=max(POS_DATE) from T_POSITION_POS group by POS_VEHICULE)T2 on
T1.POS_DATE = T2.MAX_DATE
and T1.POS_VEHICULE= T2.POS_VEHICULE
La formulation 2 de "Steve Kass" reste la plus simple à appréhender.
Bien cordialement
Med Bouchenafa
a écrit dans le message de news:
uiOomn3$Si la colonne POS_ID est la clé:
select
POS_VEHICULE, POS_DATE, POS_LATITUDE, POS_LONGITUDE
from T as T1
where POS_ID = (
select top 1 POS_ID
from T as T2
where T2.VEHICULE = T1.VEHICULE
order by POS_DATE desc
)
ou
select
POS_VEHICULE, POS_DATE, POS_LATITUDE, POS_LONGITUDE
from T as T1
where POS_DATE = (
select max(POS_DATE)
from T as T2
where T2.VEHICULE = T1.VEHICULE
)
ou
select
POS_VEHICULE, POS_DATE, POS_LATITUDE, POS_LONGITUDE
from T
where not exists (
select *
from T as T2
where T2.VEHICULE = T1.VEHICULE
and T2.POS_DATE > T1.POS_DATE
)
Steve Kass
Drew University
Laurent HOUTANT wrote:Bonjour,
je n'arrive pas a ecrire la requete suivante:
dans une table T_POSITION_POS
POS_ID
POS_VEHICULE
POS_DATE
POS_LATITUDE
POS_LONGITUDE
je souhaite obtenir la chose suivante:
POS_VEHICULE, POS_DATE,POS_LATITUDE,POS_LONGITUDE
ou chaque ligne correspond a la derniere position de chaque véhicule.
je pense bien a GROUP BY (POS_VEHICULE) et MAX(POS_DATE) mais comment
puis je afficher POS_LATITUDE et POS_LONGITUDE correspondant à GROUP BY
(POS_VEHICULE) et MAX(POS_DATE).
Merci pour votre aide
C'est peut-être élègant et même intuitif mais faux
SQL n'accepte pas de fonctions d'agrégation (MAX ici) dans la clause WHERE
C'est peut-être élègant et même intuitif mais faux
SQL n'accepte pas de fonctions d'agrégation (MAX ici) dans la clause WHERE
C'est peut-être élègant et même intuitif mais faux
SQL n'accepte pas de fonctions d'agrégation (MAX ici) dans la clause WHERE
C'est peut-être élègant et même intuitif mais faux
SQL n'accepte pas de fonctions d'agrégation (MAX ici) dans la clause WHERE
C'est peut-être élègant et même intuitif mais faux
SQL n'accepte pas de fonctions d'agrégation (MAX ici) dans la clause WHERE
C'est peut-être élègant et même intuitif mais faux
SQL n'accepte pas de fonctions d'agrégation (MAX ici) dans la clause WHERE