Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Buenos días, tengo el siguiente script en el cuál almaceno en una variable la maxima fecha de un qvd, luego utilizo esta variable para filtrar una tabla por ella pero en esta select me está dando constantemente error y he comprobado que es por la condición del where con la variable. Lo que sí he visto que si pongo el debug la variable dónde almacena la fecha me muestra su valor númerico, por si os sirve de indicación, he probado con comillas, sin comillas, ¿qué estoy haciendo mal?. Gracias.
UltimaCarga:
LOAD MAX([f_vent.data_change_dtw]) as fechaUltimaCarga Resident CargaQvd;
//lo dejo en variable
LET vUltimaCarga = Peek('fechaUltimaCarga',0,'UltimaCarga');
DROP TABLE CargaQvd;
DROP TABLE UltimaCarga;
//cargamos modificados
LOAD [key_venta] as [f_vent.key_venta],
[fecha] as [f_vent.fecha],
[tpv] as [f_vent.tpv],
.....
.....
[id_md_tipo_cliente] as [md_tcl.id_md_tipo_cliente];
[modificados_f_venta]:
SELECT "key_venta",
"fecha",
.....
....
"id_md_tipo_cliente"
FROM "public"."f_venta" WHERE data_change_dtw > '$(vUltimaCarga)';
Hola,
Cuando almacenas la variable pon la función Date (todo tu cálculo)
es decir,
LET vUltimaCarga = Date(Peek('fechaUltimaCarga',0,'UltimaCarga'));
Saludos,
Muchas gracias Jordi por tu inestimable ayuda, la verdad es que sigue sin reconocermelo y sigue dándome error, no sé por dónde tirar, el campo de la base de datos con el que estoy comparando "data_change_dtw" tiene formato timestamp en la base de datos YYYY-MM-DD dd:mm:ss, supongo que no estará comparando con el mismo formato contra la variable pero no doy con el formato correcto, además es curioso que la variable vUltimaCarga siempre tiene el valor 2020-12-31 cuándo no tengo esa fecha en la tabla que estoy consultando. ¿Alguna idea?, gracias por todo.
Saludos.
Intenta asi
Let vUltimacarga =max(fecha)
Para saber exactamente qué es lo que esa variable contiene, haz un TRACE sobre la variable justo después de asignarle el valor:
TRACE vUltimaCarga es $(vUltimaCarga);
Utilizando Date() en una variable declarada con LET, el resultado se evalúa antes de asignarse, es decir, si por ejemplo el resultado de Date() es 30/07/2018 (formato de fecha por defecto en España), la asignación a la variable será del valor 0.0021237, es decir 30 dividido por 7 dividido por 2018.
Podría también ser que el valor que QlikView lee no tiene el mismo idéntico formato que el contenido en el campo, por ejemplo, 30/07/2018 (resultado de Date() en España) no es igual a 30.07.2018 (resultado de Date() en Suiza), en cuyo caso deberás utilizar una máscara de formato de fecha en la función Date().