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

php y mysql

Estas en el tema de php y mysql en el foro de Mysql en Foros del Web. hola gente soy rrigo y mi problema es que tengo una base de datos ..en la un tabla llamada servicioalcliente tengo tres campos llamados, servicio, ...
  #1 (permalink)  
Antiguo 02/07/2012, 11:46
 
Fecha de Ingreso: julio-2012
Mensajes: 12
Antigüedad: 11 años, 9 meses
Puntos: 0
Pregunta php y mysql

hola gente soy rrigo y mi problema es que tengo una base de datos ..en la un tabla llamada servicioalcliente tengo tres campos llamados, servicio, monto, cliente y quisiera saber como hacer que aparesca por patalla en monto sumado cada quince dias con su respectivo usuario quien lo realizo...

por antemano muchas gracias...
  #2 (permalink)  
Antiguo 03/07/2012, 01:34
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: php y mysql

Cita:
..en la un tabla llamada servicioalcliente tengo tres campos llamados, servicio, monto, cliente
Sin fecha dificilmente podrás sumar cada 15 dias....

En cuanto a que salga por pantalla es tema de php y es to es el foro de mysql
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.
  #3 (permalink)  
Antiguo 06/07/2012, 16:25
 
Fecha de Ingreso: julio-2012
Mensajes: 12
Antigüedad: 11 años, 9 meses
Puntos: 0
Respuesta: php y mysql

ovio que le puse fecha y hora .....no soy tan tonto ..tienes alguna idea para ayudarme?
  #4 (permalink)  
Antiguo 07/07/2012, 04:48
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: php y mysql

rrigomartir,
lo que quimfv quiere decirte es que necesita más datos y saber entre otras cosas si tenías un campo de fecha. Esa pregunta que te ha hecho era la primera idea para ayudarte. Pero veamos, ahora te toca aclararnos más cuestiones:
A ver, si lo que quieres es el monto de clientes por quincena de mes de año, te toca agrupar por cliente, año, mes, y por un campo que generarás controlando si el día es mayor que 15. No he probado nada, he inventado nombres y solo he puesto una tabla, que quizás no es el caso.
Si haces el group by así, quizás obtengas algo:
SELECT cliente, SUM(monto), YEAR(campofecha), MONTH(campofecha), IF(DAYOFMONTH(campofecha) < 16, 1,2) AS quincenames FROM tutabla GROUP BY cliente, YEAR(campofecha), MONTH(campofecha), quincenames

Cosa distinta es que quieras el monto de cada quince días sin el detalle de clientes. O el monto quincenal y luego un subagrupado por cliente...
Podrías usar un orden distinto de agrupación y luego añadir
WITH ROLLUP;

SELECT YEAR(campofecha), MONTH(campofecha), IF(DAYOFMONTH(campofecha) < 16, 1,2) AS quincenames, cliente, SUM(monto) FROM tutabla GROUP BY YEAR(campofecha), MONTH(campofecha), quincenames, cliente WITH ROLLUP

Luego hay otra cuestión: esto que pongo aquí es la parte de base de datos. Explícanos con datos concretos tal y como los tienes o inventando algunos parecidos cómo querrías que saliera. La parte de base de datos trataremos de solucionarla aquí; lo demás tendrás que preguntarlo en el foro correspondiente de programación.

Saludos a ambos, a rrigomortir y también a ti, Quim, amigo.

Última edición por jurena; 07/07/2012 a las 07:09
  #5 (permalink)  
Antiguo 07/07/2012, 12:35
 
Fecha de Ingreso: julio-2012
Mensajes: 12
Antigüedad: 11 años, 9 meses
Puntos: 0
Respuesta: php y mysql

---------------------------------------------------------------------------------------------------
servicio------------------monto----------usuario------------fecha-----------hora---------
---------------------------------------------------------------------------------------------------
mantenimiento----------5100-------------gomez -------------16/05/2012-----5:20
mantenimiento----------3700-------------gomez--------------17/05/2012-----3:40
mantenimiento----------1800-------------gomez--------------18/05/2012-----1:20
mantenimiento----------2700-------------gomez--------------19/05/2012-----1:20
montaje-----------------2150 -----------lusia -------------- 17/06/2012-----4:40
montaje-----------------2150 -----------lusia ---------------19/06/2012---- 4:40
montaje-----------------2150------------lusia --------------20/06/2012---- 4:40
etc


estos son unos ejemplos no tengo datos reales....queria que me saliera el resultado de esta manera..

monto------------usuario------------quincena
13300-----------gomez--------------15/05/2012 al 30/05/2012
6450-------------lusia----------------15/06/2012 al 30/06/2012

es un ejemplo de lo que realmente queria que me apareciera..
  #6 (permalink)  
Antiguo 07/07/2012, 14:25
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: php y mysql

Si pruebas esto, verás el resultado. Observa que no he añadido las fechas de la quincena. Eso es algo que deberías hacer de otro modo, quizás con una tabla auxiliar o con programación. Tampoco te he sacado el nombre del mes en inglés. Ese tipo de cosas puedes controlarlas con programación. Hay diversas soluciones
La consulta sería esta:
Código MySQL:
Ver original
  1. SELECT usuario, SUM( monto ) suma ,
  2.   YEAR( fecha ) anio ,
  3.   MONTH( fecha ) mes ,
  4.   IF( DAYOFMONTH( fecha ) <16, 1, 2 ) AS quincenames
  5.           FROM servicioalcliente
  6.                  GROUP BY usuario, YEAR( fecha ) , MONTH( fecha ) , quincenames
  7.                                   ORDER BY YEAR( fecha ) , MONTH( fecha ) , quincenames

Última edición por jurena; 19/07/2012 a las 09:15
  #7 (permalink)  
Antiguo 08/07/2012, 08:50
 
Fecha de Ingreso: julio-2012
Mensajes: 12
Antigüedad: 11 años, 9 meses
Puntos: 0
Respuesta: php y mysql

Gracias por todo junera me sirvió mucha tu ayuda..!!

Etiquetas: php, tabla, campos
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 07:24.