OVH Cloud OVH Cloud

requête sql maître détail...

1 réponse
Avatar
Pierre
Bonjour,

Une requête SQL... simple me direz-vous,
maître/détails... toujours simple (me direz-vous),
avec seulement une ligne de détail... moins simple, n'est-ce pas ?

Ma demande est donc la suivante :
je cherche le SQL pour sélectionner les éléments à partir de deux tables en
relation maitre/detail, et la requête ne doit retourner qu'une seule ligne
de détail. C'est pour un récapitulatif.
Exemple concret : un stock, et des mouvements de stocks.
Pour chaque ligne de stock, renvoyer la ligne de stock et le dernier (et
seulement le dernier) mouvement de stock.
Il y a une date dans la table des mouvements de stocks.

Pour retourner toutes les lignes de stocks et de mouvements de stocks, le
SQL est :
select s.*, d.* from stock s
left join stock_detail d on d.stock_id=s.stock_id

Comment faire evoluer cette requête pour que seule la ligne la plus récente
de stock_detail soit sélectionnée ?

Merci d'avance de vos suggestions.

A plus.

Pierre.

1 réponse

Avatar
Med Bouchenafa
Voici un début de piste

SELECT s.stock_id, Max(d.ColonneDate)
FROM stock s INNER JOIN stock_detail d ON d.stock_id=s.stock_id
GROUP BY s.stock_id


--
Bien cordialement
Med Bouchenafa



"Pierre" a écrit dans le message de news:

Bonjour,

Une requête SQL... simple me direz-vous,
maître/détails... toujours simple (me direz-vous),
avec seulement une ligne de détail... moins simple, n'est-ce pas ?

Ma demande est donc la suivante :
je cherche le SQL pour sélectionner les éléments à partir de deux tables
en relation maitre/detail, et la requête ne doit retourner qu'une seule
ligne de détail. C'est pour un récapitulatif.
Exemple concret : un stock, et des mouvements de stocks.
Pour chaque ligne de stock, renvoyer la ligne de stock et le dernier (et
seulement le dernier) mouvement de stock.
Il y a une date dans la table des mouvements de stocks.

Pour retourner toutes les lignes de stocks et de mouvements de stocks, le
SQL est :
select s.*, d.* from stock s
left join stock_detail d on d.stock_id=s.stock_id

Comment faire evoluer cette requête pour que seule la ligne la plus
récente de stock_detail soit sélectionnée ?

Merci d'avance de vos suggestions.

A plus.

Pierre.