Ver Mensaje Individual
  #7 (permalink)  
Antiguo 28/05/2015, 16:36
Avatar de planmental
planmental
 
Fecha de Ingreso: abril-2015
Mensajes: 100
Antigüedad: 9 años
Puntos: 0
Respuesta: Consultar cliente actual con los máximos movimientos

Cita:
Iniciado por jmendezg Ver Mensaje
La verdad no entiendo el motivo de porque haces eso, pero es tu rollo xd
no le veo sentido a coger el registro de esa forma.

Pero Aqui te dejo el query que tanto quieres xD

Código SQL:
Ver original
  1. SELECT (CASE WHEN A.cliente_id = B.cliente_id THEN A.fecha_servicio
  2.        ELSE 0 END)  AS fecha, A.*
  3. FROM (SELECT  a.*, c.* FROM cliente a INNER JOIN servicio b
  4. ON a.cliente_id = b.cliente_id
  5. INNER JOIN traslado c ON b.servicio_id = c.servicio_id
  6.       WHERE A.alias = 'cliente1'
  7.       ORDER BY traslado_id DESC
  8. ) A
  9. INNER JOIN
  10. (SELECT  a.*, c.* FROM cliente a INNER JOIN servicio b
  11. ON a.cliente_id = b.cliente_id
  12. INNER JOIN traslado c ON b.servicio_id = c.servicio_id
  13.       WHERE A.alias = 'cliente1'
  14.  ORDER BY traslado_id DESC
  15. ) B
  16. ON A.traslado_id   = B.traslado_id -1
  17. ORDER BY fecha ASC LIMIT 1


Copia y pega al ejemplo que dejaste.
Salu2
Hola jmendezg.

La verdad es que sí hay razón para hacer eso tan raro jaja.

Muchas gracias por el código pero cuando lo intento poner en mi código real me sale un error en A.alias

Aquí mi código

Código MySQL:
Ver original
  1. SELECT (CASE WHEN A.cliente_id = B.cliente_id THEN A.fecha_servicio
  2.        ELSE 0 END)  AS fecha, A.*
  3. FROM (SELECT  a.*, c.* FROM cliente a INNER JOIN servicio b
  4. ON a.cliente_id = b.cliente_id
  5. INNER JOIN traslado c ON b.servicio_id = c.servicio_id
  6.       WHERE A.alias = "'.$cliente.'"
  7.       ORDER BY traslado_id DESC
  8. ) A
  9. (SELECT  a.*, c.* FROM cliente a INNER JOIN servicio b
  10. ON a.cliente_id = b.cliente_id
  11. INNER JOIN traslado c ON b.servicio_id = c.servicio_id
  12.       WHERE A.alias = "'.$cliente.'"
  13.  ORDER BY traslado_id DESC
  14. ) B
  15. ON A.traslado_id   = B.traslado_id -1

Lo más raro es que estoy usando esta consulta también :

Código MySQL:
Ver original
  1. SELECT traslado.* FROM traslado
  2. INNER JOIN servicio
  3. ON traslado.servicio_id = servicio.servicio_id
  4.  
  5. INNER JOIN cliente
  6. ON servicio.cliente_id = cliente.cliente_id
  7.  
  8.  
  9. WHERE cliente.alias = 'cliente1'
  10. AND NOT EXISTS ( SELECT cliente.alias
  11.                        FROM traslado T4
  12.                        
  13.                        INNER JOIN servicio
  14. ON T4.servicio_id = servicio.servicio_id
  15.  
  16. INNER JOIN cliente C4
  17. ON servicio.cliente_id = C4.cliente_id
  18.  WHERE C4.alias != cliente.alias
  19.                 AND T4.fecha_servicio > traslado.fecha_servicio)
  20.                
  21. GROUP BY cliente.alias
  22. ORDER BY traslado_id DESC  LIMIT 1

Me sale el resultado que quiero pero cuando lo pongo en mi código real no me sale lo mismo jaja

Última edición por planmental; 28/05/2015 a las 16:47