mysql データベースで 2 つの行の違いを作ろうとしています。
ID、キロメートル、日付、car_id、car_driver などを含むこのテーブルがあります。
常に正しい順序でテーブルに情報を入力するとは限らないため、次のような情報になる可能性があります。
ID | Kilometers | date | car_id | car_driver | ...
1 | 100 | 2012-05-04 | 1 | 1
2 | 200 | 2012-05-08 | 1 | 1
3 | 1000 | 2012-05-25 | 1 | 1
4 | 600 | 2012-05-16 | 1 | 1
select ステートメントを使用すると、テーブルを正しく並べ替えることができます。
SELECT * FROM mytable ORDER BY car_driver ASC, car_id ASC, date ASC
私はこれを取得します:
ID | Kilometers | date | car_id | car_driver | ...
1 | 100 | 2012-05-04 | 1 | 1
2 | 200 | 2012-05-08 | 1 | 1
4 | 600 | 2012-05-16 | 1 | 1
3 | 1000 | 2012-05-25 | 1 | 1
ここで、基本的にこの追加情報があるビューを作成したいと思います: 最後の日付からのキロメートル数と、次のようなものを取得したいと思います:
ID | Kilometers | date | car_id | car_driver | number_km_since_last_date
1 | 100 | 2012-05-04 | 1 | 1 | 0
2 | 200 | 2012-05-08 | 1 | 1 | 100
4 | 600 | 2012-05-16 | 1 | 1 | 400
3 | 1000 | 2012-05-25 | 1 | 1 | 400
やりたいことを実行するために INNER JOIN を実行することを考えましたが、正しくソートされていないため、ID で結合できないと感じています。
私が望むものを達成する方法はありますか?
INNER JOIN で使用できるように、row_number のようなビューを作成しますか?