Filtran un campo en 2 tablas

Tengo mi programa con una tabla donde capturo ventas, vendo 2 marcas de productos, son seguros para autos, las capturo en la misma tabla sin distinguir la marca, pero ahora mejor deseo crear una tabla para cada marca producto exactamente con los mismos campos(osea 2 tablas), esto con la finalidad de tenerlos separados y tener mejor control.

Ahora, tengo una pantalla de consulta de registros por numero de póliza, por fecha y por nombre, pero ya que están en una sola tabla no tengo problemas, pero ahora que van a estar en dos tablas, como puedo consultar en esa misma pantalla y que me filtre en ambas tablas.

El código que utilizo para buscar por nombre es:

dw_1.setfilter("nombre like '%"+ sle_nombre.text +"%'")
DW_1.retrieve()
dw_1.filter()
dw_1.sort()

Para buscar por fecha utilizo:

date ld_fec1, ld_fec2
string ls_nombre
ld_fec1 = date(em_1.text)
ld_fec2 = date(em_2.text)
dw_1.setfilter ("fecha >= date('" + string(ld_fec1) + "') and fecha <= date('" + string(ld_fec2) + "')")
dw_1.filter()
dw_1.settransobject(sqlca)
dw_1.retrieve(ld_fec1,ld_fec2)
dw_1.setsort("num_reg")
dw_1.sort()

Respuesta

A nivel de base de datos no es "correcto" tener 2 tablas idénticas, ya que estas duplicando la información innecesariamente. El tema es como vos decís, es mas fácil tener todo por separado, pero a nivel de programación volvés a tener todo junto.

En la DW en donde lees la información de una sola tabla, ahora vas a tener que leerla de dos tablas, con lo cual volvés a tener la información de ambas tablas en una sola consulta, es podes filtrar como quieras.

Dime, ¿por qué quieres usar dos tablas?

Tienes Razón el lo que me comentas.

Lo que intento hacer con eso es mejorar y ordenar mejor mis reportes, por ejemplo: quiero crear un reporte por rango de fechas con esas dos Dw poniéndolas en un dw composite y me genere en orden descendente por num de producto pero que estén separados los productos por marca, ya que si me funciona cuando hago el filtro de una sola fecha y hago un sort al numero de producto, pero cuando filtro un rango de fechas me imprime revueltos los productos (las dos marcas revueltas) y es lo que no quiero (aunque haga sort por numero de producto o por campo id autoincrement).

una marca de producto su numero tiene este formato: 600786444 (tiene 9 dígitos, empieza por 6, y va en aumento), otra marca de prod su formato es 711/67889 (tiene 9 dígitos, empieza con 7 y en aumento).

Entonces en la misma tabla, Como podría hacer ese filtro por rango de fechas en mi dw y que todos los productos de una marca salgan continuos y después salgan los de la otra marca?

El código que utilizo para buscar por rango de fecha es el que puse en mi mensaje anterior.

Saludos

¿Pásame el SQL de la DW que quieres filtrar?

Disculpa mi ignorancia, no entiendo a que te refieres con que te pase el Sql, o como se hace?

:(

Todo bien, si podes pasarme el código de la consulta que armaste en la DW, SQL es el query.

el código de mi consulta es:

//Para buscar por fecha utilizo:
date ld_fec1, ld_fec2
ld_fec1 = date(em_1.text)
ld_fec2 = date(em_2.text)
dw_1.setfilter ("fecha >= date('" + string(ld_fec1) + "') and fecha <= date('" + string(ld_fec2) + "')")
dw_1.filter()
dw_1.settransobject(sqlca)
dw_1.retrieve(ld_fec1,ld_fec2)
dw_1.setsort("num_reg")
dw_1.sort()

acaso para lo que yo deseo hacer, sera necesario agregar un campo denominado "marca de la póliza" y luego en mi reporte hacer sort() a ese ese campo?,

pero al consultar un rango de fecha yo creo también me traería los registros revueltos no?

o de que forma sería mejor?

Te cuento que el código que me pasaste es el que escribiste en el evento de la ventana, en el objeto DW. (dw_1)
Lo que te pido es el código o la consulta que escribiste dentro de la DW (el select *** from *** where ***) la que te muestra los datos en pantalla.
Por otro lado, el filter no es muy amigable en los reportes, es mas bien usado en las consultas, cuya finalidad es ver datos en la pantalla.
Para que te funcione correctamente, debes usar toda la lógica que escribiste dentro de la DW, es decir, cuando la estas creando, dentro del código propio de la DW y filtrar por medio de un RETRIEVE pasando los parámetros de las fechas.
Las DW tienen funcionen y propiedades que no hacen falta que las escribas en el objeto de la ventana.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas