Ver Mensaje Individual
  #18 (permalink)  
Antiguo 27/07/2015, 09:12
Palutin
 
Fecha de Ingreso: julio-2015
Ubicación: Guatemala
Mensajes: 11
Antigüedad: 8 años, 9 meses
Puntos: 0
Respuesta: regresar el ultimo registro de cada cliente

Ok, creo que al principio di muy poca informacion, voy a tratar de detallar al maximo mi situacion, si necesitas mas informacion solo hacemelo saber, y muchas gracias por las respuestas y por la ayuda.

estoy trabajando en un proyecto, es php, css y mysql lo que he estado usando, el programa tiene la capacidad de crear clientes y registrar pagos, hay una seccion donde generas un listado de un sector especifico, en este es donde tengo el problema con la consulta.

en esta pagina se selecciona sector, Estado (Activo, inactivo o ambos) y Documento(Recibos, Facturas o ambos).

Voy a dejar el CREATE TABLE que use en el documento de instalacion

CLIENTES:
Código MySQL:
Ver original
  1. CREATE TABLE clientes(
  2.     codigo int NOT NULL AUTO_INCREMENT,
  3.     PRIMARY KEY(codigo),
  4.     nombre char(50) NOT NULL,
  5.     sector char(50) NOT NULL,
  6.     direccion char(80) NOT NULL,
  7.     comentario char(200),
  8.     nit char(10) NOT NULL,
  9.     fechacreacion date,
  10.     estado char(15) NOT NULL,
  11.     telefono char(20),
  12.     correo char(30),
  13.     usuario char(25)

el campo de Usuario es para que se registre el usuario que realizo el registro, asi que es solo para uso interno.

PAGOS:
Código MySQL:
Ver original
  1. CREATE TABLE pagos(
  2.     confirmacionpago int NOT NULL AUTO_INCREMENT,
  3.     PRIMARY KEY(confirmacionpago),
  4.     codigo int NOT NULL,
  5.     FOREIGN KEY(codigo) REFERENCES clientes(codigo),
  6.     fecha_pago date NOT NULL,
  7.     mes_pago char(20) NOT NULL,
  8.     correlativo char(30) NOT NULL,
  9.     cantidad int,
  10.     comentario char(30),
  11.     utc int,
  12.     usuario char(25) NOT NULL

Esos son los CREATE TABLE de clientes y pagos

a continuacion, voy a colocar lo que necesito imprimir(los cuales son campos de ambas tablas) y como tengo la consulta actualmente.

Codigo
Nombre
Direccion
Ultimo Mes pagado
Fecha de pago
Documento
Cantidad Pagada
telefono
Estado

Esta es la consulta:
Código MySQL:
Ver original
  1. SELECT c.*, p.*
  2. FROM clientes c INNER JOIN (SELECT MAX(fecha_pago) AS pago, codigo, mes_pago FROM pagos group by codigo) as p ON c.codigo = p.codigo
  3. WHERE c.sector='".$sector."' GROUP BY p.codigo ORDER BY direccion
me esta regresando unicamente el primer registro, yo necesito el ultimo, igualmente voy a poner ejemplo de los registros, no tengo un listado de clientes entonces he estado poniendo datos de pruebas, pongo 2 o 3 registros de clientes y le agrego varios pagos a cada uno.

Clientes

codigo 10001 10002
nombre cliente 1 Cliente 2
Sector Barberos Barberos
direccion 3 calle 2-20 8 calle 10-5
comentario comentario comentario
NIT 2234234234 465774589
Fecha creacion 2015-07-26 2015-07-27
Estado Activo activo
Teleono 34343434 555555555
Correo [email protected] [email protected]
Usuario test test

Pagos

Confirmacionpago 53000 53001 53002 53003
codigo 10001 10001 10002 10002
fecha_pago 2015-07-26 2015-07-26 2015-07-26 2015-07-26
Mes_pago Enero Febrero Enero febrero
correlativo R234234223 F0980980980 R23847298 R29837928
cantidad 60 60 60 60
comentario comentario comentario comentario comentario
utc 1437954671 1437955043 1437989029 1437989839
Usuario test test test test


ahi esta todos los datos creo que seran utiles, y muchisimas gracias por la ayuda

igualmente si falta algo hacemelo saber por favor

Última edición por gnzsoloyo; 27/07/2015 a las 09:37 Razón: Codigo sin etiquetar. USAR LOS HIGHLIGHT, por favor