Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 16-10-2007
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.740
Poder: 26
ContraVeneno Va por buen camino
En SQL Server harías algo como:
Código SQL [-]
Select F.Factura,
case when datediff(dd, F.FechaFactura, GetDate()) <30 then F.Monto else 0 end dias30,
case when datediff(dd, F.FechaFactura, getdate()) between 31 and 45 then F.Monto else 0 end dias45
case when datediff(dd, F.FechaFactura, getdate()) between 46 and 60 then F.Monto else 0 end dias60
...
...
From Facturas F
where ...
__________________


Última edición por ContraVeneno fecha: 16-10-2007 a las 01:13:16.
Responder Con Cita
  #2  
Antiguo 16-10-2007
Avatar de juanelo
juanelo juanelo is offline
Miembro
 
Registrado: sep 2007
Posts: 1.087
Poder: 20
juanelo Va por buen camino
Cita:
Empezado por ContraVeneno Ver Mensaje
En SQL Server harías algo como:
Código SQL [-]Select F.Factura,
case when datediff(dd, F.FechaFactura, GetDate()) <30 then F.Monto else 0 end 30dias,
case when datediff(dd, F.FechaFactura, getdate()) between 31 and 45 then F.Monto else 0 end 45dias
case when datediff(dd, F.FechaFactura, getdate()) between 46 and 60 then F.Monto else 0 end 60dias
...
...
From Facturas F
where ...
El problema es que lo que supongo que quiere hacer es ACUMULAR las facturas que caigan en este rango, para un analisis de cobranza. Con este query no se acumulan estas cantidades.
Responder Con Cita
  #3  
Antiguo 16-10-2007
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 24
enecumene Va por buen camino
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:
El problema es que lo que supongo que quiere hacer es ACUMULAR las facturas que caigan en este rango, para un analisis de cobranza. Con este query no se acumulan estas cantidades.
lo que quiero hacer es un reporte de las facturas que caigan en los rangos de dias mencionados mas arriba, como dices tu juanelo, para un analisis de cobranza y llevar un control del tiempo que tiene cada fatura desde la fecha facturada.

Saludos
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #4  
Antiguo 16-10-2007
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.740
Poder: 26
ContraVeneno Va por buen camino
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
__________________

Responder Con Cita
  #5  
Antiguo 16-10-2007
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 24
enecumene Va por buen camino
Hola ContraVeneno, hice una busqueda en google y encontre esto:

Cita:
DATEDIFF(). Esta función obtiene la diferencia, en días, entre dos fechas. Ejemplo : SELECT DATEDIFF(‘2005-4-1’,’2004-5-30’);
Este query produce 306, lo que significa que del 30/5/2004 al 1/4/2005 van 306 días.
y este ejemplo donde usan case y end:

Código SQL [-]
SELECT
             CASE DAYOFWEEK(CURDATE())
                  WHEN 1 THEN 'Domingo'
                  WHEN 2 THEN 'Lunes'
                  WHEN 3 THEN 'Martes'
                  WHEN 4 THEN  CONCAT('Mi',CHAR(130),'rcoles')
                  WHEN 5 THEN 'Jueves'
                  WHEN 6 THEN 'Viernes'
                  WHEN 7 THEN  CONCAT('S',CHAR(160),'bado')
             END AS Dia_de_la_Semana;

al parecer usan la mismas funciones, entonces eso indica que puedo usarlo con TQuery?

Saludos.
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #6  
Antiguo 16-10-2007
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 24
enecumene Va por buen camino
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:

Código SQL [-]
SELECT CASACOMERCIAL, FACTURA, 
(SELECT DATEDIFF(CURDATE(),FECHAFACTURA) < 30)  AS MES1, 
(SELECT DATEDIFF(CURDATE(),FECHAFACTURA) BETWEEN 31 AND 45) AS MES2, 
(SELECT DATEDIFF(CURDATE(),FECHAFACTURA) BETWEEN 46 AND 60) AS MES3, 
(SELECT DATEDIFF(CURDATE(),FECHAFACTURA) BETWEEN 61 AND 90) AS MES4, 
(SELECT DATEDIFF(CURDATE(),FECHAFACTURA) BETWEEN 91 AND 120) AS MES5,
(SELECT DATEDIFF(CURDATE(),FECHAFACTURA) > 120) AS MES6 FROM TABLA2

Espero criticas .

Saludos.

PD. Gracias a ContraVeneno sin su ejemplo no hubiera conocido la funcion DATEDIFF.
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #7  
Antiguo 16-10-2007
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 24
enecumene Va por buen camino
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:





Saludos
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Tabla de Facturas vs Detalles de Facturas magnu9 Conexión con bases de datos 9 27-07-2007 17:27:37
como hacerlo?¿ tiagor64 Conexión con bases de datos 4 09-02-2005 15:55:04
Cómo hacerlo ... Jordy Conexión con bases de datos 2 19-08-2004 10:21:39
Campos calculados, facturas y detalles de facturas. Letty Conexión con bases de datos 7 07-11-2003 11:19:44
No se como hacerlo apolo18 Impresión 4 19-05-2003 23:13:27


La franja horaria es GMT +2. Ahora son las 11:17:07.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi