Do not input private or sensitive data. View Qlik Privacy & Cookie Policy.
Skip to main content

Announcements
Now accepting applications for the Qlik Luminary and Partner Ambassador Programs: Apply by July 6!
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Criar uma variável no Script

Estou necessitando incluir a função group by no Script abaixo para poder criar uma variável com agregação.

As linhas a serem criadas estão comentadas (//) no Script.

Alguém poderia me informar como incluo o "group by" neste Script para poder rodar as variáveis que pretendo criar?

Obrigado.

LOAD

    Seq.,

    "Data O.S.

(Aberta)" as "Data O.S.(Aberta)",

    "Nº O.S.

Aberta" as "Nº O.S.Aberta",

    Date (Data) as Data, Year (Data) as Ano, Month(Data) as Mes,

    "Nº O.S.

Fechada" as "Nº O.S.Fechada",

    "Horímetro

(revisão)" as "HORÍM. ULTIMA REVISÃO",

    "Horas

revisado" as Horasrevisado,

    "Próxima

Revisão" as "Próxima Revisão",

    "+ (Atrasado)

- (Adiantado)" as "Atraso / Antecipação",

    "Horas

(restantes)" as "Horas (Restantes)",

    "Alerta

< 100" as "Alerta< 100",

    "Alerta

< 50" as "Alerta< 50",

    "Alerta

< 0" as "Alerta< 0",

    Revis.,

    "Revisão

(Horimetro)" as "Horímetro da Revisão",

    Prefixo

//    Max('Próxima Revisão') as "HOR.U.R."

// Uma opção seria identificar a máxima revisão para depois efetuar o cálculo com esta máxima   

//    If('HOR.U.R' - 'Horímetro Atual' < 100, 'ALERTA < 100', 'Ok') as STATUS

// ou fazer o cálculo direto com este máximo:  

//    If((Max('Próxima Revisão')) - 'Horímetro Atual' < 100 , 'ALERTA < 100', 'Ok') as STATUS

   

FROM [lib://BaseRevisao/CONTROLE REVISAO 1.xlsx]

(ooxml, embedded labels, header is 2 lines, table is [CMF-0083], filters(

ColXtr(3, RowCnd(Interval, Pos(Top, 1), Pos(Top, 1), Select(1, 0)), 0),

Replace(17, top, StrCnd(null)),

Remove(Row, RowCnd(Interval, Pos(Top, 1), Pos(Top, 8), Select(1, 0))),

Top(17, 'Prefixo'),

Remove(Row, RowCnd(CellValue, 6, StrCnd(null)))

));

3 Replies
nicolett_yuri
Partner Ambassador/MVP
Partner Ambassador/MVP

Gustavo, sempre que for utilizar uma agregação, como o MAX, você deve incluir todos os demais campos da sua tabela no group by, mas fique atento, pois essa agregação vai considerar todas essas dimensões.

No exemplo abaixo, vou recuperar o maior valor da coluna CAMPO5, porém será o maior valor considerando as quebras dos demais campos.

Tabela:

LOAD

CAMPO1,

CAMPO2,

CAMPO3,

CAMPO4,

MAX(CAMPO5) as MaiorValorCampo5

FROM Tabela.qvd (qvd)

GROUP BY

CAMPO1,

CAMPO2,

CAMPO3,

CAMPO4;

nicolett_yuri
Partner Ambassador/MVP
Partner Ambassador/MVP

Considerando o seu exemplo, acho melhor fazer um resident e depois um group by:

Tabela_Tmp:

LOAD

    Seq.,

    "Data O.S.

(Aberta)" as "Data O.S.(Aberta)",

    "Nº O.S.

Aberta" as "Nº O.S.Aberta",

    Date (Data) as Data, Year (Data) as Ano, Month(Data) as Mes,

    "Nº O.S.

Fechada" as "Nº O.S.Fechada",

    "Horímetro

(revisão)" as "HORÍM. ULTIMA REVISÃO",

    "Horas

revisado" as Horasrevisado,

    "Próxima

Revisão" as "Próxima Revisão",

    "+ (Atrasado)

- (Adiantado)" as "Atraso / Antecipação",

    "Horas

(restantes)" as "Horas (Restantes)",

    "Alerta

< 100" as "Alerta< 100",

    "Alerta

< 50" as "Alerta< 50",

    "Alerta

< 0" as "Alerta< 0",

    Revis.,

    "Revisão

(Horimetro)" as "Horímetro da Revisão",

    Prefixo  

FROM [lib://BaseRevisao/CONTROLE REVISAO 1.xlsx]

(ooxml, embedded labels, header is 2 lines, table is [CMF-0083], filters(

ColXtr(3, RowCnd(Interval, Pos(Top, 1), Pos(Top, 1), Select(1, 0)), 0),

Replace(17, top, StrCnd(null)),

Remove(Row, RowCnd(Interval, Pos(Top, 1), Pos(Top, 8), Select(1, 0))),

Top(17, 'Prefixo'),

Remove(Row, RowCnd(CellValue, 6, StrCnd(null)))

));

Tabela:

NoConcatenate

LOAD

*,

    Max([Próxima Revisão]) as [HOR.U.R.],

    If(Max([Próxima Revisão]) - [Horímetro Atual] < 100, 'ALERTA < 100', 'Ok') as STATUS

RESIDENT Tabela_Tmp

GROUP BY

    Seq.,

    [Data O.S.(Aberta)],

    [Nº O.S.Aberta],

    Data,

    Ano,

    Mes,

    [Nº O.S.Fechada],

    [HORÍM. ULTIMA REVISÃO],

    [Horasrevisado],

    [Próxima Revisão],

    [Atraso / Antecipação],

    [Horas (Restantes)],

    [Alerta< 100],

    [Alerta< 50],

    [Alerta< 0],

    [Revis.],

   [Horímetro da Revisão],

    [Prefixo];

DROP TABLE Tabela_Tmp;

Not applicable
Author

Yuri,

Rodou bem.

Obrigado pelo apoio.

De: Yuri Nicolett

Enviada em: sexta-feira, 8 de julho de 2016 09:43

Para: Gustavo Souza <gustavo@consorciominafabrica.com.br>

Assunto: Re: - Criar uma variável no Script

<https://community.qlik.com/resources/images/palette-1004/headerLogo-1391206184624-QlikCommunity_logo.gif>