Comunidad de diseño web y desarrollo en internet online

Consulta SQL, Optener el maximo de los estados.-

Citar            
MensajeEscrito el 17 Jun 2008 05:26 pm
Tengo una tabla llamado estados:

Código :

status
Idstatus Idproyecto estados
  1          2         1
  2          3         2
  3          1         1
  4          2         2
  5          1         2
  6          2         4
  7          3         3
  8          1         4
  9          1         6


Cree la consulta Query = select Max(Idstatus) Id, Idproyecto, estados from status group by (Idproyecto), esto me retorna:


Código :

status
Idstatus Idproyecto estados
  6          2         1
  7          3         2
  9          1         1


y lo que espero que me retorne seria:

Código :

status
Idstatus Idproyecto estados
  6          2         4
  7          3         3
  9          1         6


Osea el ultimo estado por cada proyecto.- No es en que me estoy equivocando :S

Por york3rs

Claber

561 de clabLevel

1 tutorial

Genero:Masculino  

LA___Chile

msie7
Citar            
MensajeEscrito el 17 Jun 2008 10:15 pm
Han pasado las horas y todavia no encuentro una solucion al problema, al parecer ya tengo un poco fundidas mis neuronas, haci que me tomare un break.-

Ademas recuerto que una vez con un amigo realice una pregunta semejante a esta, pero no me acuerdo como fue, y no lo he podido ubicar para ver si èl se recuerda.-

Por york3rs

Claber

561 de clabLevel

1 tutorial

Genero:Masculino  

LA___Chile

msie7
Citar            
MensajeEscrito el 17 Jun 2008 10:51 pm

Código :

SELECT idproyecto, MAX(estados) FROM status GROUP BY idproyecto

Por Darel

725 de clabLevel

5 tutoriales

 

I'm a human

opera
Citar            
MensajeEscrito el 17 Jun 2008 10:54 pm
Gracias Darel por tu respuesta, pero no me sirve ya que esa consulta me retorna estatus mas alto por cada proyecto, no el ultimo.-
Explicacion, un proyecto puede tener los estados 1-5-6-7-8 como 1-6-2-9-1.-
:S pense que habia encontrado la solucion.-

Por york3rs

Claber

561 de clabLevel

1 tutorial

Genero:Masculino  

LA___Chile

msie7
Citar            
MensajeEscrito el 18 Jun 2008 06:39 am

Código :

SELECT
   *
FROM 
   (
      SELECT
         * 
      FROM`status`
      ORDER BY `estados` DESC
   ) AS `EstadosOrdenados`
GROUP BY `idproyecto` ORDER BY idstatus

Por Maikel

BOFH

5575 de clabLevel

22 tutoriales
5 articulos

Genero:Masculino   Team Cristalab

Claber de baja indefinida

firefox
Citar            
MensajeEscrito el 18 Jun 2008 05:40 pm
Muchas gracias Maikel por la respuesta, por lo que veo era mas facil de lo que pensaba.-

Un amigo que dio la siguiente solucion. Igual la dejo por si a alguien le sirve:

Código :

drop table tmp_4;
-------------------------------   

create temporary table tmp_4
(idstatus Idestados(2),Idproyectos varchar(10));
-------------------------------   

insert into tmp_4 (Idestatus,Idproyectos)
select max(Idestados) Idstatus, Idproyectos from estatus group by 2;
-------------------------------   
select a.* 
from estatus a, tmp_4 b
where a.Idstatus = b.Idstatus
order by 2;

Por york3rs

Claber

561 de clabLevel

1 tutorial

Genero:Masculino  

LA___Chile

msie7

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.