sql - MySQL select date range from table where there's only one column for date -


having record in mysql database:


 emp_name |   team   |  start date   | level | ----------+----------+---------------+-------- john      |  alpha   |  2013-may-28  |   1   | john      |  beta    |  2013-apr-05  |   3   | john      |  beta    |  2013-jan-03  |   1   | john      |  gamma   |  2012-dec-04  |   3   | john      |  gamma   |  2012-sep-28  |   2   | john      |  gamma   |  2012-sep-11  |   1   | john      |  beta    |  2012-jul-17  |   3   | john      |  beta    |  2012-may-03  |   1   | john      |  alpha   |  2012-feb-12  |   3   | john      |  alpha   |  2012-jan-01  |   1   | 

how should know john member of team:

       |        |  ---------------------------------  alpha | 2012-jan-01 | 2012-may-03  beta  | 2012-may-03 | 2012-sep-11  gamma | 2012-sep-11 | 2013-jan-03  beta  | 2013-jan-03 | 2013-may-28  alpha | 2013-may-28 | 

i don't know put in clause achieve this..i need have team name, date started on team, , end date on team..level column in not important..

select emp_name, team, min(start_date) start_date, end_date   (     select t1.emp_name, t1.team, t1.start_date, min(t2.start_date) end_date       table1 t1  left join table1 t2         on t1.emp_name = t2.emp_name        , t1.team != t2.team        , t1.start_date < t2.start_date   group t1.emp_name, t1.team, t1.start_date) t3 group emp_name, team, end_date order start_date 

demo: sql fiddle


Comments

Popular posts from this blog

php - Calling a template part from a post -

Firefox SVG shape not printing when it has stroke -

How to mention the localhost in android -