Skip to main content
Announcements
See what Drew Clarke has to say about the Qlik Talend Cloud launch! READ THE BLOG
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Problema con master calendar

Hola a todos, tengo la siguiente consulta, estoy usando QLIKVIEW 11

Ejecuto un codigo de creacion de un master calendar que vi por la web y cuando me esta cargando varios datos de la tabla tempcalendar, se me cierra la ejecucion del script y falla (sin decir ningun error)

Mi tabla que tiene la fecha tiene 1 millon de registros, pero tempcalendar me carga cerca de como 40 millones antes de colgarse, algo raro

En sql el campo fecha tiene el siguiente formato:

2009-11-26 12:21:00.000 (aunque note que cuando hago vista previa en qlikview, algunas fechas arrancancon / o ' por que eso??)

Mientras que en qlikview, aparece de la siguiente forma si hago un cuadro de lista

26/11/2009 12:21:00 AM

Aca dejo una imagen de como me va cargando.. sigue hasta 40 millones y falla.

asd.JPG

Estoy usando este codigo

QuartersMap:

MAPPING LOAD

rowno() as Month,

'Q' & Ceil (rowno()/3) as Quarter

AUTOGENERATE (12);

Temp:

Load

               min(Pedido_Fecha) as minDate,

               max(Pedido_Fecha) as maxDate

Resident Pedidos;

Let varMinDate = Num(Peek('minDate', 0, 'Temp'));

Let varMaxDate = Num(Peek('maxDate', 0, 'Temp'));

DROP Table Temp;

TempCalendar:

LOAD

               $(varMinDate) + Iterno()-1 As Num,

               Date($(varMinDate) + IterNo() - 1) as TempDate

               AutoGenerate 1 While $(varMinDate) + IterNo() -1 <= $(varMaxDate);

MasterCalendarPedidos:

Load

               TempDate AS Pedido_Fecha,

               week(TempDate) As PedidoWeek,

               Year(TempDate) As PedidoYear,

               Month(TempDate) As PedidoMonth,

               Day(TempDate) As PedidoDay,

               YeartoDate(TempDate)*-1 as PedidoCurYTDFlag,

               YeartoDate(TempDate,-1)*-1 as PedidoLastYTDFlag,

               inyear(TempDate, Monthstart($(varMaxDate)),-1) as PedidoRC12,

               date(monthstart(TempDate), 'MMM-YYYY') as PedidoMonthYear,

               ApplyMap('QuartersMap', month(TempDate), Null()) as PedidoQuarter,

               Week(weekstart(TempDate)) & '-' & WeekYear(TempDate) as PedidoWeekYear,

               WeekDay(TempDate) as PedidoWeekDay

Resident TempCalendar

Order By TempDate ASC;

Drop Table TempCalendar;

Alguna ayuda?  o alguna otra forma? està bien que me cargue tantos registros tempcalender?

Muchas gracias

Licha

3 Replies
Not applicable
Author

La verdad es que no me queda claro como esperar visualizar tu calendario, es decir no veo mucho diferencia entre

PedidoWeek + PedidoYear y PedidoWeekYear como la combinacion en columnas de los dos primeros campos.

Para el asunto de los registros si esperar algo similar a esto:

Pedido_FechaSemanasPeriodosAño_periodo
2009-01-04Semana 01Periodo 012009
2009-01-11Semana 02Periodo 012009
2009-01-18Semana 03Periodo 012009
2009-01-25Semana 04Periodo 012009
2009-02-01Semana 05Periodo 022009

solo deberias tener 365 registros por año.

Si tuvieses un formato de como debe estar el calendario y el formato de fecha en tu data sería más útil.

Saludos,

Santiago

Not applicable
Author

Santiago, gracias por contestar

Mirà, en realidad quiero que primero me ejecute, porque el codigo que puse me hace fallar el script sin dar ningun error. En cuanto al calendario que quiero, no tiene muchas pretensiones, mas que aparecer el dia, año, mes, tal vez hora y minutos si se puede, trimestres, semana y no mucho mas. Digamos que lo que habrìa en un calendario base. Como serìa el còdigo para ese caso?

Lo que decia de los registros es que yo tengo 1 M de registros en pedidos, por ende 1 M de fechas. (o tal vez menos si se repiten). Me sonaba raro que tempcalendar me estuviera cargando como 40 M segun el codigo que puse.

Despuès tenia una duda respecto de las fechas y los formatos.

Si voy a vista previa en Qlikview de la tabla que tiene la fecha, algunas fechas aparecen en el formato que puse, y otras empiezan con / y otras con ' al principio, por lo que despues eso va a repercutir, creo yo, en mi calendario. Por que las toma de distinta forma? Como lo soluciono?

Abrazo y gracias

Not applicable
Author

Es raro que se cierre la ejecucion del script sin aviso alguno, lo más probable es que se quede sin memoria y por eso cierra el aplicativo.

Como sabes qlikview liga tablas en base al nombre de cada campo, es decir si creas una tabla llamada Calendario cuyo campo único sea Pedido_Fecha, una vez que tú hagas una seleccion en una de las fechas

qlikview procedera con la seleccion de datos ligados a esa fecha. Así tendrias todas las fechas de tus pedidos en un "Calendario" que seria una tabla. Luego podrías en el mismo script añadir los campos que qlikview te permite un ejemplo podría ser:

Calendario:

Load

               Pedido_Fecha,

               week(Pedido_Fecha) As PedidoWeek,

               Year(Pedido_Fecha) As PedidoYear,

               Month(Pedido_Fecha) As PedidoMonth,

               Day(Pedido_Fecha) As PedidoDay,

            /*Es en esta parte que tengo dudas si es optimo lo que estas haciendo y si es aqui donde te crea conflictos

               YeartoDate(Pedido_Fecha)*-1 as PedidoCurYTDFlag,

               YeartoDate(Pedido_Fecha)*-1 as PedidoLastYTDFlag,

               inyear(TempDate, Monthstart($(varMaxDate)),-1) as PedidoRC12,

               date(monthstart(TempDate), 'MMM-YYYY') as PedidoMonthYear,

               ApplyMap('QuartersMap', month(TempDate), Null()) as PedidoQuarter,

               Week(weekstart(TempDate)) & '-' & WeekYear(TempDate) as PedidoWeekYear,

               WeekDay(TempDate) as PedidoWeekDay*/

Order By Pedido_Fecha ASC;

Drop Table Calendario;

En cuanto al formato de las fechas, las tomas de un QVD? y este a su vez de alguna BDD?

En el momento que haces el Load qlikview te la opcion de darles formato, por ejemplo:

date(Pedido_Fecha,'MM/DD/YYYY') as [Pedido_Fecha]

Saludos,

Santiago.