• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:日付が直前のレコードを取得したい)

日付が直前のレコードを取得する方法

このQ&Aのポイント
  • 購入テーブルと商品マスタを結合して、直前の商品名を取得する方法について説明します。
  • 適用開始日を降順にソートし、先頭のレコードを取得することで、直前の商品名を特定します。
  • 購入テーブルと商品マスタの結合により、購入日直前に適用されていた商品名を取得することができます。

質問者が選んだベストアンサー

  • ベストアンサー
  • WDY
  • ベストアンサー率27% (134/487)
回答No.1

こうですか? SELECT 商品ランク.商品コード, 商品ランク.購入日, 商品ランク.商品名 FROM ( SELECT @ランク:= IF(@添付商品コード = テーブルA.商品コード, @ランク+1, 1) AS カラム1, @添付商品コード := テーブルA.商品コード as カラム2, テーブルA.* FROM (SELECT 商品マスタ.商品コード, 購入テーブル.購入日, 商品マスタ.商品名e, 商品マスタ.適用開始日 FROM 購入テーブル LEFT JOIN 商品マスタ on 購入テーブル.商品コード = 商品マスタ.商品コード WHERE 購入テーブル.購入日 >= 商品マスタ.適用開始日 ORDER BY 購入テーブル.購入日 ASC, 商品マスタ.商品コード ASC, 商品マスタ.適用開始日 DESC ) as テーブルA CROSS JOIN (SELECT @添付商品コード:=0 , @ランク:=0) AS ダミーテーブル ) as 商品ランク Where 商品ランク.カラム1 = 1 ORDER BY 商品ランク.商品コード ASC, 商品ランク.購入日 ASC

yaepee
質問者

お礼

ありがとうございます。 目的の結果を得ることができました。 CROSS JOIN は思いつきませんでした。 感謝です。

関連するQ&A