Skip to main content
Announcements
Qlik Introduces a New Era of Visualization! READ ALL ABOUT IT
cancel
Showing results for 
Search instead for 
Did you mean: 
Anonymous
Not applicable

Dudas valores seleccionados

  Hola, soy un nuevo usuario en QlikView y  aunque llevo años programando en otros lenguajes, me cuesta  hacer cosas elementales dentro del programa, porque no estoy del todo famirializado

Mi duda es la siguiente, yo cargo unos campos desde una base de datos. Tengo Los Campos mes, dia, año y Fecha

     desde un dia el valor 1 a 31

     MES valor desde 1 a 12

     Año los ultimos años

    Fecha seria Una Fecha Como la siguiente Por ejemplo dd / mm / aaaa

   Yo quiero Que Si selecciono algun día, mes o Año, 2 campos de Ellos o 3, ESO esta relacionado con el campo Fecha, Es Decir, Que cualquier seleccion en uno de esos 3 campos afecte a lo Seleccionado en Fecha.

    Agradeceria cualquier  ayuda , gracias

5 Replies
Not applicable
Author

Si tienes la relación hecha, debería funcionarte.

Si no te funciona es porque alguno de los campos lo tienes como texto y no como fecha.

Puedes pasarnos los resultados o el script.

Un saludo.

Prueba a poner Date(Fecha) en el Script para que te lo coja como fecha.

Un saludo

jolivares
Specialist
Specialist

QlikView funciona de la manera siguiente.... todo esta relacionado, si tienes dos tablas, con solo colocar el mismo nombre a un campo en ambas tablas, es suficiente para que se relacionen entre si.

Esta relacion permite que una vez hayas seleccionado un valor de la tabla uno, este busque la relacion que existe en la tabla 2.

En tu caso si tiene, ejemplo una tabla con las fechas y los meses y en otra los meses y sus descripciones, relacionados por el numero de mes, cada vez que selecciones un mes, te seleccionara automaticamente las fechas relacionadas.

Un detalle, aunque no veas las fechas en verde, que significa la seleccion en QV, si se colocan en blanco, que significa que las mismas estas disponibles dentro de la seleccion que has hecho.

jmmayoral3
Creator
Creator

Hola Jonay.

No es necesario que cargues los campos día, mes y año.

Lo que solemos hacer es cargar la fecha de un campo de la bd (en tu caso sería esa fecha que dices que cargas) y crear un calendario que abarque desde la fecha más pequeña a la más alta. Así te creas un calendario sin huecos. A partir de ese calendario sacas los campos día, mes y año.... y semana, trimestre, semestre... etc. que puedes usar para hacer selecciones, porque como bien han respondido los compañeros, en QV todo está relacionado.

Mira este post para ver cómo se hace lo que te comento.

También se puede hacer adaptando este script que te pego a continuación. (hay muchos scripts diferentes para hacerlo. este no es el más optimo pero si el que mejor te puede dar una idea de lo que tienes que hacer).

MinMax:  //Creamos una tabla auxiliar (luego la puedes borrar) con el valor máximo y mínimo de la fecha

LOAD

    Min(OrderDate) as MinDate,

    Max(OrderDate) as MaxDate

RESIDENT Orders;

  

// Metemos los valores máximo y mínimo de la tabla anterior en variables para poder usarlas a continuación

Let vMinDate=Num(Peek('MinDate',0,'MinMax'));

Let vMaxDate=Num(Peek('MaxDate',0,'MinMax'));

LET vToday=$(vMaxDate);

// Creamos un calendario temporal con todas las fechas intermedias desde la menor a la mayor

TempCal:

LOAD

  date($(vMinDate) + RowNo() - 1) AS TempDate

AUTOGENERATE

  $(vMaxDate) - $(vMinDate) + 1;

// Y por último calculamos los campos que nos hacen falta a partir de esas fechas como el día, mes, año.....

MasterCalendar:

LOAD

TempDate AS OrderDate,

Week(TempDate) AS Week,

Year(TempDate) AS Year,

Month(TempDate) AS Month,

Day(TempDate) AS Day,

'Q' & Ceil(month(TempDate) / 3) AS Quarter,

Date(MonthStart(TempDate), ' MMM-YYYY') AS MonthYear,

Week(TempDate)&'-'&Year(TempDate) AS WeekYear

RESIDENT TempCal

;

Drop table TempCal;

Anonymous
Not applicable
Author

Muchas gracias a todos por su ayuda, se trataba de un error de comprensión de mis datos, porque por ejemplo al año 2013, la fecha (que puede ser fecha de venta) no tiene porque ser el 2013 sino que puede ser 2013 o superior, así que si selecciono 2013 me podria mostrar una fecha con el año 2014 y no seria incorrecto.

Ahora bien, a raiz de crear el calendario maestro, si yo quisiera crear el calendario maestro entre las fechas maxima y minima que tenga en la base de datos, pero solo en funcion de un campo que me diga los dias que se han producido ventas, ¿como se podria hacer?, es decir, no generar todos los dias sino solo aquellos que han habido ventas

Un saludo y muchas gracias por ayudar a un novel en qlikview

jmmayoral3
Creator
Creator

Hola.

El calendario maestro  sirve justo para lo contrario que quieres hacer. Para crear fechas intermedias y que no haya huecos. Si lo que quieres es que haya huecos simplemente carga una campo fecha y en el script de carga descomponlo en Dia, Mes y Año.