VS2005 SQLServer maxで取得したレコードIDを取りたい


岩男  2008-06-09 11:44:51  No: 139861  IP: 192.*.*.*

言語:VS2005
DB:SQLServer2005

複数のテーブルを組み合わせてワークテーブルを作りレポートを出すのですが
一回のSQLでうまくデータが取り出せなくてこまっています。

やりたい事。

仮の名前「テスト1」テーブル内に「ID」フィールド:int(IDENTITY)、「日付」フィールド:nchar(10)、「ユーザーID」フィールド:intがあります。

ユーザーIDでグルーピングして「日付」フィールドのmaxを取り、そのmaxのレコード日付のIDをワークテーブルにInsertしたいと考えています。

insert into ワークテスト ( ユーザーID, 日付, ID )
select ユーザーID,max(日付),max(ID) from テスト1
where 日付<'今日' group by ユーザーID

とやったのですが、IDのMaxが必ずしも日付のmaxではないので
困ってしまっている状態です。

これを一回のコマンドでワークテーブルにInsertする事は可能でしょうか?

宜しくお願いします。

編集 削除