2日後から問題を解決するのに苦労しています。値を順番に取得し、mySQLを使用して行を引く
私は、SQLテーブルの連続した行に対して減算を行いますが、前に値を並べ替えることで行いたいと思います。私はこれらのように私のテーブルを持っている。例えば
:
Name | Activity | Day
John | Tennis | Day10
Bob | Swimming | Day9
Mathilda | Tennis | Day2
John | Swimming | Day2
Bob | Tennis | Day2
John | Computer Science | Day 10
この表では、私は、複数のアクティビティ2つのアクティビティ間の時間は何を取得する人のために知っていただきたいと思います。
この例では、日を差し引くことができれば、JohnとBobが2つのアクティビティを持ち、Johnの8日間の最大休憩に達しています。
私はそうのようにそれを行うことを試みた:
SET @previousDay:=0;
SELECT Name, days, @previousDay - day, @previousDay:=day
FROM table
WHERE Name IN (SELECT Name FROM table group by Name having count(Name) > 1)
ORDER BY Name, Day
しかし、ORDER BYがsubstraction後に行われるように、それは完全に偽です。ソートされた日の連続した値を持つ減算を作成したいので、良い結果は表示されません。
INの結果を並べ替えることができないようですので、私の問題を解決する方法があるかどうか知っていますか?
ありがとうございました!
ご参考までに:どのようにテーブルを正しくフォーマットするかわからないので、何か助けていただければ幸いです!
本当に有益な助けとご意見をいただき、ありがとうございます。 テーブルの@n <>の名前の条件のために、私は空白の値しか得られません。理由はわかりません。 selectクエリで値の名前を@nに代入しようとしましたが、何も変更されません。 私はこれを解決しようとします。 お返事ありがとうございます私はあなたのコードを見て多くのことを学びました。 – Mike
@Mike。 。 。私は何かを残しました。 –