Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Hola a todos.
Tengo el problema al hacer la carga incremental en un QVD si me agrega los nuevos registros, pero si un registro es modificado,este cambio no se me ve reflejado, quizas estoy interpretando mal el proceso de actualizar y agregar, alguien tendrá algun ejemplo que me pueda compartir para validar en que punto estoy mal.
comparto el proceso que realizo de igual manera para alguna observacion.
saludos y gracias.
Hola Agustin,
El proceso parece correcto. Sin embargo, deberias estar trabajando con dos fechas diferentes. Esto se refiere más a diseño de datos y no a Qlikview.
En general, cuando usamos carga incremental, nuestra tabla tiene dos o más fechas. Una que es la fecha de venta (en tu caso), que nunca cambia ya que es un hecho que esa venta se realizó en esa fecha, y un campo extra en formato fecha que es de actualización de datos. Este último campo (llamemoslo fecha_actualizacion) se debe actualizar cada vez que cualquiera de los campos cambia.
Por lo tanto, cuando haces la carga incremental, no trabajas con el campo de fecha_venta sino que usas el campo de fecha_actualizacion.
EjemploÑ
Fecha_venta Producto Valor fecha_actualizacion
10-01-2015 Aluminio 10000 10-01-2015 <<-- Esto es un registro nuevo. fecha_venta = fecha actualizacion
08-01-2012 Hierro 500 10-01-2015 <<-- Registro viejo que fue actualizado
De esta maneras podras cargar los campos nuevos y los viejos que hayan sido actualizados.
Espero te sea útil.
Saludos,
Juan
Hola Agustin,
Veo alguna cosa que no me comvence
En la select esta definiendo el campo que parece clave como Num_Cliente y en el qvd es NUM_CLIENTE para QV son dos campos distintos.
en este caso el where seria "where not exist (Num_Cliente, NUM_CLIENTE )"
Luengo en la lectura del QVD resultante tendrias que renombrar el campo Num_Cliente
Algo asi
if(isnull(NUM_CLIENTE),Num_Cliente ,NUM_CLIENTE) as NUM_CLIENTE
Espero haberme explicado bien
Un Saludo
Hola Agustin,
El proceso parece correcto. Sin embargo, deberias estar trabajando con dos fechas diferentes. Esto se refiere más a diseño de datos y no a Qlikview.
En general, cuando usamos carga incremental, nuestra tabla tiene dos o más fechas. Una que es la fecha de venta (en tu caso), que nunca cambia ya que es un hecho que esa venta se realizó en esa fecha, y un campo extra en formato fecha que es de actualización de datos. Este último campo (llamemoslo fecha_actualizacion) se debe actualizar cada vez que cualquiera de los campos cambia.
Por lo tanto, cuando haces la carga incremental, no trabajas con el campo de fecha_venta sino que usas el campo de fecha_actualizacion.
EjemploÑ
Fecha_venta Producto Valor fecha_actualizacion
10-01-2015 Aluminio 10000 10-01-2015 <<-- Esto es un registro nuevo. fecha_venta = fecha actualizacion
08-01-2012 Hierro 500 10-01-2015 <<-- Registro viejo que fue actualizado
De esta maneras podras cargar los campos nuevos y los viejos que hayan sido actualizados.
Espero te sea útil.
Saludos,
Juan
Hola David, no creo que este sea el problema ya que sino no cargaria ningun dato. Para las mayorias de las bases de datos, cuando usas el comando SQL Select los nombres or alias de las columnas son devueltas en mayúsculas.
Es posible, entonces el problema seria que la extracción no trae los datos modificados sino solo los nuevos.
Yo creo que si David, por lo poco que se ve en el archivo que adjunto. Vamos a ver que dice Agustin con las ideas que le dimos.
Juan:
buen día si entiendo el punto que mencionas pero en la fuente no me muestra el campo fecha _actualización que mencionas salvo que la fuente lo maneje de manera oculta en cuyo caso por lo que entendi es parte por lo que el proceso sugiere apoyarse de un campo llave o campo adicional como viene siendo el NUM_CLIENTE.
saludos
David:
buen día efectivamente pude ser ese el punto le mencione unos puntos a Juan respecto a su sugerencia
saludos
Hola Agustin, si en la fuente no existe el campo lo tienes que crear, es la unica manera que podras saber si un registro existente ya fue actualizado.
Si solo quieres usar el NUM_CLIENTE, entonces deberas pedir a quien maneje la fuente que cree una tabla separada y que inserte temporalmente los campos que son actualizados asi tu puedes traer los datos de esa nueva tabla que solo tiene campos actualizados y asi poder distinguirlos, de otra manera tu script solo incrementara registros nuevos.
Saludos
Juan
Juan:
buenas una consulta respecto al mismo tema estoy investigando pero aun no he encontrado algo relacionado al mismo tema. ¿se puede tomar la fecha del sistema para que me sirva como campo fecha de actualizacion?
saludos