Foros del Web » Programando para Internet » PHP »

Consulta de SELECT DISTINCT(proceso),MAX(id) WHERE fecha>'0000-00-00'

Estas en el tema de Consulta de SELECT DISTINCT(proceso),MAX(id) WHERE fecha>'0000-00-00' en el foro de PHP en Foros del Web. Como podria hacerte esta consulta: Que me despliegue el ID mayor de cada proceso: Código PHP: ID             PROCESO                   FECHA 10             90                         0000 - 00 - 00 9               90                         0000 - 00 ...
  #1 (permalink)  
Antiguo 17/10/2007, 20:23
 
Fecha de Ingreso: noviembre-2005
Ubicación: Torreon Coahuila
Mensajes: 100
Antigüedad: 18 años, 5 meses
Puntos: 1
Consulta de SELECT DISTINCT(proceso),MAX(id) WHERE fecha>'0000-00-00'

Como podria hacerte esta consulta:

Que me despliegue el ID mayor de cada proceso:
Código PHP:
ID             PROCESO                   FECHA

10             90                         0000
-00-00
9               90                         0000
-00-00
8               60                         0000
-00-00
7               200                       0000
-00-00
6               60                         0000
-00-00
5               70                         0000
-00-00
4               200                       0000
-00-00
3               70                         0000
-00-00
2               50                         0000
-00-00
1               50                         0000
-00-00 
Estos resultados serian
Código PHP:
50   del proceso 50 el mayor es el ID 2
60   del proceso 60 el mayor es el ID 8
70   del proceso 70 el mayor es el ID 5
90   del proceso 90 el mayor es el ID 10
200 del proceso 200 el mayor es el ID 7

Que me mostrara solo los siguiente registros
2
8
5
10

Código PHP:
SELECT DISTINCT(proceso),MAX(idFROM tabla WHERE fecha>'0000-00-00' 
Es correcto esto ultimo? porque no me sale

Saludos y que esten bien

Última edición por losporros; 18/10/2007 a las 14:51
  #2 (permalink)  
Antiguo 18/10/2007, 02:37
 
Fecha de Ingreso: febrero-2007
Mensajes: 1.292
Antigüedad: 17 años, 3 meses
Puntos: 13
Re: Mostrar registros con Condicion despues de GROUP BY, HAVING da Error

Cita:
Se puede hacer un having de registros ya agrupados??
Es más, solo se puece hacer un having de registros ya agrupados, pero en este caso el registro agrupado es "pro_c_trabajo.id"

La condición que quieres ponerla debería ir en el WHERE.

Un saludo
  #3 (permalink)  
Antiguo 18/10/2007, 11:02
Avatar de BrujoNic
Super Moderador
 
Fecha de Ingreso: noviembre-2001
Ubicación: Costa Rica/Nicaragua
Mensajes: 16.935
Antigüedad: 22 años, 5 meses
Puntos: 655
Re: Mostrar registros con Condicion despues de GROUP BY, HAVING da Error

losporros, por favor...

Esta sección se llama BD y NO programación, coloca la sentencia SQL pura y NOOOO varibles de programación. Si lo haces de nuevo, voy a cerrar o borrar tus consultas ok?

Aparte de eso, creo que está mal plateada ya que antes de empezar el FROM está una coma que no debe existir. Editando y tratando de colocar el SELECT a como debiste ponerlo, estaría así:
Código PHP:
SELECT MAX(pro_c_trabajo.id) AS idmayorpro_c_trabajo.idproceso AS idproceso,
pro_c_trabajo.ctr_fecharealizacion AS fecharealizacion,
pro_procesos_abogados.prab_expediente AS expediente,
pro_procesos_abogados.prab_proceso2 AS idprocesoFROM pro_c_trabajo
INNER JOIN pro_procesos_abogados ON pro_procesos_abogados
.idasunto=pro_c_trabajo.idasunto
GROUP BY pro_c_trabajo
.idproceso HAVING ctr_fecharealizacion>'0000-00-00'
ORDER BY pro_c_trabajo.id DESC 
Función de la sección de Base de Datos
Lee este tema==> Mejoremos la ortografía.
__________________
La tecnología está para ayudarnos. No comprendo el porqué con esa ayuda, la gente escribe TAN MAL.
NO PERDAMOS NUESTRO LINDO IDIOMA ESPAÑOL
  #4 (permalink)  
Antiguo 18/10/2007, 14:48
 
Fecha de Ingreso: noviembre-2005
Ubicación: Torreon Coahuila
Mensajes: 100
Antigüedad: 18 años, 5 meses
Puntos: 1
Re: Mostrar registros con Condicion despues de GROUP BY, HAVING da Error

Cita:
Iniciado por BrujoNic Ver Mensaje
losporros, por favor...

Ok BrujoNic es la 1era ves que entro al foro de BD estoy acostumbrado a entrar al de PHP ok..

Saludos...
  #5 (permalink)  
Antiguo 18/10/2007, 15:27
 
Fecha de Ingreso: febrero-2007
Mensajes: 163
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: Consulta de SELECT DISTINCT(proceso),MAX(id) WHERE fecha>'0000-00-00'

SELECT proceso, MAX(id) FROM tabla WHERE fecha>'0000-00-00'
GROUP BY proceso
  #6 (permalink)  
Antiguo 18/10/2007, 18:53
 
Fecha de Ingreso: noviembre-2005
Ubicación: Torreon Coahuila
Mensajes: 100
Antigüedad: 18 años, 5 meses
Puntos: 1
Re: Consulta de SELECT DISTINCT(proceso),MAX(id) WHERE fecha>'0000-00-00' RESUELTO

Gracias a todos

Lo pude resolver pero con 2 consultas

Con esta sako de cada proceso su ID mas alta
Código PHP:
SELECT 
             fecha
,proceso,
             
MAX(id) AS mayor
FROM tabla
             GROUP BY proceso 
Y luego de las cedulas dadas las que tengan fecha mayor las meto a un array
y a ese array le pongo comas

Código PHP:
while($rs mysql_fetch_array($query))
{
$fecha=$rs[fecha];
 if(
$fecha>'0000-00-00')
          {
$idmayores[] = "$rs[mayor]";
          } 

}
$mayores $idmayores;
$mayoresimplode(','$mayores); 
Y ya por ultimo utilizo WHERE id IN

Código PHP:

SELECT
*
FROM tabla
WHERE id IN
(".$mayores."
Lo dejo por si alguien llega a tener un problema similar ok
cuidense y saludos... y gracias
  #7 (permalink)  
Antiguo 18/10/2007, 23:40
Avatar de BrujoNic
Super Moderador
 
Fecha de Ingreso: noviembre-2001
Ubicación: Costa Rica/Nicaragua
Mensajes: 16.935
Antigüedad: 22 años, 5 meses
Puntos: 655
Re: Consulta de SELECT DISTINCT(proceso),MAX(id) WHERE fecha>'0000-00-00'

Trasladado de BD a PHP. Favor no poner código de programación en BD.

Función de la sección de Base de Datos
__________________
La tecnología está para ayudarnos. No comprendo el porqué con esa ayuda, la gente escribe TAN MAL.
NO PERDAMOS NUESTRO LINDO IDIOMA ESPAÑOL
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:32.