Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Problemas en consulta

Estas en el tema de Problemas en consulta en el foro de Mysql en Foros del Web. Hola Amigos!!! no se como modificar esta consulta @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código MySQL: Ver original SELECT A.cobranza_id , A.cobranza_tipo , A.cobranza_fecha , A.cobranza_hora , A.cobranza_numsuc , ...
  #1 (permalink)  
Antiguo 17/08/2013, 04:32
 
Fecha de Ingreso: octubre-2010
Ubicación: Buenos Aires
Mensajes: 557
Antigüedad: 13 años, 6 meses
Puntos: 4
Problemas en consulta

Hola Amigos!!!
no se como modificar esta consulta
Código MySQL:
Ver original
  1. SELECT A.cobranza_id,
  2. A.cobranza_tipo,
  3. A.cobranza_fecha,
  4. A.cobranza_hora,
  5. A.cobranza_numsuc,
  6. A.cobranza_numcom,
  7. A.cobranza_cliente,
  8. IF(A.cobranza_cliente=0,'Diversos',A.cobranza_cliente) AS cli_id,
  9. B.cobranza2_funcion,
  10. B.cobranza2_importe,
  11. C.cuecaj_alias,
  12. IF(A.cobranza_cliente=0,'Diversos Clientes ( Cobranza Rapida )',CONCAT(D.nombre,' ',D.apellido)) AS nomb
  13. FROM cobranza A
  14. INNER JOIN cobranza2 B ON A.cobranza_id=B.cobranza2_id
  15. INNER JOIN cue_caj C ON B.cobranza2_cuecaj=C.cuecaj_id
  16. LEFT JOIN clientes D ON A.cobranza_cliente=D.cliente_id
  17. WHERE TIMESTAMP(A.cobranza_fecha, A.cobranza_hora)
  18. BETWEEN TIMESTAMP('".date('Y-m-d', strtotime($fmin))."','".$_POST['horamin']."') AND TIMESTAMP('".date('Y-m-d', strtotime($fmax))."','".$_POST['horamax']."')
  19. AND A.cobranza_suc='".$_POST['caja_suc']."'
  20. AND A.cobranza_estado=1
  21. AND A.cobranza_f=".$z->_f."
  22. ".$consultaCuecaj_cobranza."
  23. AND B.cobranza2_caja=".$_POST['caja']."
  24. AND B.cobranza2_moneda=".$_POST['caja_moneda']
para realizar lo siguiente:
de esta forma la consulta me da los resultados de una fecha y hora inicial y una fecha y hora limite
lo que necesito es que en la misma consulta tambien obtenga todos los registros anteriores de B.cobranza2_importe hasta la fecha y hora inicial y de esta forma sumar todo
por ejemplo
si el usuario necesita ver el efectivo que tiene en la caja
y lo lista desde el 16/08/2013 00:00:00 hasta 17/08/2013 23:59:59
y me mostraria 1000 pero sumando todo lo anterior al 16/08/2013 00:00:00
le agradezco cualquier ayuda que me puedan brindar
Saludos!!!
PD: perdon por el codigo PHP

Última edición por tumbero_x; 17/08/2013 a las 04:37
  #2 (permalink)  
Antiguo 17/08/2013, 17:07
Avatar de Djoaq  
Fecha de Ingreso: septiembre-2012
Ubicación: Barcelona
Mensajes: 271
Antigüedad: 11 años, 6 meses
Puntos: 38
Respuesta: Problemas en consulta

Perdona tumbero_x pero no entiendo muy bien lo que necesitas!

tienes un campo = A.cobranza_fecha y puedes filtrar por fecha , pero en el SELECT :

faltaría un campo B.cobranza_fecha para que pudieras trabajarlo en el WHERE entiendo que existe aunque no salga!

Voy a intentar ayudarte ... a ver si quisiera que me sumara los registros desde una fecha de inicio haría algo como esto :


Código MySQL:
Ver original
  1.  
  2. col1,
  3. col2,
  4. col4,
  5. etc,
  6.  
  7. IF(A.cobranza_fecha < CURDATE(), SUM(B.cobranza2_importe),'No hay movimientos antiguos') as 'Cobros'
  8.  
  9. FROM las tablas
  10.  
  11. WHERE con tus relación entre TABLA A y B GROUP BY ID_de_cliente

donde la lógica es : selecciona los registros A.cobranza_fecha y suma B.cobranza2_importe SI la fecha cobranza es menor que la fecha actual (puedes usar NOW() quieres un timestamp ).

Luego a ese campo le pasas un Alias !

Para que funcionase deberías agrupar los clientes por ID de cliente ( en el caso que sea único por cada cliente )

Bueno cualquier cosita por aquí andaremos!



Suerte!

Última edición por Djoaq; 17/08/2013 a las 17:16
  #3 (permalink)  
Antiguo 19/08/2013, 05:47
 
Fecha de Ingreso: octubre-2010
Ubicación: Buenos Aires
Mensajes: 557
Antigüedad: 13 años, 6 meses
Puntos: 4
Respuesta: Problemas en consulta

Gracias por contestar y disculpas por no poder responderte antes
por ejemplo
cuando el usuario hace un listado de la caja diaria y quiere saber cuanto tiene de valores
desde el 10/08/2013 hasta el 17/08/2013 le da como resultado 300 pesos.
hasta aca todo bien pero si el usuario quiere listar la caja desde el 17/08/2013 hasta el 17/08/2013 (o sea del mismo dia) tambien le tiene que dar como resultado 300 pesos.
vuelvo a poner el codigo en el que estoy trabajando ( con este codigo se lista la caja con los parametros de fecha que el usuario pone pero no suma lo anterior )
SAludos y muchas gracias por cualquier ayuda que me puedan brindar
Código MySQL:
Ver original
  1. SELECT A.cobranza_id,
  2. A.cobranza_tipo,
  3. A.cobranza_fecha,
  4. A.cobranza_hora,
  5. A.cobranza_numsuc,
  6. A.cobranza_numcom,
  7. A.cobranza_cliente,
  8. IF(A.cobranza_cliente=0,'Diversos',A.cobranza_cliente) AS cli_id,
  9. B.cobranza2_funcion,
  10. B.cobranza2_importe,
  11. C.cuecaj_alias,
  12. IF(A.cobranza_cliente=0,'Diversos Clientes ( Cobranza Rapida )',CONCAT(D.nombre,' ',D.apellido)) AS nomb
  13. FROM cobranza A
  14. INNER JOIN cobranza2 B ON A.cobranza_id=B.cobranza2_id
  15. INNER JOIN cue_caj C ON B.cobranza2_cuecaj=C.cuecaj_id
  16. LEFT JOIN clientes D ON A.cobranza_cliente=D.cliente_id
  17. WHERE TIMESTAMP(A.cobranza_fecha, A.cobranza_hora)
  18. BETWEEN TIMESTAMP('".date('Y-m-d', strtotime($fmin))."','".$_POST['horamin']."') AND TIMESTAMP('".date('Y-m-d', strtotime($fmax))."','".$_POST['horamax']."')
  19. AND A.cobranza_suc='".$_POST['caja_suc']."'
  20. AND A.cobranza_estado=1
  21. AND A.cobranza_f=".$z->_f."
  22. ".$consultaCuecaj_cobranza."
  23. AND B.cobranza2_caja=".$_POST['caja']."
  24. AND B.cobranza2_moneda=".$_POST['caja_moneda']
perdon por el codigo PHP

Última edición por gnzsoloyo; 19/08/2013 a las 06:13

Etiquetas: join, registros, select
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 19:28.