FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Con Sql Puedo Resolver El Sig Evento
Hola:
Tengo delphi 7 professional y trabajo con dbf/cdx y motor advantage. Quiero emitir via sql los clientes que me han dejado de comprar hace mas de dos años, los datos historicos de todas las ventas los tengo en una tabla de ventas donde tengo el; cliente, la fecha de venta, el producto que me compro. Habia pensado crear un query con los solo las ventas de dos años atras, luego leer cada registro del query y chequear contra la tabla de ventas de que no exista una venta el los dos ultimos años, esto me parece demasiado largo y lento, quizas con un buen manejo de sql pueda hacerlo mas corto y rapido el proceso. atte cmena |
#2
|
||||
|
||||
Lo podes hacer con una subconsulta a la tabla de ventas y el operador NOT EXISTS.
La función now deberá ser portada a tu motor, y éste soportar aritmética de fechas. También fallará por 1 día en el caso de que uno de los últimos dos años sa bisiesto. Hasta luego.
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
#3
|
||||
|
||||
con group by y having creo que puedes sacarlo
el left outer join es para sacar tambien aquellos clientes que no tengan ninguna venta, he puesto la sintaxis de Interbase que es la que conozco, pero deberias tener un equivalente casi seguro, ya que es sql del 92. La anterior tambien es válida, aunque creo (solo creo, no estoy seguro) que si tienes muchos registros esta deberia ser mas rápida PD: :Parametro seria la fecha contra la que quieres chequear, asignala desde el mismo delphi que creo que será mas facil Última edición por ruina fecha: 22-06-2004 a las 10:14:37. |
#4
|
|||
|
|||
gracias
Cita:
gracias amigo carlos valparaiso chile |
|
|
|