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

Announcements
Talend Cloud AWS EU Scheduled Outage: Starting Tues 26 May 21:00 CEST with expected completion Wed 27 May 01:00 CEST
cancel
Showing results for 
Search instead for 
Did you mean: 
samuel_rodrigue
Contributor III
Contributor III

Do While

Boa Tarde,

     Tenho uma planilha excel, e preciso criar um campo de classificação nova a partir dos códigos.
     Porém preciso aplicar uma regra diferente por  "organização"  especifica, pelo que entendi poderia usar um Loop Do while, porém não consegui aplicar a regra. Poderiam me auxiliar por gentileza?. Segue o código:

Do while [Organizacao] = 'Curitiba'

IF([CODIGO-Item] >= 100000000 and [CODIGO-Item] <=200000000, 'A',

IF([CODIGO-Item] >=300000000 AND [CODIGO-Item] <309999999, 'B',

IF(([CODIGO-Item] >=400000000 and [CODIGO-Item] <409999999) OR ([CODIGO-Item] >=430000000 and [CODIGO-Item] <439999999), 'C',

IF(([CODIGO-Item] >=420000000 and [CODIGO-Item] <429999999), 'D'

)

)

    )

        )  as [Categoria]

Loop

Labels (2)
1 Solution

Accepted Solutions
felipedl
Partner - Specialist III
Partner - Specialist III

Olá Samuel,

Quando você executa o comando load, ele mais ou menos faz um Do / While linha a linha.
Sendo assim, você poderia fazer no seu load essa transformação.

ALgo do tipo:

Dados:

Load

          [Organizacao],

          [CODIGO-Item],

          if

          (

               [Organizacao]='Curitiba',

               IF

               (

                    [CODIGO-Item] >= 100000000 and [CODIGO-Item] <=200000000,

                    'A',

                    IF

                    (

                         [CODIGO-Item] >=300000000 AND [CODIGO-Item] <309999999,

                         'B',

                         IF

                         (

                              ([CODIGO-Item] >=400000000 and [CODIGO-Item] <409999999) OR ([CODIGO-Item] >=430000000 and [CODIGO-Item] <439999999),

                              'C',

                              IF

                              (

                                   ([CODIGO-Item] >=420000000 and [CODIGO-Item] <429999999),

                                   'D'

                              )

                         )

                   )

        )  as [Categoria]


FROM [Qualquer coisa];


Nesse caso, somente a organização Curitiba ter avalores de codigo-item.


Att,


Felipe.

View solution in original post

2 Replies
felipedl
Partner - Specialist III
Partner - Specialist III

Olá Samuel,

Quando você executa o comando load, ele mais ou menos faz um Do / While linha a linha.
Sendo assim, você poderia fazer no seu load essa transformação.

ALgo do tipo:

Dados:

Load

          [Organizacao],

          [CODIGO-Item],

          if

          (

               [Organizacao]='Curitiba',

               IF

               (

                    [CODIGO-Item] >= 100000000 and [CODIGO-Item] <=200000000,

                    'A',

                    IF

                    (

                         [CODIGO-Item] >=300000000 AND [CODIGO-Item] <309999999,

                         'B',

                         IF

                         (

                              ([CODIGO-Item] >=400000000 and [CODIGO-Item] <409999999) OR ([CODIGO-Item] >=430000000 and [CODIGO-Item] <439999999),

                              'C',

                              IF

                              (

                                   ([CODIGO-Item] >=420000000 and [CODIGO-Item] <429999999),

                                   'D'

                              )

                         )

                   )

        )  as [Categoria]


FROM [Qualquer coisa];


Nesse caso, somente a organização Curitiba ter avalores de codigo-item.


Att,


Felipe.

Thiago_Justen_

Talvez se fizer simplesmente assim já funcionaria:

IF([Organizacao] = 'Curitiba' and

     IF([CODIGO-Item] >= 100000000 and [CODIGO-Item] <=200000000, 'A',

          IF([CODIGO-Item] >=300000000 AND [CODIGO-Item] <309999999, 'B',

               IF(([CODIGO-Item] >=400000000 and [CODIGO-Item] <409999999) OR ([CODIGO-Item] >=430000000 and [CODIGO-Item] <439999999), 'C',

                    IF(([CODIGO-Item] >=420000000 and [CODIGO-Item] <429999999), 'D'

                    )

               )

              )

          )

     )      as [Categoria]

Thiago Justen Teixeira Gonçalves
Farol BI
WhatsApp: 24 98152-1675
Skype: justen.thiago