sql - MySQL: Subtract two values in rows in table A for each member in table B -


i have written code in java , want know if can more efficiently in sql statement.

i have 2 tables. 1 holds member's data, other holds measurements.

members  id  | name  ----------  001 | mary  002 | jane  003 | anne   measurements   idmember | date       |  weight   -------------------------------   001      | 2013-06-21 |  65   002      | 2013-06-23 |  68   003      | 2013-06-21 |  75   001      | 2013-09-20 |  64   002      | 2013-06-21 |  70   001      | 2014-01-18 |  62   003      | 2013-06-21 |  74   002      | 2013-06-21 |  69 

what need able find total amount of weight lost (or gained).

this means looking @ each member , subtracting last measurement first , summing total.

thanks!

select sum(s0.w - s1.w) total_weight_loss (select idmember, max(weight) w measurements m       m.date = (select min(date)  measurements n                       m.idmember = n.idmember)       group idmember) s0 join (select idmember, min(weight) w measurements m       m.date = (select max(date)  measurements n                       m.idmember = n.idmember)       group idmember) s1 on s0.idmember = s1.idmember 

edit

since turned out there measurements.id, difficulties related handling of measurements on same date can avoided altogether this:

select sum(s0.w - s1.w) total_weight_loss (select idmember, weight w measurements m       m.id = (select min(id) measurements n                     m.idmember = n.idmember)) s0 join (select idmember, weight w measurements m       m.id = (select max(id) measurements n                     m.idmember = n.idmember)) s1 on s0.idmember = s1.idmember 

Comments

Popular posts from this blog

php - SPIP: From Tag directly to an article -

jquery - isAjaxRequest always return false -

ruby on rails - In a controller spec, how to find a specific tag in the generated view? -