Bonjour,

Pour ma première contribution à ce forum, j'aimerais avoir une solution pour simuler une boucle foreach dans une requête SQL.

Voici le contexte, relativement simple soit dit en passant :
J'ai une table avec des articles, des prix, et des dates de création du prix. La date est stockée en format nombre du type '20170101'.

Un article possède plusieurs prix, mais un seul qui est celui actuel.

J'aimerais trouver, pour chaque articles, le prix qu'il avait à une date donnée. Ce qui revient à dire, trouver pour chaque article, le prix dont la date de création est la plus proche inférieure à une date donnée.

J'aimerais donc faire quelque chose du genre :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
SELECT LIMIT 1 Article, Prix, DateCreation
FROM Tarif
WHERE DateCreation < 20170801
ORDER BY DateCreation DESC
Mais pour chaque article. Donc l'imbriquer dans une sorte de :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
FOREACH SELECT DISTINCT Article
FROM Tarif
...
Bien sûr ma syntaxe est incorrecte. Pouvez-vous m'aiguiller ?

Merci.