私は解決策を見つけようとしていましたが、それが単純に見えても成功しませんでした。だからこれは初心者の質問かもしれません...
3列のテーブルuserscoresがあります。
date userid points
2012-05-01 1 23
2012-06-01 1 34
2012-07-01 1 44
2012-05-01 2 78
2012-06-01 2 94
2012-07-01 2 99
2012-06-01 3 2
2012-07-01 3 9
次に、ユーザーごとに2012-05-01と2012-06-01のポイントの差を取得する必要があります。
存在しないユーザーのポイント(ユーザーID 3の例)は、2-0として計算する必要があります...このために、COALESCE(qa_points、0)を使用できると思います。
計算のために2つのサブクエリを組み合わせる方法について読みましたが、実装に失敗しました。
助けていただければ幸いです。
PS:これは機能していません:
SELECT t1.userid, t1.points - t2.points AS mpoints FROM (
SELECT userid,points FROM `userscores`
WHERE YEAR(date) = YEAR('2012-05-01')
AND MONTH(date) = MONTH('2012-05-01') )
AS t1
JOIN (
SELECT userid,points FROM `userscores`
WHERE YEAR(date) = YEAR('2012-04-01')
AND MONTH(date) = MONTH('2012-04-01') )
AS t2
ORDER BY mpoints DESC, t1.userid DESC;