開始日で履歴を保持している商品マスタをLEFT JOINしたい場合。
ShohinT(商品マスタ)
| ShohinCD | YYMMDD |
SELECT *
FROM UriageT
LEFT JOIN ShohinT
ON UriageT.ShohinCD = ShohinT.ShohinCD
AND ShohinT.YYMMDD =
(SELECT MAX(ShohinT.YYMMDD) AS F1
FROM ShohinT AS S2
WHERE S2.ShohinCD = UriageT.ShohinCD
AND S2.YYMMDD <= UriageT.YYMMDD)
売上テーブルの売上日(UriageT.YYMMDD)以前で最大日の商品マスタをJOIN。ONの中でサブクエリを書けばできた。
SQLServerでもMySQLでも同じそう。