Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
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.
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
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_Fecha | Semanas | Periodos | Año_periodo |
2009-01-04 | Semana 01 | Periodo 01 | 2009 |
2009-01-11 | Semana 02 | Periodo 01 | 2009 |
2009-01-18 | Semana 03 | Periodo 01 | 2009 |
2009-01-25 | Semana 04 | Periodo 01 | 2009 |
2009-02-01 | Semana 05 | Periodo 02 | 2009 |
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
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
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.