Skip to main content
Announcements
Qlik Connect 2024! Seize endless possibilities! LEARN MORE
cancel
Showing results for 
Search instead for 
Did you mean: 
andre_tonini
Creator II
Creator II

Data Maxima

Pessoal,

       Preciso, criar no Load uma data max exemplo:

// ------- Viagem --------- //

LOAD *,

    YEAR(DT_RETORNO) AS ANO,

    YEAR(DATE(max(DT_RETORNO) )) AS ANO_MAX,

   MONTH(DT_RETORNO) AS MES,    

    DAY(DT_RETORNO) AS DIA,

    DATE(DT_RETORNO) AS DATA;

       

SQL SELECT

A.NR_VIAGEM,

A.NR_VIAGEM_SEQ,

A.CD_VEICULO,

A.CD_MOTORISTA,

A.DT_SAIDA,

A.DT_RETORNO,

A.KM_SAIDA,

A.KM_RETORNO,

A.MM_OBSERVACAO,

A.FL_BLOQUEADA,

A.HM_SAIDA,

A.HM_RETORNO,

B.NM_MOTORISTA,

C.NR_ORDEM,

C.PC_COMISSAO,

C.VL_BASE_COMISSAO,

C.VL_COMISSAO,

D.CD_SITUACAO,

D.VL_TOTAL AS VL_FRETE,

D.CD_LOC_COLETA AS LOCAL_COLETA,

D.CD_LOC_EMISSAO,

D.CD_LOC_ENTREGA AS LOCAL_CHEGADA,

D.QT_PESO_FRETE,

D.CD_NATCARGA,

D.DT_EMISSAO AS DT_EMISSAO_VIAG,

D.NR_CONHEC AS NR_CONHEC_VIAG,

D.SR_CONHEC AS SR_CONHEC_VIAG

FROM VIAGEM A LEFT JOIN MOTORISTA B ON

              A.CD_MOTORISTA = B.CD_MOTORISTA

             

              LEFT OUTER JOIN CONHECTOVM C ON

              A.NR_VIAGEM = C.NR_VIAGEM AND

              A.NR_VIAGEM_SEQ = C.NR_VIAGEM_SEQ

             

              LEFT OUTER JOIN CONHECTO D ON

              C.NR_ORDEM = D.NR_ORDEM   

                                    

WHERE A.DT_RETORNO > '31.12.2014' AND D.CD_SITUACAO <> '3' AND A.FL_BLOQUEADA = 'S';

Labels (1)
1 Solution

Accepted Solutions
afurtado
Partner Ambassador/MVP
Partner Ambassador/MVP

Andre,

para usar um max no LOAD ou no SQL tem que ter um group by. 

Ou, se quiser somente o maior ano, em uma nova tabela dai nao precisa usar o group by, podendo fazer como abaixo

Maior_Ano:

LOAD

      YEAR(DATE(max(DT_RETORNO) )) AS ANO_MAX

Resident Tabela;

Outro possibilidade

2017-10-28 19_44_03-QlikView x64 - [C__tmp_Max.qvw_].png

Ano:

LOAD * INLINE [

Ano ,Valor

2012,1000

2013,1002

2014,1003

2015,1004

2016,1005

2017,1006

];

Maior:

LOAD

   max(Ano)   as Maior

Resident Ano;

left join (Ano)

LOAD

   Maior      as Ano,

   'Sim'      as Maior_Ano

Resident Maior;

  

Outras informações

http://help.qlik.com/pt-BR/qlikview/12.1/Subsystems/Client/Content/Scripting/AggregationFunctions/ma...

furtado@farolbi.com.br

View solution in original post

3 Replies
afurtado
Partner Ambassador/MVP
Partner Ambassador/MVP

Andre,

para usar um max no LOAD ou no SQL tem que ter um group by. 

Ou, se quiser somente o maior ano, em uma nova tabela dai nao precisa usar o group by, podendo fazer como abaixo

Maior_Ano:

LOAD

      YEAR(DATE(max(DT_RETORNO) )) AS ANO_MAX

Resident Tabela;

Outro possibilidade

2017-10-28 19_44_03-QlikView x64 - [C__tmp_Max.qvw_].png

Ano:

LOAD * INLINE [

Ano ,Valor

2012,1000

2013,1002

2014,1003

2015,1004

2016,1005

2017,1006

];

Maior:

LOAD

   max(Ano)   as Maior

Resident Ano;

left join (Ano)

LOAD

   Maior      as Ano,

   'Sim'      as Maior_Ano

Resident Maior;

  

Outras informações

http://help.qlik.com/pt-BR/qlikview/12.1/Subsystems/Client/Content/Scripting/AggregationFunctions/ma...

furtado@farolbi.com.br
Marcio_Campestrini
Specialist
Specialist

Para retornar o maior valor sem utilizar o group by, pode utilizar da sugestão do rwunderlich‌, utilizando FieldValue.

Márcio Rodrigo Campestrini
andre_tonini
Creator II
Creator II
Author

Alessandro e Márcio,

      Muito obrigado pela ajuda, agora entendi como fazer o valor pela data máxima - sempre ficava na dúvida como fazer!

Um abraço

André Tonini