• 締切済み

sqlの作り方

テーブル'個人' 個人コード、履歴、名前 1 , 1 , 山田 1 , 2 , 木下 2 , 1 , 大木 3 , 1 , 佐田 3 , 2 , 山下 テーブル'会費' 個人コード、日付、 金額 1 , 2009/09/01 , 1000 2 , 2009/09/03 , 2000 3 , 2009/09/04 , 1000 3 , 2009/09/05 , 1000 上記のテーブル2個があります、個人テーブルの履歴は結婚などで名前が変わった方なのですが、最終履歴の名前を出したいのですがうまくいきません、結果は以下のようにしたいのですが、どなたか御教授くださいませ、宜しく御願いします 個人コード、名前、日付、 金額 1 , 木下 , 2009/09/01 , 1000 2 , 大木 , 2009/09/03 , 2000 3  , 山下 , 2009/09/04 , 1000 3 , 山下 , 2009/09/05 , 1000

みんなの回答

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

>where 個人コード =1 をどこに追加したらよい この場合、FROMで指示された別名k1テーブルにも INNER JOIN する(仮想)テーブル別名k2にも個人コードの フィールドがあるため、明示的にテーブル情報をつけてやればいいでしょう 付ける位置は単純にケツが妥当でしょう SELECT k1.個人コード,k2.名前,k1.日付, k1.金額 FROM 会費 AS k1 INNER JOIN (SELECT 個人コード,名前 FROM 個人 WHERE (個人コード, 履歴) IN (SELECT 個人コード,MAX(履歴) AS 履歴 FROM 個人 GROUP BY 個人コード) ) AS k2 ON k1.個人コード=k2.個人コード WHERE k1.個人コード=1

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

たとえばこんな感じで SELECT k1.個人コード,k2.名前,k1.日付, k1.金額 FROM 会費 AS k1 INNER JOIN (SELECT 個人コード,名前 FROM 個人 WHERE (個人コード, 履歴) IN (SELECT 個人コード,MAX(履歴) AS 履歴 FROM 個人 GROUP BY 個人コード) ) AS k2 ON k1.個人コード=k2.個人コード

kozoudesu
質問者

お礼

回答有難うございました うまくいきました、もう少し質問ですが、これに個人番号指定は出来ますでしょうか、たとえば 個人コード=1などですが、where 個人コード =1 をどこに追加したらよいのでしょうか、色々試してみたのですがうまくいきませんたびたびご面倒をお掛けしますが宜しく御願いします

関連するQ&A