Ver Mensaje Individual
  #3 (permalink)  
Antiguo 25/05/2015, 15:42
Avatar de planmental
planmental
 
Fecha de Ingreso: abril-2015
Mensajes: 100
Antigüedad: 9 años
Puntos: 0
Respuesta: Tomar el id mínimo de un campo

Hola Libras.

Estoy tratando de hacer el script y esto es lo que he hecho:

Código MySQL:
Ver original
  1. SELECT tt.*  FROM traslado tt
  2.  
  3. INNER JOIN servicio
  4. ON tt.servicio_id = servicio.servicio_id
  5.  
  6. INNER JOIN cliente
  7. ON servicio.cliente_id = cliente.cliente_id
  8.  
  9.         (
  10.             SELECT cliente.alias, cliente.cliente_id, traslado.traslado_id min_val
  11.             FROM    traslado
  12.             INNER JOIN servicio
  13. ON traslado.servicio_id = servicio.servicio_id
  14.  
  15. INNER JOIN cliente
  16. ON servicio.cliente_id = cliente.cliente_id
  17.             GROUP   BY remolque_otros, cliente.alias
  18.            
  19.         ) b  ON cliente.alias = b.alias AND
  20.                 cliente.cliente_id = b.cliente_id AND
  21.                 tt.traslado_id != b.min_val
  22.                 WHERE cliente.alias = "'.$Dias1.'" AND tt.remolque_otros = "'.$_GET['s'].'"  LIMIT 1,1

A continuación muestro las tablas que estoy utilizando aunque son sólo un pequeño ejemplo de lo que estoy usando en realidad. La tabla principal es la de "traslado", que se conecta con la tabla "servicio" que se conecta con la tabla "cliente".

Código:
mysql> select traslado_id, servicio_id, fecha_servicio, remolque_otros from tras
lado limit 5;
+-------------+-------------+---------------------+----------------+
| traslado_id | servicio_id | fecha_servicio      | remolque_otros |
+-------------+-------------+---------------------+----------------+
|     1057967 |     1106746 | 2012-01-02 06:35:23 | 2816           |
|     1057968 |     1106747 | 2012-01-02 06:35:55 | 2816           |
|     1057969 |     1106748 | 2012-01-02 06:36:11 | 48789          |
|     1057970 |     1106749 | 2012-01-02 06:37:27 | ***            |
|     1057971 |     1106750 | 2012-01-02 06:37:59 | ***            |
+-------------+-------------+---------------------+----------------+
5 rows in set (0.00 sec)

mysql> select servicio_id, cliente_id from servicio limit 5;
+-------------+------------+
| servicio_id | cliente_id |
+-------------+------------+
|      730645 |          5 |
|      730646 |          5 |
|      730690 |          5 |
|      730716 |          5 |
|      730717 |          5 |
+-------------+------------+
5 rows in set (0.00 sec)

mysql> select cliente_id, alias from cliente limit 5;
+------------+------------+
| cliente_id | alias      |
+------------+------------+
|        182 | 5J EXPRESS |
|         -1 | <Todos>    |
|         33 | ACC        |
|        268 | ACC DGO.   |
|        406 | ACCEL      |
+------------+------------+
5 rows in set (0.00 sec)
De aquí tengo qué sacar algo como lo muestro en este ejemplo:

Código:
id     |   cliente     |      fecha
------------------------------
7    |    v1        |       2015-05-20
6    |    v1        |       2015-05-20
5    |    v1        |       2015-05-01
4    |    v1        |       2015-03-05
3    |    v2        |       2015-02-02
2    |    v3        |      2015-01-30
1    |    v1        |       2015-01-01
La tabla anterior es sólo un ejemplo de lo que quiero hacer (he corregido los id).

Necesito sacar el cliente que se encuentre en el último registro y que me muestre la fecha, pero si ven tengo a "v1" como último cliente, pero no me interesa el id 7 pues necesito el primer movimiento de dicho cliente que es cuando empezó a usar nuestro servicio, en este caso es el id 4.

Al tratar de agrupar a los clientes lo único que logro es que me dé el id 1 que es su primer movimiento, pero yo necesito desde cuándo ese cliente empezó a usar nuestros servicios a la fecha.

gracias por adelantado.

Última edición por gnzsoloyo; 26/05/2015 a las 09:48