Facturas a 30,45,60,90 y 120 dias. como hacerlo?
Hola compañeros, necesito que me den un empujoncito con algo al que no tengo idea de como entrarle, sucede que el cliente me ha pedido una especie de historico de facturas que estan en los 30, 45...dias, ejemplo:
Cita:
Saludos. |
En SQL Server harías algo como:
|
Hola,
Lo que no terminas de explicar es que si tu intencion es obtener esta informacion mediante una sentencia SQL, ademas de esto hay un concepto bien importante que es el de fecha de vencimiento (o de corte para algunos) y que es desde donde se empieza a contar para los dias que han transcurrido y que no se ha efectuado el pago. En mi caso yo he tenido la necesidad de elaborar un reporte de este tipo, y dada la definicion de la base de datos que ya existia (es un programa comercial de terceros) pues me di a la tarea de hacer y acumular los datos en un ClientDataSet, y me funciona de maravilla, eso si, hay que seleccionar todas las facturas de un periodo dado y recorrerlas a "mano" e ir acumulando como se requiera en un CDS con sus campos correspondientes a 30,60,90 ... etc dias de vencimiento (tomando como fecha de referencia la fecha de vencimiento de la factura). Saludos |
Cita:
|
Hola Contraveneno ese codigo me serviria con bases de datos en mysql? como lo tengo que implementarlo? por codigo o a traves de un Tquery normalmente?
Cita:
Saludos |
para MySQL me declaro ignorante en el tema...
la clave sería que pudieras utilizar algo como el CASE de SQL Server para definir el rango de días y obviamente, alguna función que te diga la diferencia de días, que es lo que hace la función "DateDiff" en SQL Server... Pero yo desconozco que funciones te ayudarían a hacer esto en MySQL |
Hola ContraVeneno, hice una busqueda en google y encontre esto:
Cita:
al parecer usan la mismas funciones, entonces eso indica que puedo usarlo con TQuery? Saludos. |
Hola, al parecer he logrado hacer el objetivo, basandome en el ejemplo de ContraVeneno, lo he adaptado en una consulta en mysql, ahi les va, lo probe en el servidor y me arrojo resultados:
Espero criticas ;). Saludos. PD. Gracias a ContraVeneno sin su ejemplo no hubiera conocido la funcion DATEDIFF. |
Hombre, que va, la consulta funciona pero no como me lo esperaba porque me arroja puros unos, y a mi me gustaria que el valor de la factura cayera en el rango, ejemplo del resultado:
:confused::confused::confused: Saludos |
Pruébalo así en MySQL a ver si mis suposiciones son ciertas... El campo F.Monto deberá ser el campo donde guardas la cantidad que quieres ver. |
me sobra la coma después del nombre del campo "masdias60".
No debería existir ninguna coma antes del "FRom" |
Hombre me funciono perfecto, no se como agradecerle solo tengo por el momento un GRACIAS:) grandote.
Saludos. |
que bueno que funcionó, ahora me queda una duda:
En el primer case, revisamos todas las que sean menores a 30 (aquí tal vez debería ser "<="), en el segundo case revisamos las que sean de 31 a 45 días, me queda la duda de que si en el primer case, no colocamos un "menor o igual", aquellas facturas que sean exactamente de 30 días, no sean consideradas. En pocas palabras, debería ser algo como:
|
Otra vez te agradezco ContraVeneno ahora mismo la aplico, cualquier cosa te comento. de nuevo gracias
Saludos. |
Borrado por responder tarde :(:p
|
Cita:
Saludos. |
Primer Problema: todas las facturas me caen en el rango de 30 dias sin importar que la factura tenga mas de 45 dias o 60 que existen en la base de datos:
:confused::confused: Saludos. |
Agrega un campo que te diga cuantos días te devuelve la función datediff para que verifiques el cálculo. A mi me funciona perfectamente.
|
|
La franja horaria es GMT +2. Ahora son las 14:34:23. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi