次の表があります。
Id revenue LogAt playlog LogAt creds playlog Id
9673648 26.02.2013 13:46 26.02.2013 13:37 13 178849374
9673648 26.02.2013 13:46 26.02.2013 13:38 13 178849795
9673648 26.02.2013 13:46 26.02.2013 13:39 13 178850630
9673648 26.02.2013 13:46 26.02.2013 13:41 13 178851326
9673648 26.02.2013 13:46 26.02.2013 13:33 13 178847056
9673648 26.02.2013 13:46 26.02.2013 13:34 13 178847796
9673648 26.02.2013 13:46 26.02.2013 13:36 13 178848715
9673648 26.02.2013 13:46 26.02.2013 13:32 13 178846609
9673648 26.02.2013 13:46 26.02.2013 13:32 13 178846250
実際にはもっと長く、このように複数回リストされている ID の「グループ」がはるかに多く、各グループの唯一の違いは、プレイログ ログ時間とプレイログ ID です。
この例では、playlog logat の時刻が 13:41 である行を選択する必要があります。また、ID の他のすべてのグループについては、「最新の」playlog logat 行を含む行が必要です。これらすべての行のうち、creds を合計する必要があります。
IDのグループごとにこの1行をフィルタリングする必要があると思いますが、方法がわかりません。多分min()/max()で何か?
私の rdbms は、Microsoft sql サーバー管理スタジオです。
テーブルは、次の結合の結果です。
select *
from credits
inner join user on credits.userid = user.id
inner join sessionlog on user.id = sessionlog.userid
inner join playlog on sessionlog.id = playlog.sessionlogid