Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Jul 17th, 2012  |  syntax: None  |  size: 1.00 KB  |  hits: 18  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. MySQL: Get difference between two values in one table (multiple userids)?
  2. date          userid   points
  3. 2012-05-01    1        23
  4. 2012-06-01    1        34
  5. 2012-07-01    1        44
  6. 2012-05-01    2        78
  7. 2012-06-01    2        94
  8. 2012-07-01    2        99
  9. 2012-06-01    3         2
  10. 2012-07-01    3         9
  11.        
  12. SELECT t1.userid, t1.points - t2.points AS mpoints FROM (
  13.         SELECT userid,points FROM `userscores`
  14.         WHERE YEAR(date) = YEAR('2012-05-01')
  15.         AND MONTH(date) = MONTH('2012-05-01') )
  16.         AS t1
  17.     JOIN (
  18.         SELECT userid,points FROM `userscores`
  19.         WHERE YEAR(date) = YEAR('2012-04-01')
  20.         AND MONTH(date) = MONTH('2012-04-01') )
  21.         AS t2
  22.     ORDER BY mpoints DESC, t1.userid DESC;
  23.        
  24. SELECT ul.userid,
  25.            ul.points - COALESCE(uf.points, 0) AS points_difference
  26.       FROM userscores ul
  27.  LEFT JOIN
  28.            (SELECT userid, points FROM userscores WHERE `date` = '2012-05-01') AS uf
  29.         ON uf.userid = ul.userid
  30.      WHERE ul.date = '2012-06-01'