Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Pessoal, boa tarde!
Estou precisando pegar a última sexta feira do mês. É possível fazer isso?
Mais precisamente, do mês de novembro (Black Friday).
A ideia é o usuário clicar num botão com o nome Black Friday e mostrar comparativos do ano atual com o ano passado.
Olá Pamela,
Pegando o código do calendário mestre da comunidade
Master Calendar Generation Script
fiz o seguinte script:
CalendarMaster:
LOAD
Date(floor(Data)) AS Data,
Year(Data) AS Year,
'Q' & Ceil(Month(Data) / 3) AS Quarter,
Month(Data) As Month,
Day(Data) As Day,
Week(Data) As Week,
WeekDay(Data) as WeekDayName;
Load Date(MinDate + IterNo() -1 ) AS Data While (MinDate + IterNo() - 1) <= Num(MaxDate);
Load
// 06/07/2009
40000 AS MinDate,
Today() AS MaxDate
AutoGenerate(1);
// seleciona a maior data do mês de novembro onde é sexta-feira
tmp:
Load
Year,
Month,
WeekDayName,
Date(max(floor(Data)),'DD/MM/YYYY') as Teste
Resident CalendarMaster
where WeekDayName = 'sex' and Month = 'nov'
group by
Year,
Month,
WeekDayName;
left join (CalendarMaster)
Load
Teste as Data,
1 as [Flag Black Friday]
Resident tmp;
Isso retorna o seguinte
Pamela,
Com esse script crie o calendário(afurtado😞
LET vDateMin = Num(MakeDate(year(Today())-1,1,1));
LET vDateMax = Num(MakeDate(year(Today()),12,31));
TempCalendario:
LOAD
Date($(vDateMin) + RowNo() - 1) AS TempDate
AUTOGENERATE 1
WHILE $(vDateMin)+IterNo()-1<= $(vDateMax);
Calendario:
LOAD
Date(TempDate,'DD/MM/YYYY') AS Calendario_Data,
Year(TempDate) AS Ano,
WeekDay(TempDate) AS DiaSemana,
Day(TempDate) AS Dia,
Month(TempDate) AS Mes
Resident TempCalendario;
drop table TempCalendario;
Com essa fórmula você terá a última sexta-feira de novembro do mês corrente.
max({<Mes={"nov"},DiaSemana={"sex"},Ano={'$(=max(Ano))'}>}Calendario_Data)
E com essa a do ano anterior:
max({<Mes={"nov"},DiaSemana={"sex"},Ano={'$(=max(Ano)-1)'}>}Calendario_Data)
Por aí dá pra ter uma ideia. O que você acha?
Olá Pamela,
Pegando o código do calendário mestre da comunidade
Master Calendar Generation Script
fiz o seguinte script:
CalendarMaster:
LOAD
Date(floor(Data)) AS Data,
Year(Data) AS Year,
'Q' & Ceil(Month(Data) / 3) AS Quarter,
Month(Data) As Month,
Day(Data) As Day,
Week(Data) As Week,
WeekDay(Data) as WeekDayName;
Load Date(MinDate + IterNo() -1 ) AS Data While (MinDate + IterNo() - 1) <= Num(MaxDate);
Load
// 06/07/2009
40000 AS MinDate,
Today() AS MaxDate
AutoGenerate(1);
// seleciona a maior data do mês de novembro onde é sexta-feira
tmp:
Load
Year,
Month,
WeekDayName,
Date(max(floor(Data)),'DD/MM/YYYY') as Teste
Resident CalendarMaster
where WeekDayName = 'sex' and Month = 'nov'
group by
Year,
Month,
WeekDayName;
left join (CalendarMaster)
Load
Teste as Data,
1 as [Flag Black Friday]
Resident tmp;
Isso retorna o seguinte
Muito massa seu script Felip!
Anotado aqui...
Felip e Thiago,
muito obrigada pela ajuda!
Adaptei meu script assim como o felipedl sugeriu e funcionou perfeitamente!
Obrigada!
Maravilha Pamela,. que bom que ajudou
Valeu hehe, que bom que ajudou pra você também Thiago .
Sem dúvidas Felip!!! Excelente dica...